ansys-fluent-core 0.28.dev0__py3-none-any.whl → 0.28.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ansys-fluent-core might be problematic. Click here for more details.
- ansys/fluent/core/__init__.py +15 -16
- ansys/fluent/core/_version.py +1 -1
- ansys/fluent/core/codegen/allapigen.py +0 -3
- ansys/fluent/core/codegen/builtin_settingsgen.py +5 -20
- ansys/fluent/core/codegen/print_fluent_version.py +9 -14
- ansys/fluent/core/codegen/walk_api.py +57 -0
- ansys/fluent/core/fluent_connection.py +26 -22
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_252/meshing.py +21 -0
- ansys/fluent/core/generated/datamodel_252/preferences.py +14 -0
- ansys/fluent/core/generated/fluent_version_252.py +3 -3
- ansys/fluent/core/generated/meshing/tui_252.py +1451 -1396
- ansys/fluent/core/generated/solver/settings_252.py +9300 -6625
- ansys/fluent/core/generated/solver/settings_252.pyi +6625 -5423
- ansys/fluent/core/generated/solver/tui_252.py +5898 -5057
- ansys/fluent/core/journaling.py +4 -4
- ansys/fluent/core/launcher/fluent_container.py +31 -7
- ansys/fluent/core/launcher/launcher.py +3 -2
- ansys/fluent/core/launcher/launcher_utils.py +9 -0
- ansys/fluent/core/launcher/process_launch_string.py +8 -6
- ansys/fluent/core/launcher/pyfluent_enums.py +6 -3
- ansys/fluent/core/launcher/server_info.py +25 -2
- ansys/fluent/core/launcher/slurm_launcher.py +6 -3
- ansys/fluent/core/launcher/standalone_launcher.py +11 -9
- ansys/fluent/core/post_objects/post_helper.py +16 -10
- ansys/fluent/core/services/__init__.py +2 -0
- ansys/fluent/core/services/api_upgrade.py +11 -9
- ansys/fluent/core/services/app_utilities.py +408 -0
- ansys/fluent/core/services/datamodel_se.py +172 -58
- ansys/fluent/core/services/datamodel_tui.py +5 -2
- ansys/fluent/core/services/field_data.py +1 -0
- ansys/fluent/core/services/reduction.py +2 -0
- ansys/fluent/core/services/settings.py +5 -2
- ansys/fluent/core/session.py +27 -4
- ansys/fluent/core/session_pure_meshing.py +1 -1
- ansys/fluent/core/session_solver.py +0 -1
- ansys/fluent/core/solver/__init__.py +6 -0
- ansys/fluent/core/solver/flobject.py +15 -27
- ansys/fluent/core/solver/function/reduction.py +3 -0
- ansys/fluent/core/solver/settings_builtin_data.py +1 -1
- ansys/fluent/core/streaming_services/datamodel_event_streaming.py +13 -13
- ansys/fluent/core/streaming_services/events_streaming.py +336 -52
- ansys/fluent/tests/conftest.py +30 -0
- ansys/fluent/tests/test_builtin_settings.py +1 -1
- ansys/fluent/tests/test_codegen.py +0 -410
- ansys/fluent/tests/test_datamodel_api.py +429 -0
- ansys/fluent/tests/test_datamodel_service.py +64 -64
- ansys/fluent/tests/test_events_manager.py +24 -6
- ansys/fluent/tests/test_field_data.py +32 -0
- ansys/fluent/tests/test_launcher.py +30 -2
- ansys/fluent/tests/test_mapped_api.py +766 -0
- ansys/fluent/tests/test_reduction.py +30 -0
- ansys/fluent/tests/test_session.py +16 -1
- ansys/fluent/tests/test_settings_api.py +21 -0
- ansys/fluent/tests/test_solution_variables.py +27 -0
- ansys/fluent/tests/util/__init__.py +36 -0
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/METADATA +4 -3
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/RECORD +61 -58
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/WHEEL +1 -1
- ansys/fluent/core/codegen/settingsgen_old.py +0 -535
- ansys/fluent/tests/fluent/test_version/test.py +0 -2
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/AUTHORS +0 -0
- {ansys_fluent_core-0.28.dev0.dist-info → ansys_fluent_core-0.28.2.dist-info}/LICENSE +0 -0
ansys/fluent/core/session.py
CHANGED
|
@@ -10,6 +10,7 @@ import weakref
|
|
|
10
10
|
from ansys.fluent.core.fluent_connection import FluentConnection
|
|
11
11
|
from ansys.fluent.core.journaling import Journal
|
|
12
12
|
from ansys.fluent.core.services import service_creator
|
|
13
|
+
from ansys.fluent.core.services.app_utilities import AppUtilitiesOld
|
|
13
14
|
from ansys.fluent.core.services.field_data import FieldDataService
|
|
14
15
|
from ansys.fluent.core.services.scheme_eval import SchemeEval
|
|
15
16
|
from ansys.fluent.core.streaming_services.datamodel_event_streaming import (
|
|
@@ -52,6 +53,17 @@ class _IsDataValid:
|
|
|
52
53
|
return self._scheme_eval.scheme_eval("(data-valid?)")
|
|
53
54
|
|
|
54
55
|
|
|
56
|
+
class _AppUtilitiesFactory:
|
|
57
|
+
"""AppUtilities factory."""
|
|
58
|
+
|
|
59
|
+
@staticmethod
|
|
60
|
+
def _create_app_utilities(scheme_eval, fluent_connection):
|
|
61
|
+
if FluentVersion(scheme_eval.version) < FluentVersion.v252:
|
|
62
|
+
return AppUtilitiesOld(scheme_eval)
|
|
63
|
+
else:
|
|
64
|
+
return fluent_connection._connection_interface._app_utilities
|
|
65
|
+
|
|
66
|
+
|
|
55
67
|
class BaseSession:
|
|
56
68
|
"""Encapsulates a Fluent session.
|
|
57
69
|
|
|
@@ -124,7 +136,6 @@ class BaseSession:
|
|
|
124
136
|
self.scheme_eval = scheme_eval
|
|
125
137
|
self.rp_vars = RPVars(self.scheme_eval.string_eval)
|
|
126
138
|
self._preferences = None
|
|
127
|
-
self.journal = Journal(self.scheme_eval)
|
|
128
139
|
|
|
129
140
|
self._transcript_service = service_creator("transcript").create(
|
|
130
141
|
fluent_connection._channel, fluent_connection._metadata
|
|
@@ -133,10 +144,17 @@ class BaseSession:
|
|
|
133
144
|
if self._start_transcript:
|
|
134
145
|
self.transcript.start()
|
|
135
146
|
|
|
147
|
+
self._app_utilities = _AppUtilitiesFactory._create_app_utilities(
|
|
148
|
+
self.scheme_eval, self._fluent_connection
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
self.journal = Journal(self._app_utilities)
|
|
152
|
+
|
|
136
153
|
self._datamodel_service_tui = service_creator("tui").create(
|
|
137
154
|
fluent_connection._channel,
|
|
138
155
|
fluent_connection._metadata,
|
|
139
156
|
self._error_state,
|
|
157
|
+
self._app_utilities,
|
|
140
158
|
self.scheme_eval,
|
|
141
159
|
)
|
|
142
160
|
|
|
@@ -175,13 +193,17 @@ class BaseSession:
|
|
|
175
193
|
|
|
176
194
|
def __init__(self, _session):
|
|
177
195
|
"""Initialize Fields."""
|
|
196
|
+
self._is_solution_data_valid = (
|
|
197
|
+
_session._app_utilities.is_solution_data_available
|
|
198
|
+
)
|
|
178
199
|
self.field_info = service_creator("field_info").create(
|
|
179
|
-
_session._field_data_service,
|
|
200
|
+
_session._field_data_service,
|
|
201
|
+
self._is_solution_data_valid,
|
|
180
202
|
)
|
|
181
203
|
self.field_data = service_creator("field_data").create(
|
|
182
204
|
_session._field_data_service,
|
|
183
205
|
self.field_info,
|
|
184
|
-
|
|
206
|
+
self._is_solution_data_valid,
|
|
185
207
|
_session.scheme_eval,
|
|
186
208
|
)
|
|
187
209
|
self.field_data_streaming = FieldDataStreaming(
|
|
@@ -190,7 +212,7 @@ class BaseSession:
|
|
|
190
212
|
self.field_data_old = service_creator("field_data_old").create(
|
|
191
213
|
_session._field_data_service,
|
|
192
214
|
self.field_info,
|
|
193
|
-
|
|
215
|
+
self._is_solution_data_valid,
|
|
194
216
|
_session.scheme_eval,
|
|
195
217
|
)
|
|
196
218
|
|
|
@@ -199,6 +221,7 @@ class BaseSession:
|
|
|
199
221
|
self._settings_service = service_creator("settings").create(
|
|
200
222
|
fluent_connection._channel,
|
|
201
223
|
fluent_connection._metadata,
|
|
224
|
+
self._app_utilities,
|
|
202
225
|
self.scheme_eval,
|
|
203
226
|
self._error_state,
|
|
204
227
|
)
|
|
@@ -156,7 +156,7 @@ class PureMeshing(BaseSession):
|
|
|
156
156
|
RuntimeError
|
|
157
157
|
If beta features are not enabled in Fluent.
|
|
158
158
|
"""
|
|
159
|
-
if not self.
|
|
159
|
+
if not self._app_utilities.is_beta_enabled():
|
|
160
160
|
raise RuntimeError("Topology-based Meshing is a beta feature in Fluent.")
|
|
161
161
|
self._base_meshing.topology_based_meshing_workflow.initialize()
|
|
162
162
|
return self._base_meshing.topology_based_meshing_workflow
|
|
@@ -117,7 +117,6 @@ class Solver(BaseSession):
|
|
|
117
117
|
):
|
|
118
118
|
self._tui_service = self._datamodel_service_tui
|
|
119
119
|
self._se_service = self._datamodel_service_se
|
|
120
|
-
self._settings_service = self._settings_service
|
|
121
120
|
self._tui = None
|
|
122
121
|
self._workflow = None
|
|
123
122
|
self._system_coupling = None
|
|
@@ -46,7 +46,6 @@ from typing import (
|
|
|
46
46
|
)
|
|
47
47
|
import warnings
|
|
48
48
|
import weakref
|
|
49
|
-
from zipimport import zipimporter
|
|
50
49
|
|
|
51
50
|
import ansys.fluent.core as pyfluent
|
|
52
51
|
from ansys.fluent.core.utils.fluent_version import FluentVersion
|
|
@@ -470,6 +469,8 @@ class Base:
|
|
|
470
469
|
return nullcontext()
|
|
471
470
|
|
|
472
471
|
def __eq__(self, other):
|
|
472
|
+
if not isinstance(other, self.__class__):
|
|
473
|
+
return False
|
|
473
474
|
return self.flproxy == other.flproxy and self.path == other.path
|
|
474
475
|
|
|
475
476
|
|
|
@@ -1164,7 +1165,7 @@ class WildcardPath(Group):
|
|
|
1164
1165
|
except KeyError as ex:
|
|
1165
1166
|
raise AttributeError(
|
|
1166
1167
|
allowed_name_error_message(
|
|
1167
|
-
context=self._state_cls.
|
|
1168
|
+
context=self._state_cls._python_name,
|
|
1168
1169
|
trial_name=name,
|
|
1169
1170
|
allowed_values=self.get_active_child_names(),
|
|
1170
1171
|
)
|
|
@@ -1365,7 +1366,7 @@ class NamedObject(SettingsBase[DictStateType], Generic[ChildTypeT]):
|
|
|
1365
1366
|
)
|
|
1366
1367
|
raise KeyError(
|
|
1367
1368
|
allowed_name_error_message(
|
|
1368
|
-
context=self.__class__.
|
|
1369
|
+
context=self.__class__._python_name,
|
|
1369
1370
|
trial_name=name,
|
|
1370
1371
|
allowed_values=self.get_object_names(),
|
|
1371
1372
|
)
|
|
@@ -1672,7 +1673,7 @@ class BaseCommand(Action):
|
|
|
1672
1673
|
command_name=self.python_name, value=value, kwargs=kwds
|
|
1673
1674
|
)
|
|
1674
1675
|
if (
|
|
1675
|
-
self.obj_name
|
|
1676
|
+
self.obj_name in ["create", "make-a-copy"]
|
|
1676
1677
|
and isinstance(self._parent, NamedObject)
|
|
1677
1678
|
and ret in self._parent
|
|
1678
1679
|
):
|
|
@@ -1909,7 +1910,7 @@ class _NonCreatableNamedObjectMixin(
|
|
|
1909
1910
|
else:
|
|
1910
1911
|
raise KeyError(
|
|
1911
1912
|
allowed_name_error_message(
|
|
1912
|
-
context=self.__class__.
|
|
1913
|
+
context=self.__class__._python_name,
|
|
1913
1914
|
trial_name=name,
|
|
1914
1915
|
allowed_values=self.get_object_names(),
|
|
1915
1916
|
)
|
|
@@ -2161,30 +2162,17 @@ def get_root(
|
|
|
2161
2162
|
RuntimeError
|
|
2162
2163
|
If hash values are inconsistent.
|
|
2163
2164
|
"""
|
|
2164
|
-
from ansys.fluent.core import CODEGEN_OUTDIR,
|
|
2165
|
+
from ansys.fluent.core import CODEGEN_OUTDIR, utils
|
|
2165
2166
|
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
)
|
|
2172
|
-
root_cls = settings.root
|
|
2173
|
-
except FileNotFoundError:
|
|
2174
|
-
obj_info = flproxy.get_static_info()
|
|
2175
|
-
root_cls, _ = get_cls("", obj_info, version=version)
|
|
2176
|
-
else:
|
|
2177
|
-
if CODEGEN_ZIP_SETTINGS:
|
|
2178
|
-
importer = zipimporter(
|
|
2179
|
-
str(CODEGEN_OUTDIR / "solver" / f"settings_{version}.zip")
|
|
2180
|
-
)
|
|
2181
|
-
settings = importer.load_module("settings")
|
|
2182
|
-
else:
|
|
2183
|
-
settings = utils.load_module(
|
|
2184
|
-
f"settings_{version}",
|
|
2185
|
-
CODEGEN_OUTDIR / "solver" / f"settings_{version}" / "__init__.py",
|
|
2186
|
-
)
|
|
2167
|
+
try:
|
|
2168
|
+
settings = utils.load_module(
|
|
2169
|
+
f"settings_{version}",
|
|
2170
|
+
CODEGEN_OUTDIR / "solver" / f"settings_{version}.py",
|
|
2171
|
+
)
|
|
2187
2172
|
root_cls = settings.root
|
|
2173
|
+
except FileNotFoundError:
|
|
2174
|
+
obj_info = flproxy.get_static_info()
|
|
2175
|
+
root_cls, _ = get_cls("", obj_info, version=version)
|
|
2188
2176
|
root = root_cls()
|
|
2189
2177
|
root.set_flproxy(flproxy)
|
|
2190
2178
|
root._set_on_interrupt(interrupt)
|
|
@@ -123,6 +123,9 @@ def _validate_locn_list(locn_list, ctxt):
|
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
def _locns(locns, ctxt):
|
|
126
|
+
if locns == []:
|
|
127
|
+
# Raising 'RuntimeError' instead of 'ValueError' to address a limitation in the server-side implementation.
|
|
128
|
+
raise RuntimeError("No locations specified.")
|
|
126
129
|
locn_names_and_objs = _locn_names_and_objs(locns)
|
|
127
130
|
locn_list = []
|
|
128
131
|
for name, obj in locn_names_and_objs:
|
|
@@ -28,10 +28,10 @@ class DatamodelEvents(StreamingService):
|
|
|
28
28
|
service.event_streaming = self
|
|
29
29
|
self._lock = threading.RLock()
|
|
30
30
|
|
|
31
|
-
def register_callback(self, tag: str,
|
|
31
|
+
def register_callback(self, tag: str, cb: Callable):
|
|
32
32
|
"""Register a callback."""
|
|
33
33
|
with self._lock:
|
|
34
|
-
self._cbs[tag] =
|
|
34
|
+
self._cbs[tag] = cb
|
|
35
35
|
|
|
36
36
|
def unregister_callback(self, tag: str):
|
|
37
37
|
"""Unregister a callback."""
|
|
@@ -58,25 +58,25 @@ class DatamodelEvents(StreamingService):
|
|
|
58
58
|
if response.HasField("createdEventResponse"):
|
|
59
59
|
childtype = response.createdEventResponse.childtype
|
|
60
60
|
childname = response.createdEventResponse.childname
|
|
61
|
-
|
|
62
|
-
cb[1](child)
|
|
61
|
+
cb(childtype, childname)
|
|
63
62
|
elif response.HasField("attributeChangedEventResponse"):
|
|
64
63
|
value = response.attributeChangedEventResponse.value
|
|
65
|
-
cb
|
|
64
|
+
cb(_convert_variant_to_value(value))
|
|
66
65
|
elif response.HasField("commandAttributeChangedEventResponse"):
|
|
67
66
|
value = response.commandAttributeChangedEventResponse.value
|
|
68
|
-
cb
|
|
69
|
-
elif (
|
|
70
|
-
response.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
67
|
+
cb(_convert_variant_to_value(value))
|
|
68
|
+
elif response.HasField("modifiedEventResponse"):
|
|
69
|
+
value = response.modifiedEventResponse.value
|
|
70
|
+
cb(_convert_variant_to_value(value))
|
|
71
|
+
elif response.HasField("affectedEventResponse"):
|
|
72
|
+
cb()
|
|
73
|
+
elif response.HasField("deletedEventResponse"):
|
|
74
|
+
cb()
|
|
75
75
|
elif response.HasField("commandExecutedEventResponse"):
|
|
76
76
|
command = response.commandExecutedEventResponse.command
|
|
77
77
|
args = _convert_variant_to_value(
|
|
78
78
|
response.commandExecutedEventResponse.args
|
|
79
79
|
)
|
|
80
|
-
cb
|
|
80
|
+
cb(command, args)
|
|
81
81
|
except StopIteration:
|
|
82
82
|
break
|