ansys-fluent-core 0.33.dev0__py3-none-any.whl → 0.34.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 +11 -4
- ansys/fluent/core/codegen/builtin_settingsgen.py +17 -9
- ansys/fluent/core/codegen/datamodelgen.py +2 -2
- ansys/fluent/core/codegen/print_fluent_version.py +4 -4
- ansys/fluent/core/codegen/settingsgen.py +1 -2
- ansys/fluent/core/exceptions.py +0 -1
- ansys/fluent/core/file_session.py +9 -9
- ansys/fluent/core/filereader/case_file.py +2 -2
- ansys/fluent/core/fluent_connection.py +5 -5
- 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 +202 -202
- ansys/fluent/core/generated/datamodel_232/flicing.py +55 -55
- ansys/fluent/core/generated/datamodel_232/meshing.py +159 -159
- ansys/fluent/core/generated/datamodel_241/flicing.py +35 -35
- ansys/fluent/core/generated/datamodel_241/meshing.py +294 -294
- ansys/fluent/core/generated/datamodel_242/flicing.py +35 -35
- ansys/fluent/core/generated/datamodel_242/meshing.py +305 -305
- ansys/fluent/core/generated/datamodel_242/part_management.py +9 -9
- ansys/fluent/core/generated/datamodel_251/flicing.py +50 -50
- ansys/fluent/core/generated/datamodel_251/meshing.py +337 -337
- ansys/fluent/core/generated/datamodel_251/part_management.py +6 -6
- ansys/fluent/core/generated/datamodel_252/flicing.py +35 -35
- ansys/fluent/core/generated/datamodel_252/meshing.py +399 -399
- ansys/fluent/core/generated/datamodel_252/part_management.py +5 -5
- ansys/fluent/core/generated/datamodel_261/flicing.py +45 -45
- ansys/fluent/core/generated/datamodel_261/meshing.py +412 -406
- ansys/fluent/core/generated/datamodel_261/part_management.py +5 -5
- ansys/fluent/core/generated/datamodel_261/solver_workflow.py +7 -0
- ansys/fluent/core/generated/fluent_version_261.py +3 -3
- ansys/fluent/core/generated/solver/settings_252.py +55 -55
- ansys/fluent/core/generated/solver/settings_261.py +2483 -3943
- ansys/fluent/core/generated/solver/settings_261.pyi +3530 -6130
- ansys/fluent/core/generated/solver/settings_builtin.py +57 -1
- ansys/fluent/core/generated/solver/settings_builtin.pyi +79 -0
- ansys/fluent/core/generated/solver/tui_261.py +185 -345
- ansys/fluent/core/launcher/container_launcher.py +7 -9
- ansys/fluent/core/launcher/fluent_container.py +106 -75
- ansys/fluent/core/launcher/launch_options.py +22 -1
- ansys/fluent/core/launcher/launcher.py +5 -4
- ansys/fluent/core/pyfluent_warnings.py +13 -0
- ansys/fluent/core/search.py +170 -83
- ansys/fluent/core/services/app_utilities.py +52 -32
- ansys/fluent/core/services/datamodel_se.py +6 -3
- ansys/fluent/core/services/scheme_eval.py +2 -0
- ansys/fluent/core/services/solution_variables.py +64 -49
- ansys/fluent/core/session.py +36 -30
- ansys/fluent/core/session_base_meshing.py +2 -24
- ansys/fluent/core/session_shared.py +5 -2
- ansys/fluent/core/session_solver.py +15 -9
- ansys/fluent/core/solver/__init__.py +1 -1
- ansys/fluent/core/solver/flobject.py +62 -64
- ansys/fluent/core/solver/settings_builtin_bases.py +14 -7
- ansys/fluent/core/solver/settings_builtin_data.py +121 -540
- ansys/fluent/core/utils/context_managers.py +0 -17
- ansys/fluent/core/utils/fluent_version.py +173 -0
- {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.34.dev0.dist-info}/METADATA +8 -8
- {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.34.dev0.dist-info}/RECORD +60 -78
- {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.34.dev0.dist-info}/WHEEL +1 -1
- ansys/fluent/core/generated/datamodel_222/meshing.py +0 -6332
- ansys/fluent/core/generated/datamodel_222/part_management.py +0 -2072
- ansys/fluent/core/generated/datamodel_222/pm_file_management.py +0 -290
- ansys/fluent/core/generated/datamodel_222/preferences.py +0 -2449
- ansys/fluent/core/generated/datamodel_222/workflow.py +0 -651
- ansys/fluent/core/generated/fluent_version_222.py +0 -5
- ansys/fluent/core/generated/meshing/tui_222.py +0 -9649
- ansys/fluent/core/generated/solver/settings_222.py +0 -29473
- ansys/fluent/core/generated/solver/settings_222.pyi +0 -19590
- ansys/fluent/core/generated/solver/tui_222.py +0 -43451
- ansys/fluent/core/post_objects/__init__.py +0 -21
- ansys/fluent/core/post_objects/check_in_notebook.py +0 -35
- ansys/fluent/core/post_objects/meta.py +0 -926
- ansys/fluent/core/post_objects/post_helper.py +0 -178
- ansys/fluent/core/post_objects/post_object_definitions.py +0 -693
- ansys/fluent/core/post_objects/post_objects_container.py +0 -248
- ansys/fluent/core/post_objects/singleton_meta.py +0 -42
- ansys/fluent/core/post_objects/timing_decorator.py +0 -38
- {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.34.dev0.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
-
# SPDX-License-Identifier: MIT
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
# in the Software without restriction, including without limitation the rights
|
|
8
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
# furnished to do so, subject to the following conditions:
|
|
11
|
-
#
|
|
12
|
-
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
# copies or substantial portions of the Software.
|
|
14
|
-
#
|
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
# SOFTWARE.
|
|
22
|
-
|
|
23
|
-
"""Provides a module for post objects."""
|
|
24
|
-
|
|
25
|
-
import re
|
|
26
|
-
|
|
27
|
-
from ansys.fluent.core.solver.flunits import get_si_unit_for_fluent_quantity
|
|
28
|
-
from ansys.fluent.core.utils.fluent_version import FluentVersion
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
class IncompleteISOSurfaceDefinition(RuntimeError):
|
|
32
|
-
"""Raised when iso-surface definition is incomplete."""
|
|
33
|
-
|
|
34
|
-
def __init__(self):
|
|
35
|
-
"""Initialize IncompleteISOSurfaceDefinition."""
|
|
36
|
-
super().__init__("Iso surface definition is incomplete.")
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class SurfaceCreationError(RuntimeError):
|
|
40
|
-
"""Raised when surface creation is unsuccessful."""
|
|
41
|
-
|
|
42
|
-
def __init__(self):
|
|
43
|
-
"""Initialize SurfaceCreationError."""
|
|
44
|
-
super().__init__("Surface creation is unsuccessful.")
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class PostAPIHelper:
|
|
48
|
-
"""Class providing helper API for post objects."""
|
|
49
|
-
|
|
50
|
-
class _SurfaceAPI:
|
|
51
|
-
"""Class providing APIs for surface operations."""
|
|
52
|
-
|
|
53
|
-
def __init__(self, obj):
|
|
54
|
-
self.obj = obj
|
|
55
|
-
self._surface_name_on_server = self.surface_name_on_server(obj._name)
|
|
56
|
-
|
|
57
|
-
@staticmethod
|
|
58
|
-
def surface_name_on_server(local_surface_name):
|
|
59
|
-
"""Returns the surface name on server."""
|
|
60
|
-
return "_dummy_surface_for_pyfluent:" + local_surface_name.lower()
|
|
61
|
-
|
|
62
|
-
def _get_api_handle(self):
|
|
63
|
-
return self.obj.get_root().session.results.surfaces
|
|
64
|
-
|
|
65
|
-
def _delete_if_exist_on_server(self):
|
|
66
|
-
field_info = self.obj._api_helper.field_info()
|
|
67
|
-
surfaces_list = list(field_info.get_surfaces_info().keys())
|
|
68
|
-
if self._surface_name_on_server in surfaces_list:
|
|
69
|
-
self.delete_surface_on_server()
|
|
70
|
-
|
|
71
|
-
def create_surface_on_server(self):
|
|
72
|
-
"""Creates the surface on server.
|
|
73
|
-
|
|
74
|
-
Raises
|
|
75
|
-
------
|
|
76
|
-
IncompleteISOSurfaceDefinition
|
|
77
|
-
If iso-surface definition is incomplete.
|
|
78
|
-
SurfaceCreationError
|
|
79
|
-
If server fails to create surface.
|
|
80
|
-
"""
|
|
81
|
-
if self.obj.definition.type() == "iso-surface":
|
|
82
|
-
iso_surface = self.obj.definition.iso_surface
|
|
83
|
-
field = iso_surface.field()
|
|
84
|
-
iso_value = iso_surface.iso_value()
|
|
85
|
-
if not field:
|
|
86
|
-
raise IncompleteISOSurfaceDefinition()
|
|
87
|
-
self._delete_if_exist_on_server()
|
|
88
|
-
self._get_api_handle().iso_surface[self._surface_name_on_server] = {
|
|
89
|
-
"field": field,
|
|
90
|
-
"iso_values": [iso_value],
|
|
91
|
-
}
|
|
92
|
-
elif self.obj.definition.type() == "plane-surface":
|
|
93
|
-
plane_surface = self.obj.definition.plane_surface
|
|
94
|
-
xy_plane = plane_surface.xy_plane
|
|
95
|
-
yz_plane = plane_surface.yz_plane
|
|
96
|
-
zx_plane = plane_surface.zx_plane
|
|
97
|
-
self._delete_if_exist_on_server()
|
|
98
|
-
if xy_plane():
|
|
99
|
-
method = "xy-plane"
|
|
100
|
-
position = "z"
|
|
101
|
-
value = xy_plane.z()
|
|
102
|
-
elif yz_plane():
|
|
103
|
-
method = "yz-plane"
|
|
104
|
-
position = "x"
|
|
105
|
-
value = yz_plane.x()
|
|
106
|
-
else:
|
|
107
|
-
method = "zx-plane"
|
|
108
|
-
position = "y"
|
|
109
|
-
value = zx_plane.y()
|
|
110
|
-
self._get_api_handle().plane_surface[self._surface_name_on_server] = {
|
|
111
|
-
"method": method,
|
|
112
|
-
position: value,
|
|
113
|
-
}
|
|
114
|
-
field_info = self.obj._api_helper.field_info()
|
|
115
|
-
surfaces_list = list(field_info.get_surfaces_info().keys())
|
|
116
|
-
if self._surface_name_on_server not in surfaces_list:
|
|
117
|
-
raise SurfaceCreationError()
|
|
118
|
-
|
|
119
|
-
def delete_surface_on_server(self):
|
|
120
|
-
"""Deletes the surface on server."""
|
|
121
|
-
if self.obj.definition.type() == "iso-surface":
|
|
122
|
-
del self._get_api_handle().iso_surface[self._surface_name_on_server]
|
|
123
|
-
elif self.obj.definition.type() == "plane-surface":
|
|
124
|
-
del self._get_api_handle().plane_surface[self._surface_name_on_server]
|
|
125
|
-
|
|
126
|
-
def __init__(self, obj):
|
|
127
|
-
"""__init__ method of PostAPIHelper class."""
|
|
128
|
-
self.obj = obj
|
|
129
|
-
self.field_info = lambda: obj.get_root().session.fields.field_info
|
|
130
|
-
self.field_data = lambda: obj.get_root().session.fields.field_data
|
|
131
|
-
self.id = lambda: obj.get_root().session.id
|
|
132
|
-
if obj.__class__.__name__ == "Surface":
|
|
133
|
-
self.surface_api = PostAPIHelper._SurfaceAPI(obj)
|
|
134
|
-
|
|
135
|
-
@property
|
|
136
|
-
def monitors(self):
|
|
137
|
-
"""Returns the session monitors."""
|
|
138
|
-
return self.obj.get_root().session.monitors
|
|
139
|
-
|
|
140
|
-
def remote_surface_name(self, local_surface_name):
|
|
141
|
-
"""Returns the surface name."""
|
|
142
|
-
|
|
143
|
-
local_surfaces_provider = self.obj.get_root()._local_surfaces_provider()
|
|
144
|
-
|
|
145
|
-
if local_surface_name in list(local_surfaces_provider):
|
|
146
|
-
return PostAPIHelper._SurfaceAPI.surface_name_on_server(local_surface_name)
|
|
147
|
-
else:
|
|
148
|
-
return local_surface_name
|
|
149
|
-
|
|
150
|
-
# Following functions will be deprecated in future.
|
|
151
|
-
def get_vector_fields(self):
|
|
152
|
-
"""Returns vector field."""
|
|
153
|
-
return self.field_info().get_vector_fields_info()
|
|
154
|
-
|
|
155
|
-
def get_field_unit(self, field):
|
|
156
|
-
"""Returns the unit of the field."""
|
|
157
|
-
session = self.obj.get_root().session
|
|
158
|
-
if FluentVersion(session.scheme.version) < FluentVersion.v252:
|
|
159
|
-
quantity = self._field_unit_quantity(field)
|
|
160
|
-
if quantity == "*null*":
|
|
161
|
-
return ""
|
|
162
|
-
scheme_eval_str = f"(units/get-pretty-wb-units-from-dimension (units/inquire-dimension '{quantity}))"
|
|
163
|
-
return " ".join(self._scheme_str_to_py_list(scheme_eval_str))
|
|
164
|
-
else:
|
|
165
|
-
fields_info = self.field_info().get_scalar_fields_info()
|
|
166
|
-
return get_si_unit_for_fluent_quantity(fields_info[field]["quantity_name"])
|
|
167
|
-
|
|
168
|
-
def _field_unit_quantity(self, field):
|
|
169
|
-
scheme_eval_str = f"(cdr (assq 'units (%fill-render-info '{field})))"
|
|
170
|
-
return self._scheme_str_to_py_list(scheme_eval_str)[0]
|
|
171
|
-
|
|
172
|
-
def _scheme_str_to_py_list(self, scheme_eval_str):
|
|
173
|
-
session = self.obj.get_root().session
|
|
174
|
-
if hasattr(session, "scheme_eval"):
|
|
175
|
-
str_val = session.scheme_eval.string_eval(scheme_eval_str)
|
|
176
|
-
return list(filter(None, re.split(r'[\s()"\']', str_val)))
|
|
177
|
-
else:
|
|
178
|
-
return ["*null*"]
|