ansys-fluent-core 0.34.dev0__py3-none-any.whl → 0.35.dev0__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 +48 -84
- ansys/fluent/core/codegen/allapigen.py +2 -2
- ansys/fluent/core/codegen/builtin_settingsgen.py +41 -13
- ansys/fluent/core/codegen/datamodelgen.py +3 -1
- ansys/fluent/core/codegen/print_fluent_version.py +2 -2
- ansys/fluent/core/codegen/settingsgen.py +18 -6
- ansys/fluent/core/codegen/tuigen.py +6 -5
- ansys/fluent/core/data_model_cache.py +2 -2
- ansys/fluent/core/docker/docker_compose.py +11 -9
- ansys/fluent/core/docker/utils.py +35 -0
- ansys/fluent/core/examples/downloads.py +8 -11
- ansys/fluent/core/exceptions.py +13 -1
- ansys/fluent/core/field_data_interfaces.py +239 -38
- ansys/fluent/core/file_session.py +167 -61
- ansys/fluent/core/fluent_connection.py +41 -26
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_231/flicing.py +40 -40
- ansys/fluent/core/generated/datamodel_231/meshing.py +231 -231
- ansys/fluent/core/generated/datamodel_232/flicing.py +50 -50
- ansys/fluent/core/generated/datamodel_232/meshing.py +189 -189
- ansys/fluent/core/generated/datamodel_241/flicing.py +30 -30
- ansys/fluent/core/generated/datamodel_241/meshing.py +290 -290
- ansys/fluent/core/generated/datamodel_242/flicing.py +50 -50
- ansys/fluent/core/generated/datamodel_242/meshing.py +331 -331
- ansys/fluent/core/generated/datamodel_242/part_management.py +6 -6
- ansys/fluent/core/generated/datamodel_251/flicing.py +65 -65
- ansys/fluent/core/generated/datamodel_251/meshing.py +300 -300
- ansys/fluent/core/generated/datamodel_251/part_management.py +6 -6
- ansys/fluent/core/generated/datamodel_252/flicing.py +25 -25
- ansys/fluent/core/generated/datamodel_252/meshing.py +382 -382
- ansys/fluent/core/generated/datamodel_252/part_management.py +10 -10
- ansys/fluent/core/generated/datamodel_261/flicing.py +45 -45
- ansys/fluent/core/generated/datamodel_261/meshing.py +454 -435
- ansys/fluent/core/generated/datamodel_261/part_management.py +5 -5
- ansys/fluent/core/generated/datamodel_261/preferences.py +7 -0
- ansys/fluent/core/generated/fluent_version_252.py +1 -1
- ansys/fluent/core/generated/fluent_version_261.py +3 -3
- ansys/fluent/core/generated/meshing/tui_261.py +54 -3
- ansys/fluent/core/generated/solver/settings_231.py +1 -0
- ansys/fluent/core/generated/solver/settings_231.pyi +3025 -1
- ansys/fluent/core/generated/solver/settings_232.py +1 -0
- ansys/fluent/core/generated/solver/settings_232.pyi +3425 -1
- ansys/fluent/core/generated/solver/settings_241.py +1 -0
- ansys/fluent/core/generated/solver/settings_241.pyi +4423 -1
- ansys/fluent/core/generated/solver/settings_242.py +1 -0
- ansys/fluent/core/generated/solver/settings_242.pyi +5474 -1
- ansys/fluent/core/generated/solver/settings_251.py +11 -0
- ansys/fluent/core/generated/solver/settings_251.pyi +6006 -1
- ansys/fluent/core/generated/solver/settings_252.py +11 -1
- ansys/fluent/core/generated/solver/settings_252.pyi +6782 -2
- ansys/fluent/core/generated/solver/settings_261.py +5592 -2740
- ansys/fluent/core/generated/solver/settings_261.pyi +10335 -1994
- ansys/fluent/core/generated/solver/settings_builtin.py +560 -38
- ansys/fluent/core/generated/solver/settings_builtin.pyi +24 -18
- ansys/fluent/core/generated/solver/tui_261.py +409 -285
- ansys/fluent/core/launcher/container_launcher.py +25 -6
- ansys/fluent/core/launcher/error_handler.py +1 -1
- ansys/fluent/core/launcher/fluent_container.py +97 -45
- ansys/fluent/core/launcher/launch_options.py +5 -4
- ansys/fluent/core/launcher/launcher.py +18 -2
- ansys/fluent/core/launcher/launcher_utils.py +63 -15
- ansys/fluent/core/launcher/pim_launcher.py +17 -3
- ansys/fluent/core/launcher/process_launch_string.py +3 -2
- ansys/fluent/core/launcher/server_info.py +7 -3
- ansys/fluent/core/launcher/slurm_launcher.py +4 -2
- ansys/fluent/core/launcher/standalone_launcher.py +6 -3
- ansys/fluent/core/launcher/watchdog.py +6 -6
- ansys/fluent/core/launcher/watchdog_exec +1 -1
- ansys/fluent/core/logger.py +3 -1
- ansys/fluent/core/module_config.py +358 -0
- ansys/fluent/core/pyfluent_warnings.py +9 -3
- ansys/fluent/core/report.py +2 -2
- ansys/fluent/core/search.py +34 -13
- ansys/fluent/core/services/__init__.py +2 -2
- ansys/fluent/core/services/api_upgrade.py +3 -2
- ansys/fluent/core/services/app_utilities.py +39 -0
- ansys/fluent/core/services/datamodel_se.py +4 -2
- ansys/fluent/core/services/deprecated_field_data.py +4 -4
- ansys/fluent/core/services/field_data.py +185 -49
- ansys/fluent/core/services/health_check.py +3 -1
- ansys/fluent/core/services/interceptors.py +8 -6
- ansys/fluent/core/services/reduction.py +16 -5
- ansys/fluent/core/services/settings.py +1 -0
- ansys/fluent/core/session.py +47 -4
- ansys/fluent/core/session_pure_meshing.py +6 -6
- ansys/fluent/core/session_pure_meshing.pyi +1 -0
- ansys/fluent/core/session_shared.py +4 -4
- ansys/fluent/core/session_solver.py +41 -10
- ansys/fluent/core/session_solver.pyi +1 -0
- ansys/fluent/core/session_utilities.py +7 -0
- ansys/fluent/core/solver/error_message.py +2 -2
- ansys/fluent/core/solver/flobject.py +192 -123
- ansys/fluent/core/solver/function/reduction.py +37 -9
- ansys/fluent/core/solver/settings_builtin_bases.py +3 -3
- ansys/fluent/core/solver/settings_builtin_data.py +7 -17
- ansys/fluent/core/streaming_services/datamodel_event_streaming.py +3 -2
- ansys/fluent/core/streaming_services/datamodel_streaming.py +3 -1
- ansys/fluent/core/streaming_services/events_streaming.py +2 -18
- ansys/fluent/core/system_coupling.py +3 -1
- ansys/fluent/core/utils/__init__.py +0 -7
- ansys/fluent/core/utils/data_transfer.py +3 -3
- ansys/fluent/core/utils/file_transfer_service.py +24 -15
- ansys/fluent/core/utils/fluent_version.py +4 -6
- ansys/fluent/core/utils/networking.py +21 -11
- {ansys_fluent_core-0.34.dev0.dist-info → ansys_fluent_core-0.35.dev0.dist-info}/METADATA +10 -11
- {ansys_fluent_core-0.34.dev0.dist-info → ansys_fluent_core-0.35.dev0.dist-info}/RECORD +108 -106
- {ansys_fluent_core-0.34.dev0.dist-info → ansys_fluent_core-0.35.dev0.dist-info}/WHEEL +1 -1
- {ansys_fluent_core-0.34.dev0.dist-info/licenses → ansys_fluent_core-0.35.dev0.dist-info}/LICENSE +0 -0
ansys/fluent/core/search.py
CHANGED
|
@@ -41,16 +41,16 @@ from ansys.fluent.core.utils.fluent_version import (
|
|
|
41
41
|
|
|
42
42
|
def _get_api_tree_data_file_path():
|
|
43
43
|
"""Get API tree data file."""
|
|
44
|
-
from ansys.fluent.core import
|
|
44
|
+
from ansys.fluent.core import config
|
|
45
45
|
|
|
46
|
-
return (
|
|
46
|
+
return (config.codegen_outdir / "api_tree" / "api_objects.json").resolve()
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
def get_api_tree_file_name(version: str) -> Path:
|
|
50
50
|
"""Get API tree file name."""
|
|
51
|
-
from ansys.fluent.core import
|
|
51
|
+
from ansys.fluent.core import config
|
|
52
52
|
|
|
53
|
-
return (
|
|
53
|
+
return (config.codegen_outdir / f"api_tree_{version}.pickle").resolve()
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
def _remove_suffix(input: str, suffix):
|
|
@@ -127,9 +127,9 @@ def _generate_api_data(
|
|
|
127
127
|
from nltk.corpus import wordnet as wn
|
|
128
128
|
|
|
129
129
|
_download_nltk_data()
|
|
130
|
-
from ansys.fluent.core import
|
|
130
|
+
from ansys.fluent.core import config
|
|
131
131
|
|
|
132
|
-
json_file_folder = Path(os.path.join(
|
|
132
|
+
json_file_folder = Path(os.path.join(config.codegen_outdir, "api_tree"))
|
|
133
133
|
json_file_folder.mkdir(parents=True, exist_ok=True)
|
|
134
134
|
|
|
135
135
|
all_api_object_name_synsets = dict()
|
|
@@ -164,7 +164,10 @@ def _get_api_tree_data():
|
|
|
164
164
|
|
|
165
165
|
|
|
166
166
|
def _print_search_results(
|
|
167
|
-
queries: list,
|
|
167
|
+
queries: list,
|
|
168
|
+
api_tree_data: dict | None = None,
|
|
169
|
+
api_path: str | None = None,
|
|
170
|
+
match_whole_word: bool | None = None,
|
|
168
171
|
):
|
|
169
172
|
"""
|
|
170
173
|
Print search results.
|
|
@@ -178,6 +181,9 @@ def _print_search_results(
|
|
|
178
181
|
If None, it is retrieved using _get_api_tree_data().
|
|
179
182
|
api_path : str, optional
|
|
180
183
|
Specific path to restrict the search to. If None, searches the entire object hierarchy.
|
|
184
|
+
match_whole_word : bool, optional
|
|
185
|
+
If True, only exact matches are returned. If False, semantic search is performed.
|
|
186
|
+
The default is None, which means semantic search is performed.
|
|
181
187
|
"""
|
|
182
188
|
api_tree_data = api_tree_data or _get_api_tree_data()
|
|
183
189
|
api_sources = [api_tree_data["api_objects"], api_tree_data["api_tui_objects"]]
|
|
@@ -207,10 +213,22 @@ def _print_search_results(
|
|
|
207
213
|
for query in queries:
|
|
208
214
|
if isinstance(query, tuple):
|
|
209
215
|
name, score = query
|
|
210
|
-
if
|
|
211
|
-
|
|
216
|
+
if (
|
|
217
|
+
name in first_token
|
|
218
|
+
and has_query(name, substrings)
|
|
219
|
+
and name in substrings[-1]
|
|
220
|
+
):
|
|
221
|
+
if score is not None:
|
|
222
|
+
results.add((api_object, round(score, 2)))
|
|
212
223
|
else:
|
|
213
|
-
|
|
224
|
+
name = query
|
|
225
|
+
score = None
|
|
226
|
+
|
|
227
|
+
if match_whole_word and (
|
|
228
|
+
first_token == name or first_token.endswith(f".{name}")
|
|
229
|
+
):
|
|
230
|
+
results.add(api_object)
|
|
231
|
+
elif not match_whole_word and name in first_token:
|
|
214
232
|
results.add(api_object)
|
|
215
233
|
|
|
216
234
|
return sorted(results)
|
|
@@ -227,7 +245,7 @@ def _print_search_results(
|
|
|
227
245
|
)
|
|
228
246
|
|
|
229
247
|
results = final_results or all_results
|
|
230
|
-
if pyfluent.
|
|
248
|
+
if pyfluent.config.print_search_results:
|
|
231
249
|
for result in results:
|
|
232
250
|
print(result)
|
|
233
251
|
elif results:
|
|
@@ -316,7 +334,7 @@ def _get_exact_match_for_word_from_names(
|
|
|
316
334
|
-------
|
|
317
335
|
List of exact match.
|
|
318
336
|
"""
|
|
319
|
-
return list({name for name in names if word == name
|
|
337
|
+
return list({name for name in names if word == name})
|
|
320
338
|
|
|
321
339
|
|
|
322
340
|
def _get_capitalize_match_for_word_from_names(
|
|
@@ -453,7 +471,10 @@ def _search_whole_word(
|
|
|
453
471
|
)
|
|
454
472
|
if queries:
|
|
455
473
|
return _print_search_results(
|
|
456
|
-
queries,
|
|
474
|
+
queries,
|
|
475
|
+
api_tree_data=api_tree_data,
|
|
476
|
+
api_path=api_path,
|
|
477
|
+
match_whole_word=match_whole_word,
|
|
457
478
|
)
|
|
458
479
|
|
|
459
480
|
|
|
@@ -32,7 +32,7 @@ from ansys.fluent.core.services.datamodel_tui import (
|
|
|
32
32
|
)
|
|
33
33
|
from ansys.fluent.core.services.deprecated_field_data import DeprecatedFieldData
|
|
34
34
|
from ansys.fluent.core.services.events import EventsService
|
|
35
|
-
from ansys.fluent.core.services.field_data import
|
|
35
|
+
from ansys.fluent.core.services.field_data import LiveFieldData, _FieldInfo
|
|
36
36
|
from ansys.fluent.core.services.health_check import HealthCheckService
|
|
37
37
|
from ansys.fluent.core.services.monitor import MonitorsService
|
|
38
38
|
from ansys.fluent.core.services.reduction import Reduction
|
|
@@ -54,7 +54,7 @@ _service_cls_by_name = {
|
|
|
54
54
|
"events": EventsService,
|
|
55
55
|
"field_data": LiveFieldData,
|
|
56
56
|
"field_data_old": DeprecatedFieldData,
|
|
57
|
-
"field_info":
|
|
57
|
+
"field_info": _FieldInfo,
|
|
58
58
|
"monitors": MonitorsService,
|
|
59
59
|
"reduction": Reduction,
|
|
60
60
|
"svar": SolutionVariableService,
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
|
|
23
23
|
"""Provides a module for the API upgrade advisor."""
|
|
24
24
|
|
|
25
|
-
import os
|
|
26
25
|
from typing import TypeVar
|
|
27
26
|
|
|
28
27
|
from ansys.fluent.core.services.app_utilities import AppUtilities
|
|
@@ -47,8 +46,10 @@ class ApiUpgradeAdvisor:
|
|
|
47
46
|
self._id = None
|
|
48
47
|
|
|
49
48
|
def _can_advise(self) -> bool:
|
|
49
|
+
from ansys.fluent.core import config
|
|
50
|
+
|
|
50
51
|
return (
|
|
51
|
-
not
|
|
52
|
+
not config.skip_api_upgrade_advice
|
|
52
53
|
and FluentVersion(self._version) >= FluentVersion.v231
|
|
53
54
|
and self._mode == "solver"
|
|
54
55
|
)
|
|
@@ -104,6 +104,12 @@ class AppUtilitiesService:
|
|
|
104
104
|
"""Is beta enabled RPC of AppUtilities service."""
|
|
105
105
|
return self._stub.IsBetaEnabled(request, metadata=self._metadata)
|
|
106
106
|
|
|
107
|
+
def enable_beta(
|
|
108
|
+
self, request: AppUtilitiesProtoModule.EnableBetaRequest
|
|
109
|
+
) -> AppUtilitiesProtoModule.EnableBetaResponse:
|
|
110
|
+
"""Is beta enabled RPC of AppUtilities service."""
|
|
111
|
+
return self._stub.EnableBeta(request, metadata=self._metadata)
|
|
112
|
+
|
|
107
113
|
def is_wildcard(
|
|
108
114
|
self, request: AppUtilitiesProtoModule.IsWildcardRequest
|
|
109
115
|
) -> AppUtilitiesProtoModule.IsWildcardResponse:
|
|
@@ -255,6 +261,18 @@ class AppUtilitiesOld:
|
|
|
255
261
|
"""Is beta enabled."""
|
|
256
262
|
return self.scheme.eval("(is-beta-feature-available?)")
|
|
257
263
|
|
|
264
|
+
def enable_beta(self):
|
|
265
|
+
"""Enable beta features.
|
|
266
|
+
|
|
267
|
+
Raises
|
|
268
|
+
------
|
|
269
|
+
RuntimeError
|
|
270
|
+
Not supported before Fluent 2025 R2.
|
|
271
|
+
"""
|
|
272
|
+
raise RuntimeError(
|
|
273
|
+
"Enabling beta is not supported by PyFluent for Fluent versions before 2025 R2."
|
|
274
|
+
)
|
|
275
|
+
|
|
258
276
|
def is_wildcard(self, input: str | None = None) -> bool:
|
|
259
277
|
"""Is wildcard."""
|
|
260
278
|
return self.scheme.eval(f'(has-fnmatch-wild-card? "{input}")')
|
|
@@ -405,6 +423,11 @@ class AppUtilities:
|
|
|
405
423
|
response = self.service.is_beta_enabled(request)
|
|
406
424
|
return response.is_beta_enabled
|
|
407
425
|
|
|
426
|
+
def enable_beta(self) -> None:
|
|
427
|
+
"""Enable beta features."""
|
|
428
|
+
request = AppUtilitiesProtoModule.EnableBetaRequest()
|
|
429
|
+
self.service.enable_beta(request)
|
|
430
|
+
|
|
408
431
|
def is_wildcard(self, input: str | None = None) -> bool:
|
|
409
432
|
"""Is wildcard."""
|
|
410
433
|
request = AppUtilitiesProtoModule.IsWildcardRequest()
|
|
@@ -456,3 +479,19 @@ class AppUtilities:
|
|
|
456
479
|
request = AppUtilitiesProtoModule.SetWorkingDirectoryRequest()
|
|
457
480
|
request.path = path
|
|
458
481
|
self.service.set_working_directory(request)
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
class AppUtilitiesV252(AppUtilities):
|
|
485
|
+
"""AppUtilitiesV252.
|
|
486
|
+
This is for methods whose implementations are missing in the 25R2 server.
|
|
487
|
+
"""
|
|
488
|
+
|
|
489
|
+
def __init__(self, service: AppUtilitiesService, scheme):
|
|
490
|
+
super().__init__(service)
|
|
491
|
+
self.scheme = scheme
|
|
492
|
+
|
|
493
|
+
def enable_beta(self) -> None:
|
|
494
|
+
"""Enable beta features."""
|
|
495
|
+
self.scheme.eval(
|
|
496
|
+
'(fl-execute-cmd "file" "beta-settings" (list (cons "enable?" #t)))'
|
|
497
|
+
)
|
|
@@ -514,7 +514,9 @@ class DatamodelService(StreamingService):
|
|
|
514
514
|
self.event_streaming = None
|
|
515
515
|
self.subscriptions = SubscriptionList()
|
|
516
516
|
self.file_transfer_service = file_transfer_service
|
|
517
|
-
self.cache =
|
|
517
|
+
self.cache = (
|
|
518
|
+
DataModelCache() if pyfluent.config.datamodel_use_state_cache else None
|
|
519
|
+
)
|
|
518
520
|
self.version = version
|
|
519
521
|
|
|
520
522
|
def get_attribute_value(self, rules: str, path: str, attribute: str) -> ValueT:
|
|
@@ -1096,7 +1098,7 @@ class PyStateContainer(PyCallableStateObject):
|
|
|
1096
1098
|
Any
|
|
1097
1099
|
Value of the attribute.
|
|
1098
1100
|
"""
|
|
1099
|
-
if pyfluent.
|
|
1101
|
+
if pyfluent.config.datamodel_use_attr_cache:
|
|
1100
1102
|
return self._get_cached_attr(attrib)
|
|
1101
1103
|
return self._get_remote_attr(attrib)
|
|
1102
1104
|
|
|
@@ -28,15 +28,15 @@ import warnings
|
|
|
28
28
|
from ansys.api.fluent.v0 import field_data_pb2 as FieldDataProtoModule
|
|
29
29
|
from ansys.fluent.core.pyfluent_warnings import PyFluentDeprecationWarning
|
|
30
30
|
from ansys.fluent.core.services.field_data import (
|
|
31
|
+
Batch,
|
|
31
32
|
ChunkParser,
|
|
32
33
|
FieldDataService,
|
|
33
|
-
FieldInfo,
|
|
34
34
|
SurfaceDataType,
|
|
35
|
-
Transaction,
|
|
36
35
|
_AllowedScalarFieldNames,
|
|
37
36
|
_AllowedSurfaceIDs,
|
|
38
37
|
_AllowedSurfaceNames,
|
|
39
38
|
_AllowedVectorFieldNames,
|
|
39
|
+
_FieldInfo,
|
|
40
40
|
_FieldMethod,
|
|
41
41
|
_get_surface_ids,
|
|
42
42
|
get_fields_request,
|
|
@@ -223,7 +223,7 @@ class DeprecatedFieldData:
|
|
|
223
223
|
def __init__(
|
|
224
224
|
self,
|
|
225
225
|
service: FieldDataService,
|
|
226
|
-
field_info:
|
|
226
|
+
field_info: _FieldInfo,
|
|
227
227
|
is_data_valid: Callable[[], bool],
|
|
228
228
|
scheme_eval=None,
|
|
229
229
|
):
|
|
@@ -288,7 +288,7 @@ class DeprecatedFieldData:
|
|
|
288
288
|
def new_transaction(self):
|
|
289
289
|
"""Create a new field transaction."""
|
|
290
290
|
warnings.warn(DEPRECATION_MSG, PyFluentDeprecationWarning)
|
|
291
|
-
return
|
|
291
|
+
return Batch(
|
|
292
292
|
self._service,
|
|
293
293
|
self._field_info,
|
|
294
294
|
self._allowed_surface_ids,
|