ansys-fluent-core 0.31.dev1__py3-none-any.whl → 0.31.1__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 +11 -3
- ansys/fluent/core/codegen/settingsgen.py +6 -0
- ansys/fluent/core/codegen/tuigen.py +1 -2
- ansys/fluent/core/docker/docker_compose.py +243 -0
- ansys/fluent/core/field_data_interfaces.py +6 -0
- ansys/fluent/core/file_session.py +158 -128
- ansys/fluent/core/filereader/data_file.py +11 -0
- ansys/fluent/core/filereader/pre_processor.py +22 -0
- ansys/fluent/core/fluent_connection.py +48 -20
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_231/flicing.py +35 -35
- ansys/fluent/core/generated/datamodel_231/meshing.py +189 -189
- ansys/fluent/core/generated/datamodel_232/flicing.py +35 -35
- ansys/fluent/core/generated/datamodel_232/meshing.py +237 -237
- ansys/fluent/core/generated/datamodel_241/flicing.py +45 -45
- ansys/fluent/core/generated/datamodel_241/meshing.py +295 -295
- ansys/fluent/core/generated/datamodel_242/flicing.py +60 -60
- ansys/fluent/core/generated/datamodel_242/meshing.py +285 -285
- ansys/fluent/core/generated/datamodel_242/part_management.py +6 -6
- ansys/fluent/core/generated/datamodel_251/flicing.py +55 -55
- ansys/fluent/core/generated/datamodel_251/meshing.py +370 -370
- ansys/fluent/core/generated/datamodel_251/part_management.py +6 -6
- ansys/fluent/core/generated/datamodel_252/flicing.py +55 -55
- ansys/fluent/core/generated/datamodel_252/meshing.py +790 -428
- ansys/fluent/core/generated/datamodel_252/part_management.py +10 -10
- ansys/fluent/core/generated/datamodel_252/preferences.py +1 -1
- ansys/fluent/core/generated/fluent_version_252.py +4 -4
- ansys/fluent/core/generated/meshing/tui_252.py +1133 -1178
- ansys/fluent/core/generated/solver/settings_252.py +2241 -1649
- ansys/fluent/core/generated/solver/settings_252.pyi +1785 -1430
- ansys/fluent/core/generated/solver/settings_builtin.pyi +104 -0
- ansys/fluent/core/generated/solver/tui_252.py +2174 -2005
- ansys/fluent/core/launcher/container_launcher.py +39 -8
- ansys/fluent/core/launcher/fluent_container.py +61 -22
- ansys/fluent/core/launcher/launcher.py +24 -13
- ansys/fluent/core/launcher/launcher_utils.py +8 -0
- ansys/fluent/core/launcher/process_launch_string.py +2 -6
- ansys/fluent/core/launcher/slurm_launcher.py +1 -0
- ansys/fluent/core/report.py +2 -0
- ansys/fluent/core/services/deprecated_field_data.py +74 -46
- ansys/fluent/core/services/field_data.py +104 -69
- ansys/fluent/core/services/reduction.py +55 -66
- ansys/fluent/core/services/solution_variables.py +9 -1
- ansys/fluent/core/session.py +15 -12
- ansys/fluent/core/session_meshing.py +3 -0
- ansys/fluent/core/session_solver.py +20 -43
- ansys/fluent/core/session_utilities.py +429 -0
- ansys/fluent/core/solver/flobject.py +28 -0
- ansys/fluent/core/utils/deprecate.py +46 -0
- ansys/fluent/core/utils/file_transfer_service.py +19 -3
- ansys/fluent/core/utils/fluent_version.py +42 -11
- ansys/fluent/core/variable_strategies/__init__.py +29 -0
- ansys/fluent/core/variable_strategies/expr.py +186 -0
- ansys/fluent/core/variable_strategies/field.py +186 -0
- ansys/fluent/core/variable_strategies/svar.py +61 -0
- {ansys_fluent_core-0.31.dev1.dist-info → ansys_fluent_core-0.31.1.dist-info}/METADATA +9 -6
- {ansys_fluent_core-0.31.dev1.dist-info → ansys_fluent_core-0.31.1.dist-info}/RECORD +59 -53
- {ansys_fluent_core-0.31.dev1.dist-info → ansys_fluent_core-0.31.1.dist-info}/WHEEL +1 -1
- {ansys_fluent_core-0.31.dev1.dist-info → ansys_fluent_core-0.31.1.dist-info/licenses}/LICENSE +0 -0
|
@@ -51,6 +51,7 @@ from ansys.fluent.core.field_data_interfaces import (
|
|
|
51
51
|
_AllowedSurfaceNames,
|
|
52
52
|
_AllowedVectorFieldNames,
|
|
53
53
|
_ReturnFieldData,
|
|
54
|
+
_to_field_name_str,
|
|
54
55
|
)
|
|
55
56
|
from ansys.fluent.core.pyfluent_warnings import PyFluentDeprecationWarning
|
|
56
57
|
from ansys.fluent.core.services.interceptors import (
|
|
@@ -60,7 +61,7 @@ from ansys.fluent.core.services.interceptors import (
|
|
|
60
61
|
TracingInterceptor,
|
|
61
62
|
)
|
|
62
63
|
from ansys.fluent.core.services.streaming import StreamingService
|
|
63
|
-
from ansys.fluent.core.utils.deprecate import
|
|
64
|
+
from ansys.fluent.core.utils.deprecate import all_deprecators
|
|
64
65
|
|
|
65
66
|
logger = logging.getLogger("pyfluent.field_data")
|
|
66
67
|
|
|
@@ -428,7 +429,7 @@ class BaseFieldData:
|
|
|
428
429
|
)
|
|
429
430
|
]
|
|
430
431
|
return self._returned_data._scalar_data(
|
|
431
|
-
kwargs.get("field_name"),
|
|
432
|
+
_to_field_name_str(kwargs.get("field_name")),
|
|
432
433
|
kwargs.get("surfaces"),
|
|
433
434
|
self.get_surface_ids(kwargs.get("surfaces")),
|
|
434
435
|
scalar_field_data,
|
|
@@ -452,7 +453,7 @@ class BaseFieldData:
|
|
|
452
453
|
) -> Dict[int | str, np.array]:
|
|
453
454
|
vector_field_data = self.data[(("type", "vector-field"),)]
|
|
454
455
|
return self._returned_data._vector_data(
|
|
455
|
-
kwargs.get("field_name"),
|
|
456
|
+
_to_field_name_str(kwargs.get("field_name")),
|
|
456
457
|
kwargs.get("surfaces"),
|
|
457
458
|
self.get_surface_ids(kwargs.get("surfaces")),
|
|
458
459
|
vector_field_data,
|
|
@@ -465,11 +466,10 @@ class BaseFieldData:
|
|
|
465
466
|
if kwargs.get("zones") is None:
|
|
466
467
|
zones = []
|
|
467
468
|
del zones
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
]
|
|
469
|
+
field_name = _to_field_name_str(kwargs.get("field_name"))
|
|
470
|
+
pathlines_data = self.data[(("type", "pathlines-field"), ("field", field_name))]
|
|
471
471
|
return self._returned_data._pathlines_data(
|
|
472
|
-
|
|
472
|
+
field_name,
|
|
473
473
|
kwargs.get("surfaces"),
|
|
474
474
|
self.get_surface_ids(kwargs.get("surfaces")),
|
|
475
475
|
pathlines_data,
|
|
@@ -637,11 +637,16 @@ class Transaction(FieldTransaction):
|
|
|
637
637
|
raise ValueError("For 'path-lines' `field_name` should be unique.")
|
|
638
638
|
else:
|
|
639
639
|
self._pathline_field_data.append(field_name)
|
|
640
|
+
additional_field_name = kwargs.get("additional_field_name")
|
|
641
|
+
if additional_field_name:
|
|
642
|
+
additional_field_name = self._allowed_scalar_field_names.valid_name(
|
|
643
|
+
additional_field_name
|
|
644
|
+
)
|
|
640
645
|
self._fields_request.pathlinesFieldRequest.extend(
|
|
641
646
|
self._fetched_data._pathlines_data(
|
|
642
647
|
field_name,
|
|
643
648
|
kwargs.get("surfaces"),
|
|
644
|
-
additionalField=
|
|
649
|
+
additionalField=additional_field_name,
|
|
645
650
|
provideParticleTimeField=kwargs.get("provide_particle_time_field"),
|
|
646
651
|
dataLocation=(
|
|
647
652
|
FieldDataProtoModule.DataLocation.Nodes
|
|
@@ -660,17 +665,24 @@ class Transaction(FieldTransaction):
|
|
|
660
665
|
)
|
|
661
666
|
)
|
|
662
667
|
|
|
663
|
-
@
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
668
|
+
@all_deprecators(
|
|
669
|
+
deprecate_arg_mappings=[
|
|
670
|
+
{
|
|
671
|
+
"old_arg": "surface_names",
|
|
672
|
+
"new_arg": "surfaces",
|
|
673
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"old_arg": "surface_ids",
|
|
677
|
+
"new_arg": "surfaces",
|
|
678
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
679
|
+
},
|
|
680
|
+
],
|
|
681
|
+
data_type_converter=_data_type_convertor,
|
|
682
|
+
deprecated_version="v0.23.dev0",
|
|
683
|
+
deprecated_reason="Old arguments 'surface_ids' and 'surface_names' are deprecated. Use 'surfaces' instead.",
|
|
684
|
+
warn_message="'add_surfaces_request' is deprecated, use 'add_requests' instead",
|
|
672
685
|
)
|
|
673
|
-
@deprecate_arguments(converter=_data_type_convertor)
|
|
674
686
|
def add_surfaces_request(
|
|
675
687
|
self,
|
|
676
688
|
data_types: List[SurfaceDataType] | List[str],
|
|
@@ -679,25 +691,29 @@ class Transaction(FieldTransaction):
|
|
|
679
691
|
) -> None:
|
|
680
692
|
"""Add request to get surface data (vertices, face connectivity, centroids, and
|
|
681
693
|
normals)."""
|
|
682
|
-
warnings.warn(
|
|
683
|
-
"'add_surfaces_request' is deprecated, use 'add_requests' instead",
|
|
684
|
-
PyFluentDeprecationWarning,
|
|
685
|
-
)
|
|
686
694
|
self._add_surfaces_request(
|
|
687
695
|
data_types=data_types,
|
|
688
696
|
surfaces=self.get_surface_ids(surfaces),
|
|
689
697
|
overset_mesh=overset_mesh,
|
|
690
698
|
)
|
|
691
699
|
|
|
692
|
-
@
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
700
|
+
@all_deprecators(
|
|
701
|
+
deprecate_arg_mappings=[
|
|
702
|
+
{
|
|
703
|
+
"old_arg": "surface_names",
|
|
704
|
+
"new_arg": "surfaces",
|
|
705
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"old_arg": "surface_ids",
|
|
709
|
+
"new_arg": "surfaces",
|
|
710
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
711
|
+
},
|
|
712
|
+
],
|
|
713
|
+
data_type_converter=None,
|
|
714
|
+
deprecated_version="v0.23.dev0",
|
|
715
|
+
deprecated_reason="Old arguments 'surface_ids' and 'surface_names' are deprecated. Use 'surfaces' instead.",
|
|
716
|
+
warn_message="'add_scalar_fields_request' is deprecated, use 'add_requests' instead",
|
|
701
717
|
)
|
|
702
718
|
def add_scalar_fields_request(
|
|
703
719
|
self,
|
|
@@ -707,10 +723,6 @@ class Transaction(FieldTransaction):
|
|
|
707
723
|
boundary_value: bool | None = True,
|
|
708
724
|
) -> None:
|
|
709
725
|
"""Add request to get scalar field data on surfaces."""
|
|
710
|
-
warnings.warn(
|
|
711
|
-
"'add_scalar_fields_request' is deprecated, use 'add_requests' instead",
|
|
712
|
-
PyFluentDeprecationWarning,
|
|
713
|
-
)
|
|
714
726
|
self._add_scalar_fields_request(
|
|
715
727
|
field_name=field_name,
|
|
716
728
|
surfaces=self.get_surface_ids(surfaces),
|
|
@@ -718,15 +730,23 @@ class Transaction(FieldTransaction):
|
|
|
718
730
|
boundary_value=boundary_value,
|
|
719
731
|
)
|
|
720
732
|
|
|
721
|
-
@
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
733
|
+
@all_deprecators(
|
|
734
|
+
deprecate_arg_mappings=[
|
|
735
|
+
{
|
|
736
|
+
"old_arg": "surface_names",
|
|
737
|
+
"new_arg": "surfaces",
|
|
738
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"old_arg": "surface_ids",
|
|
742
|
+
"new_arg": "surfaces",
|
|
743
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
744
|
+
},
|
|
745
|
+
],
|
|
746
|
+
data_type_converter=None,
|
|
747
|
+
deprecated_version="v0.23.dev0",
|
|
748
|
+
deprecated_reason="Old arguments 'surface_ids' and 'surface_names' are deprecated. Use 'surfaces' instead.",
|
|
749
|
+
warn_message="'add_vector_fields_request' is deprecated, use 'add_requests' instead",
|
|
730
750
|
)
|
|
731
751
|
def add_vector_fields_request(
|
|
732
752
|
self,
|
|
@@ -734,23 +754,27 @@ class Transaction(FieldTransaction):
|
|
|
734
754
|
surfaces: List[int | str],
|
|
735
755
|
) -> None:
|
|
736
756
|
"""Add request to get vector field data on surfaces."""
|
|
737
|
-
warnings.warn(
|
|
738
|
-
"'add_vector_fields_request' is deprecated, use 'add_requests' instead",
|
|
739
|
-
PyFluentDeprecationWarning,
|
|
740
|
-
)
|
|
741
757
|
self._add_vector_fields_request(
|
|
742
758
|
field_name=field_name, surfaces=self.get_surface_ids(surfaces)
|
|
743
759
|
)
|
|
744
760
|
|
|
745
|
-
@
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
761
|
+
@all_deprecators(
|
|
762
|
+
deprecate_arg_mappings=[
|
|
763
|
+
{
|
|
764
|
+
"old_arg": "surface_names",
|
|
765
|
+
"new_arg": "surfaces",
|
|
766
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"old_arg": "surface_ids",
|
|
770
|
+
"new_arg": "surfaces",
|
|
771
|
+
"converter": lambda old_arg_val: old_arg_val or [],
|
|
772
|
+
},
|
|
773
|
+
],
|
|
774
|
+
data_type_converter=None,
|
|
775
|
+
deprecated_version="v0.23.dev0",
|
|
776
|
+
deprecated_reason="Old arguments 'surface_ids' and 'surface_names' are deprecated. Use 'surfaces' instead.",
|
|
777
|
+
warn_message="'add_pathlines_fields_request' is deprecated, use 'add_requests' instead",
|
|
754
778
|
)
|
|
755
779
|
def add_pathlines_fields_request(
|
|
756
780
|
self,
|
|
@@ -770,10 +794,6 @@ class Transaction(FieldTransaction):
|
|
|
770
794
|
zones: list | None = None,
|
|
771
795
|
) -> None:
|
|
772
796
|
"""Add request to get path-lines field on surfaces."""
|
|
773
|
-
warnings.warn(
|
|
774
|
-
"'add_pathlines_fields_request' is deprecated, use 'add_requests' instead",
|
|
775
|
-
PyFluentDeprecationWarning,
|
|
776
|
-
)
|
|
777
797
|
self._add_pathlines_fields_request(
|
|
778
798
|
field_name=field_name,
|
|
779
799
|
surfaces=self.get_surface_ids(surfaces),
|
|
@@ -1247,6 +1267,7 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1247
1267
|
self._field_info = field_info
|
|
1248
1268
|
self.is_data_valid = is_data_valid
|
|
1249
1269
|
self.scheme_eval = scheme_eval
|
|
1270
|
+
|
|
1250
1271
|
self.get_zones_info = lambda: get_zones_info()()
|
|
1251
1272
|
|
|
1252
1273
|
self._allowed_surface_names = _AllowedSurfaceNames(field_info)
|
|
@@ -1324,9 +1345,12 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1324
1345
|
surfaces = kwargs.get("surfaces")
|
|
1325
1346
|
surface_ids = self.get_surface_ids(surfaces)
|
|
1326
1347
|
fields_request = get_fields_request()
|
|
1348
|
+
field_name = self._allowed_scalar_field_names.valid_name(
|
|
1349
|
+
kwargs.get("field_name")
|
|
1350
|
+
)
|
|
1327
1351
|
fields_request.scalarFieldRequest.extend(
|
|
1328
1352
|
self._fetched_data._scalar_data(
|
|
1329
|
-
|
|
1353
|
+
field_name,
|
|
1330
1354
|
self.get_surface_ids(surfaces),
|
|
1331
1355
|
kwargs.get("node_value"),
|
|
1332
1356
|
kwargs.get("boundary_value"),
|
|
@@ -1335,7 +1359,7 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1335
1359
|
fields = ChunkParser().extract_fields(self._service.get_fields(fields_request))
|
|
1336
1360
|
scalar_field_data = next(iter(fields.values()))
|
|
1337
1361
|
return self._returned_data._scalar_data(
|
|
1338
|
-
|
|
1362
|
+
field_name, surfaces, surface_ids, scalar_field_data
|
|
1339
1363
|
)
|
|
1340
1364
|
|
|
1341
1365
|
def _get_surface_data(
|
|
@@ -1372,12 +1396,15 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1372
1396
|
**kwargs,
|
|
1373
1397
|
) -> Dict[int | str, np.array]:
|
|
1374
1398
|
surface_ids = self.get_surface_ids(kwargs.get("surfaces"))
|
|
1399
|
+
field_name = self._allowed_vector_field_names.valid_name(
|
|
1400
|
+
kwargs.get("field_name")
|
|
1401
|
+
)
|
|
1375
1402
|
for surface_id in surface_ids:
|
|
1376
1403
|
self.scheme_eval.string_eval(f"(surface? {surface_id})")
|
|
1377
1404
|
fields_request = get_fields_request()
|
|
1378
1405
|
fields_request.vectorFieldRequest.extend(
|
|
1379
1406
|
self._fetched_data._vector_data(
|
|
1380
|
-
|
|
1407
|
+
field_name,
|
|
1381
1408
|
surface_ids,
|
|
1382
1409
|
)
|
|
1383
1410
|
)
|
|
@@ -1385,7 +1412,7 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1385
1412
|
vector_field_data = next(iter(fields.values()))
|
|
1386
1413
|
|
|
1387
1414
|
return self._returned_data._vector_data(
|
|
1388
|
-
|
|
1415
|
+
field_name,
|
|
1389
1416
|
kwargs.get("surfaces"),
|
|
1390
1417
|
surface_ids,
|
|
1391
1418
|
vector_field_data,
|
|
@@ -1398,12 +1425,20 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1398
1425
|
if kwargs.get("zones") is None:
|
|
1399
1426
|
zones = []
|
|
1400
1427
|
surface_ids = self.get_surface_ids(kwargs.get("surfaces"))
|
|
1428
|
+
field_name = self._allowed_scalar_field_names.valid_name(
|
|
1429
|
+
kwargs.get("field_name")
|
|
1430
|
+
)
|
|
1401
1431
|
fields_request = get_fields_request()
|
|
1432
|
+
additional_field_name = kwargs.get("additional_field_name")
|
|
1433
|
+
if additional_field_name:
|
|
1434
|
+
additional_field_name = self._allowed_scalar_field_names.valid_name(
|
|
1435
|
+
additional_field_name
|
|
1436
|
+
)
|
|
1402
1437
|
fields_request.pathlinesFieldRequest.extend(
|
|
1403
1438
|
self._fetched_data._pathlines_data(
|
|
1404
|
-
|
|
1439
|
+
field_name,
|
|
1405
1440
|
surface_ids,
|
|
1406
|
-
additionalField=kwargs.get(
|
|
1441
|
+
additionalField=kwargs.get(additional_field_name),
|
|
1407
1442
|
provideParticleTimeField=kwargs.get("provide_particle_time_field"),
|
|
1408
1443
|
dataLocation=(
|
|
1409
1444
|
FieldDataProtoModule.DataLocation.Nodes
|
|
@@ -1427,7 +1462,7 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1427
1462
|
if self._deprecated_flag:
|
|
1428
1463
|
self._deprecated_flag = False
|
|
1429
1464
|
return self._returned_data._pathlines_data(
|
|
1430
|
-
|
|
1465
|
+
field_name,
|
|
1431
1466
|
kwargs.get("surfaces"),
|
|
1432
1467
|
surface_ids,
|
|
1433
1468
|
pathlines_data,
|
|
@@ -1435,7 +1470,7 @@ class LiveFieldData(BaseFieldData, FieldDataSource):
|
|
|
1435
1470
|
)
|
|
1436
1471
|
|
|
1437
1472
|
return self._returned_data._pathlines_data(
|
|
1438
|
-
|
|
1473
|
+
field_name,
|
|
1439
1474
|
kwargs.get("surfaces"),
|
|
1440
1475
|
surface_ids,
|
|
1441
1476
|
pathlines_data,
|
|
@@ -36,6 +36,9 @@ from ansys.fluent.core.services.interceptors import (
|
|
|
36
36
|
GrpcErrorInterceptor,
|
|
37
37
|
TracingInterceptor,
|
|
38
38
|
)
|
|
39
|
+
from ansys.fluent.core.variable_strategies import (
|
|
40
|
+
FluentExprNamingStrategy as naming_strategy,
|
|
41
|
+
)
|
|
39
42
|
|
|
40
43
|
Path = List[Tuple[str, str]]
|
|
41
44
|
|
|
@@ -273,6 +276,7 @@ class Reduction:
|
|
|
273
276
|
"""__init__ method of Reduction class."""
|
|
274
277
|
self.service = service
|
|
275
278
|
self.ctxt = weakref.proxy(ctxt)
|
|
279
|
+
self._to_str = naming_strategy().to_string if naming_strategy else lambda s: s
|
|
276
280
|
|
|
277
281
|
def _validate_str_location(self, loc: str):
|
|
278
282
|
if all(
|
|
@@ -295,174 +299,159 @@ class Reduction:
|
|
|
295
299
|
except BadReductionRequest:
|
|
296
300
|
return locations
|
|
297
301
|
|
|
302
|
+
def _make_request(
|
|
303
|
+
self,
|
|
304
|
+
requestName,
|
|
305
|
+
locations,
|
|
306
|
+
ctxt=None,
|
|
307
|
+
expression=None,
|
|
308
|
+
weight=None,
|
|
309
|
+
condition=None,
|
|
310
|
+
) -> Any:
|
|
311
|
+
request = getattr(ReductionProtoModule, requestName)()
|
|
312
|
+
if expression is not None:
|
|
313
|
+
request.expression = self._to_str(expression)
|
|
314
|
+
if weight is not None:
|
|
315
|
+
request.weight = weight
|
|
316
|
+
if condition is not None:
|
|
317
|
+
request.condition = condition
|
|
318
|
+
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
319
|
+
return request
|
|
320
|
+
|
|
298
321
|
def area(self, locations, ctxt=None) -> Any:
|
|
299
322
|
"""Get area."""
|
|
300
|
-
request =
|
|
301
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
323
|
+
request = self._make_request("AreaRequest", locations, ctxt)
|
|
302
324
|
response = self.service.area(request)
|
|
303
325
|
return _convert_variant_to_value(response.value)
|
|
304
326
|
|
|
305
327
|
def area_average(self, expression, locations, ctxt=None) -> Any:
|
|
306
328
|
"""Get area average."""
|
|
307
|
-
request =
|
|
308
|
-
request.expression = expression
|
|
309
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
329
|
+
request = self._make_request("AreaAveRequest", locations, ctxt, expression)
|
|
310
330
|
response = self.service.area_average(request)
|
|
311
331
|
return _convert_variant_to_value(response.value)
|
|
312
332
|
|
|
313
333
|
def area_integral(self, expression, locations, ctxt=None) -> Any:
|
|
314
334
|
"""Get area integral."""
|
|
315
|
-
request =
|
|
316
|
-
request.expression = expression
|
|
317
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
335
|
+
request = self._make_request("AreaIntRequest", locations, ctxt, expression)
|
|
318
336
|
response = self.service.area_integral(request)
|
|
319
337
|
return _convert_variant_to_value(response.value)
|
|
320
338
|
|
|
321
339
|
def centroid(self, locations, ctxt=None) -> Any:
|
|
322
340
|
"""Get centroid."""
|
|
323
|
-
request =
|
|
324
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
341
|
+
request = self._make_request("CentroidRequest", locations, ctxt)
|
|
325
342
|
response = self.service.centroid(request)
|
|
326
343
|
return (response.value.x, response.value.y, response.value.z)
|
|
327
344
|
|
|
328
345
|
def count(self, locations, ctxt=None) -> Any:
|
|
329
|
-
"""
|
|
330
|
-
request =
|
|
331
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
346
|
+
"""Count the number of faces or cells within the locations."""
|
|
347
|
+
request = self._make_request("CountRequest", locations, ctxt)
|
|
332
348
|
response = self.service.count(request)
|
|
333
349
|
return _convert_variant_to_value(response.value)
|
|
334
350
|
|
|
335
351
|
def count_if(self, condition, locations, ctxt=None) -> Any:
|
|
336
|
-
"""
|
|
337
|
-
request =
|
|
338
|
-
|
|
339
|
-
|
|
352
|
+
"""Count the number of faces or cells where the specified condition is satisfied."""
|
|
353
|
+
request = self._make_request(
|
|
354
|
+
"CountIfRequest", locations, ctxt, condition=condition
|
|
355
|
+
)
|
|
340
356
|
response = self.service.count_if(request)
|
|
341
357
|
return _convert_variant_to_value(response.value)
|
|
342
358
|
|
|
343
359
|
def force(self, locations, ctxt=None) -> Any:
|
|
344
360
|
"""Get force."""
|
|
345
|
-
request =
|
|
346
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
361
|
+
request = self._make_request("ForceRequest", locations, ctxt)
|
|
347
362
|
response = self.service.force(request)
|
|
348
363
|
return (response.value.x, response.value.y, response.value.z)
|
|
349
364
|
|
|
350
365
|
def mass_average(self, expression, locations, ctxt=None) -> Any:
|
|
351
366
|
"""Get mass average."""
|
|
352
|
-
request =
|
|
353
|
-
request.expression = expression
|
|
354
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
367
|
+
request = self._make_request("MassAveRequest", locations, ctxt, expression)
|
|
355
368
|
response = self.service.mass_average(request)
|
|
356
369
|
return _convert_variant_to_value(response.value)
|
|
357
370
|
|
|
358
371
|
def mass_flow_average(self, expression, locations, ctxt=None) -> Any:
|
|
359
372
|
"""Get mass flow average."""
|
|
360
|
-
request =
|
|
361
|
-
request.expression = expression
|
|
362
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
373
|
+
request = self._make_request("MassFlowAveRequest", locations, ctxt, expression)
|
|
363
374
|
response = self.service.mass_flow_average(request)
|
|
364
375
|
return _convert_variant_to_value(response.value)
|
|
365
376
|
|
|
366
377
|
def mass_flow_average_absolute(self, expression, locations, ctxt=None) -> Any:
|
|
367
|
-
"""
|
|
368
|
-
request =
|
|
369
|
-
|
|
370
|
-
|
|
378
|
+
"""Compute the mass flow average of the absolute value of the given expression."""
|
|
379
|
+
request = self._make_request(
|
|
380
|
+
"MassFlowAveAbsRequest", locations, ctxt, expression
|
|
381
|
+
)
|
|
371
382
|
response = self.service.mass_flow_average_absolute(request)
|
|
372
383
|
return _convert_variant_to_value(response.value)
|
|
373
384
|
|
|
374
385
|
def mass_flow_integral(self, expression, locations, ctxt=None) -> Any:
|
|
375
386
|
"""Get mass flow integral."""
|
|
376
|
-
request =
|
|
377
|
-
request.expression = expression
|
|
378
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
387
|
+
request = self._make_request("MassFlowIntRequest", locations, ctxt, expression)
|
|
379
388
|
response = self.service.mass_flow_integral(request)
|
|
380
389
|
return _convert_variant_to_value(response.value)
|
|
381
390
|
|
|
382
391
|
def mass_integral(self, expression, locations, ctxt=None) -> Any:
|
|
383
392
|
"""Get mass integral."""
|
|
384
|
-
request =
|
|
385
|
-
request.expression = expression
|
|
386
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
393
|
+
request = self._make_request("MassIntRequest", locations, ctxt, expression)
|
|
387
394
|
response = self.service.mass_integral(request)
|
|
388
395
|
return _convert_variant_to_value(response.value)
|
|
389
396
|
|
|
390
397
|
def maximum(self, expression, locations, ctxt=None) -> Any:
|
|
391
398
|
"""Get maximum."""
|
|
392
|
-
request =
|
|
393
|
-
request.expression = expression
|
|
394
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
399
|
+
request = self._make_request("MaximumRequest", locations, ctxt, expression)
|
|
395
400
|
response = self.service.maximum(request)
|
|
396
401
|
return _convert_variant_to_value(response.value)
|
|
397
402
|
|
|
398
403
|
def minimum(self, expression, locations, ctxt=None) -> Any:
|
|
399
404
|
"""Get minimum."""
|
|
400
|
-
request =
|
|
401
|
-
request.expression = expression
|
|
402
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
405
|
+
request = self._make_request("MinimumRequest", locations, ctxt, expression)
|
|
403
406
|
response = self.service.minimum(request)
|
|
404
407
|
return _convert_variant_to_value(response.value)
|
|
405
408
|
|
|
406
409
|
def pressure_force(self, locations, ctxt=None) -> Any:
|
|
407
410
|
"""Get pressure force."""
|
|
408
|
-
request =
|
|
409
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
411
|
+
request = self._make_request("PressureForceRequest", locations, ctxt)
|
|
410
412
|
response = self.service.pressure_force(request)
|
|
411
413
|
return (response.value.x, response.value.y, response.value.z)
|
|
412
414
|
|
|
413
415
|
def viscous_force(self, locations, ctxt=None) -> Any:
|
|
414
416
|
"""Get viscous force."""
|
|
415
|
-
request =
|
|
416
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
417
|
+
request = self._make_request("ViscousForceRequest", locations, ctxt)
|
|
417
418
|
response = self.service.viscous_force(request)
|
|
418
419
|
return (response.value.x, response.value.y, response.value.z)
|
|
419
420
|
|
|
420
421
|
def volume(self, locations, ctxt=None) -> Any:
|
|
421
422
|
"""Get volume."""
|
|
422
|
-
request =
|
|
423
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
423
|
+
request = self._make_request("VolumeRequest", locations, ctxt)
|
|
424
424
|
response = self.service.volume(request)
|
|
425
425
|
return _convert_variant_to_value(response.value)
|
|
426
426
|
|
|
427
427
|
def volume_average(self, expression, locations, ctxt=None) -> Any:
|
|
428
428
|
"""Get volume average."""
|
|
429
|
-
request =
|
|
430
|
-
request.expression = expression
|
|
431
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
429
|
+
request = self._make_request("VolumeRequest", locations, ctxt, expression)
|
|
432
430
|
response = self.service.volume_average(request)
|
|
433
431
|
return _convert_variant_to_value(response.value)
|
|
434
432
|
|
|
435
433
|
def volume_integral(self, expression, locations, ctxt=None) -> Any:
|
|
436
434
|
"""Get volume integral."""
|
|
437
|
-
request =
|
|
438
|
-
request.expression = expression
|
|
439
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
435
|
+
request = self._make_request("VolumeIntRequest", locations, ctxt, expression)
|
|
440
436
|
response = self.service.volume_integral(request)
|
|
441
437
|
return _convert_variant_to_value(response.value)
|
|
442
438
|
|
|
443
439
|
def moment(self, expression, locations, ctxt=None) -> Any:
|
|
444
440
|
"""Get moment."""
|
|
445
|
-
request =
|
|
446
|
-
request.expression = expression
|
|
447
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
441
|
+
request = self._make_request("MomentRequest", locations, ctxt, expression)
|
|
448
442
|
response = self.service.moment(request)
|
|
449
443
|
return (response.value.x, response.value.y, response.value.z)
|
|
450
444
|
|
|
451
445
|
def sum(self, expression, locations, weight, ctxt=None) -> Any:
|
|
452
446
|
"""Get sum."""
|
|
453
|
-
request =
|
|
454
|
-
request.expression = expression
|
|
455
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
456
|
-
request.weight = weight
|
|
447
|
+
request = self._make_request("SumRequest", locations, ctxt, expression, weight)
|
|
457
448
|
response = self.service.sum(request)
|
|
458
449
|
return _convert_variant_to_value(response.value)
|
|
459
450
|
|
|
460
451
|
def sum_if(self, expression, condition, locations, weight, ctxt=None) -> Any:
|
|
461
|
-
"""
|
|
462
|
-
request =
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
request.locations.extend(self._get_location_string(locations, ctxt))
|
|
466
|
-
request.weight = weight
|
|
452
|
+
"""Compute the weighted sum of the expression at locations where the given condition is satisfied."""
|
|
453
|
+
request = self._make_request(
|
|
454
|
+
"SumIfRequest", locations, ctxt, expression, weight, condition
|
|
455
|
+
)
|
|
467
456
|
response = self.service.sum_if(request)
|
|
468
457
|
return _convert_variant_to_value(response.value)
|
|
@@ -42,6 +42,11 @@ from ansys.fluent.core.services.interceptors import (
|
|
|
42
42
|
TracingInterceptor,
|
|
43
43
|
)
|
|
44
44
|
from ansys.fluent.core.solver.error_message import allowed_name_error_message
|
|
45
|
+
from ansys.fluent.core.variable_strategies import (
|
|
46
|
+
FluentSVarNamingStrategy as naming_strategy,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
_to_field_name_str = naming_strategy().to_string if naming_strategy else lambda s: s
|
|
45
50
|
|
|
46
51
|
|
|
47
52
|
class SolutionVariableService:
|
|
@@ -354,6 +359,7 @@ class _AllowedSvarNames:
|
|
|
354
359
|
SvarError
|
|
355
360
|
If the given solution variable name is invalid.
|
|
356
361
|
"""
|
|
362
|
+
solution_variable_name = _to_field_name_str(solution_variable_name)
|
|
357
363
|
if not self.is_valid(
|
|
358
364
|
solution_variable_name, zone_names=zone_names, domain_name=domain_name
|
|
359
365
|
):
|
|
@@ -613,7 +619,9 @@ class SolutionVariableData:
|
|
|
613
619
|
)
|
|
614
620
|
svars_request.domainId = self._allowed_domain_names.valid_name(domain_name)
|
|
615
621
|
svars_request.name = self._allowed_solution_variable_names.valid_name(
|
|
616
|
-
solution_variable_name,
|
|
622
|
+
solution_variable_name,
|
|
623
|
+
zone_names,
|
|
624
|
+
domain_name,
|
|
617
625
|
)
|
|
618
626
|
zone_id_name_map = {}
|
|
619
627
|
for zone_name in zone_names:
|