ansys-fluent-core 0.29.dev0__py3-none-any.whl → 0.29.dev2__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 +1 -1
- ansys/fluent/core/_version.py +2 -2
- ansys/fluent/core/codegen/tuigen.py +1 -1
- ansys/fluent/core/codegen/walk_api.py +45 -18
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_252/meshing.py +1 -0
- ansys/fluent/core/generated/datamodel_252/preferences.py +7 -0
- ansys/fluent/core/generated/fluent_version_252.py +3 -3
- ansys/fluent/core/generated/meshing/tui_252.py +395 -390
- ansys/fluent/core/generated/solver/settings_252.py +782 -306
- ansys/fluent/core/generated/solver/settings_252.pyi +442 -133
- ansys/fluent/core/generated/solver/tui_252.py +4046 -3737
- ansys/fluent/core/launcher/container_launcher.py +4 -3
- ansys/fluent/core/launcher/fluent_container.py +22 -19
- ansys/fluent/core/launcher/launcher.py +2 -2
- ansys/fluent/core/launcher/pim_launcher.py +2 -2
- ansys/fluent/core/launcher/slurm_launcher.py +2 -2
- ansys/fluent/core/launcher/standalone_launcher.py +2 -2
- ansys/fluent/core/logging.py +2 -0
- ansys/fluent/core/logging_config.yaml +3 -0
- ansys/fluent/core/services/app_utilities.py +2 -1
- ansys/fluent/core/services/datamodel_se.py +141 -61
- ansys/fluent/core/services/field_data.py +252 -0
- ansys/fluent/core/services/interceptors.py +28 -2
- ansys/fluent/core/session.py +7 -2
- ansys/fluent/core/session_solver.py +21 -0
- ansys/fluent/core/streaming_services/datamodel_event_streaming.py +12 -12
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/LICENSE +1 -1
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/METADATA +53 -31
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/RECORD +65 -141
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/WHEEL +1 -1
- ansys/fluent/core/docs/README.rst +0 -155
- ansys/fluent/tests/conftest.py +0 -415
- ansys/fluent/tests/fluent_fixtures.py +0 -195
- ansys/fluent/tests/integration/test_optislang/test_optislang_integration.py +0 -263
- ansys/fluent/tests/parametric/test_local_parametric_run.py +0 -36
- ansys/fluent/tests/parametric/test_local_parametric_setup.py +0 -34
- ansys/fluent/tests/parametric/test_parametric_workflow.py +0 -279
- ansys/fluent/tests/test_aero_session.py +0 -88
- ansys/fluent/tests/test_batch_ops.py +0 -39
- ansys/fluent/tests/test_builtin_settings.py +0 -761
- ansys/fluent/tests/test_cad_to_post_ftm.py +0 -525
- ansys/fluent/tests/test_cad_to_post_wtm.py +0 -250
- ansys/fluent/tests/test_casereader.py +0 -324
- ansys/fluent/tests/test_codegen.py +0 -783
- ansys/fluent/tests/test_creatable.py +0 -31
- ansys/fluent/tests/test_data_model_cache.py +0 -434
- ansys/fluent/tests/test_datamodel_api.py +0 -449
- ansys/fluent/tests/test_datamodel_service.py +0 -814
- ansys/fluent/tests/test_datareader.py +0 -103
- ansys/fluent/tests/test_error_handling.py +0 -24
- ansys/fluent/tests/test_events_manager.py +0 -214
- ansys/fluent/tests/test_field_data.py +0 -466
- ansys/fluent/tests/test_file_session.py +0 -355
- ansys/fluent/tests/test_file_transfer_service.py +0 -165
- ansys/fluent/tests/test_fix_doc.py +0 -29
- ansys/fluent/tests/test_flobject.py +0 -1235
- ansys/fluent/tests/test_fluent_fixes.py +0 -106
- ansys/fluent/tests/test_fluent_session.py +0 -270
- ansys/fluent/tests/test_fluent_version.py +0 -66
- ansys/fluent/tests/test_fluent_version_marker.py +0 -65
- ansys/fluent/tests/test_icing_session.py +0 -9
- ansys/fluent/tests/test_launcher.py +0 -529
- ansys/fluent/tests/test_launcher_remote.py +0 -272
- ansys/fluent/tests/test_lispy.py +0 -40
- ansys/fluent/tests/test_logging.py +0 -16
- ansys/fluent/tests/test_mapped_api.py +0 -774
- ansys/fluent/tests/test_meshing_utilities.py +0 -2436
- ansys/fluent/tests/test_meshing_workflow.py +0 -421
- ansys/fluent/tests/test_meshingmode/test_meshing_launch.py +0 -168
- ansys/fluent/tests/test_new_meshing_workflow.py +0 -1801
- ansys/fluent/tests/test_preferences.py +0 -89
- ansys/fluent/tests/test_pure_mesh_vs_mesh_workflow.py +0 -101
- ansys/fluent/tests/test_reduction.py +0 -484
- ansys/fluent/tests/test_rp_vars.py +0 -77
- ansys/fluent/tests/test_scheduler.py +0 -471
- ansys/fluent/tests/test_scheme_eval_222.py +0 -338
- ansys/fluent/tests/test_scheme_eval_231.py +0 -243
- ansys/fluent/tests/test_search.py +0 -344
- ansys/fluent/tests/test_session.py +0 -594
- ansys/fluent/tests/test_settings_api.py +0 -606
- ansys/fluent/tests/test_settings_reader.py +0 -85
- ansys/fluent/tests/test_slurm_future.py +0 -67
- ansys/fluent/tests/test_solution_variables.py +0 -241
- ansys/fluent/tests/test_solver_monitors.py +0 -83
- ansys/fluent/tests/test_solvermode/boundaries_periodic_expDict +0 -1712
- ansys/fluent/tests/test_solvermode/test_boundaries.py +0 -127
- ansys/fluent/tests/test_solvermode/test_calculationactivities.py +0 -20
- ansys/fluent/tests/test_solvermode/test_controls.py +0 -131
- ansys/fluent/tests/test_solvermode/test_general.py +0 -109
- ansys/fluent/tests/test_solvermode/test_initialization.py +0 -83
- ansys/fluent/tests/test_solvermode/test_materials.py +0 -40
- ansys/fluent/tests/test_solvermode/test_methods.py +0 -65
- ansys/fluent/tests/test_solvermode/test_models.py +0 -99
- ansys/fluent/tests/test_solvermode/test_named_expressions.py +0 -35
- ansys/fluent/tests/test_solvermode/test_post_vector.py +0 -22
- ansys/fluent/tests/test_solvermode/test_species_model.py +0 -67
- ansys/fluent/tests/test_streaming_services.py +0 -52
- ansys/fluent/tests/test_systemcoupling.py +0 -44
- ansys/fluent/tests/test_topy.py +0 -179
- ansys/fluent/tests/test_tui_api.py +0 -70
- ansys/fluent/tests/test_type_stub.py +0 -37
- ansys/fluent/tests/test_utils.py +0 -82
- ansys/fluent/tests/util/__init__.py +0 -36
- ansys/fluent/tests/util/meshing_workflow.py +0 -33
- ansys/fluent/tests/util/solver.py +0 -72
- ansys_fluent_core-0.29.dev0.dist-info/AUTHORS +0 -12
ansys/fluent/tests/conftest.py
DELETED
|
@@ -1,415 +0,0 @@
|
|
|
1
|
-
from contextlib import nullcontext
|
|
2
|
-
import functools
|
|
3
|
-
import inspect
|
|
4
|
-
import operator
|
|
5
|
-
import os
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
import shutil
|
|
8
|
-
import sys
|
|
9
|
-
|
|
10
|
-
from packaging.specifiers import SpecifierSet
|
|
11
|
-
from packaging.version import Version
|
|
12
|
-
import pytest
|
|
13
|
-
|
|
14
|
-
import ansys.fluent.core as pyfluent
|
|
15
|
-
from ansys.fluent.core.examples.downloads import download_file
|
|
16
|
-
from ansys.fluent.core.utils.file_transfer_service import RemoteFileTransferStrategy
|
|
17
|
-
from ansys.fluent.core.utils.fluent_version import FluentVersion
|
|
18
|
-
|
|
19
|
-
sys.path.append(Path(__file__).parent / "util")
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def pytest_addoption(parser):
|
|
23
|
-
parser.addoption(
|
|
24
|
-
"--fluent-version",
|
|
25
|
-
action="store",
|
|
26
|
-
metavar="VERSION",
|
|
27
|
-
help="only run tests supported by Fluent version VERSION.",
|
|
28
|
-
)
|
|
29
|
-
parser.addoption(
|
|
30
|
-
"--nightly", action="store_true", default=False, help="run nightly tests"
|
|
31
|
-
)
|
|
32
|
-
parser.addoption(
|
|
33
|
-
"--solvermode", action="store_true", default=False, help="run solvermode tests"
|
|
34
|
-
)
|
|
35
|
-
parser.addoption(
|
|
36
|
-
"--write-fluent-journals",
|
|
37
|
-
action="store_true",
|
|
38
|
-
default=False,
|
|
39
|
-
help="Write Fluent journals for unittests",
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def pytest_runtest_setup(item):
|
|
44
|
-
if (
|
|
45
|
-
any(mark.name == "standalone" for mark in item.iter_markers())
|
|
46
|
-
and os.getenv("PYFLUENT_LAUNCH_CONTAINER") == "1"
|
|
47
|
-
):
|
|
48
|
-
pytest.skip()
|
|
49
|
-
|
|
50
|
-
is_nightly = item.config.getoption("--nightly")
|
|
51
|
-
if not is_nightly and any(mark.name == "nightly" for mark in item.iter_markers()):
|
|
52
|
-
pytest.skip()
|
|
53
|
-
|
|
54
|
-
is_solvermode_option = item.config.getoption("--solvermode")
|
|
55
|
-
is_solvermode_path = "test_solvermode" in item.path.parts
|
|
56
|
-
if is_solvermode_option ^ is_solvermode_path:
|
|
57
|
-
pytest.skip()
|
|
58
|
-
|
|
59
|
-
version_specs = []
|
|
60
|
-
fluent_release_version = FluentVersion.current_release().value
|
|
61
|
-
for mark in item.iter_markers(name="fluent_version"):
|
|
62
|
-
spec = mark.args[0]
|
|
63
|
-
# if a test is marked as fluent_version("latest")
|
|
64
|
-
# run with dev and release Fluent versions in nightly
|
|
65
|
-
# run with release Fluent versions in PRs
|
|
66
|
-
if spec == "latest":
|
|
67
|
-
spec = (
|
|
68
|
-
f">={fluent_release_version}"
|
|
69
|
-
if is_nightly or is_solvermode_option
|
|
70
|
-
else f"=={fluent_release_version}"
|
|
71
|
-
)
|
|
72
|
-
version_specs.append(SpecifierSet(spec))
|
|
73
|
-
if version_specs:
|
|
74
|
-
combined_spec = functools.reduce(operator.and_, version_specs)
|
|
75
|
-
version = item.config.getoption("--fluent-version")
|
|
76
|
-
if version and Version(version) not in combined_spec:
|
|
77
|
-
pytest.skip()
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
def pytest_collection_finish(session):
|
|
81
|
-
if session.config.getoption("--write-fluent-journals"):
|
|
82
|
-
import_path = Path(__file__).parent
|
|
83
|
-
sys.path.append(str(import_path))
|
|
84
|
-
import fluent_fixtures
|
|
85
|
-
|
|
86
|
-
launcher_args_by_fixture = {}
|
|
87
|
-
for k, v in fluent_fixtures.__dict__.items():
|
|
88
|
-
if hasattr(v, "fluent_launcher_args"):
|
|
89
|
-
launcher_args_by_fixture[k] = v.fluent_launcher_args
|
|
90
|
-
fluent_test_root = import_path / "fluent"
|
|
91
|
-
shutil.rmtree(fluent_test_root, ignore_errors=True)
|
|
92
|
-
for item in session.items:
|
|
93
|
-
skip = False
|
|
94
|
-
for mark in item.iter_markers(name="skip"):
|
|
95
|
-
skip = True
|
|
96
|
-
for mark in item.iter_markers(name="fluent_version"):
|
|
97
|
-
spec = mark.args[0]
|
|
98
|
-
# TODO: Support older versions
|
|
99
|
-
if not (
|
|
100
|
-
spec == "latest"
|
|
101
|
-
or Version(FluentVersion.current_dev().value) in SpecifierSet(spec)
|
|
102
|
-
):
|
|
103
|
-
skip = True
|
|
104
|
-
if skip:
|
|
105
|
-
continue
|
|
106
|
-
fluent_test_dir = fluent_test_root / item.module.__name__ / item.name
|
|
107
|
-
fluent_test_config = fluent_test_dir / "test.yaml"
|
|
108
|
-
fluent_test_file = fluent_test_dir / "test.py"
|
|
109
|
-
launcher_args = ""
|
|
110
|
-
parameters = inspect.signature(item.function).parameters
|
|
111
|
-
parameter_set = {p for p in parameters}
|
|
112
|
-
if not (parameter_set & set(launcher_args_by_fixture.keys())):
|
|
113
|
-
# Skipping as unittest doesn't use fluent fixture
|
|
114
|
-
continue
|
|
115
|
-
for param in parameters:
|
|
116
|
-
if param not in dir(fluent_fixtures):
|
|
117
|
-
print(f"Skipping {item.nodeid} because of missing fixture {param}")
|
|
118
|
-
skip = True
|
|
119
|
-
break
|
|
120
|
-
if skip:
|
|
121
|
-
continue
|
|
122
|
-
for param in parameters:
|
|
123
|
-
if param in launcher_args_by_fixture:
|
|
124
|
-
launcher_args = launcher_args_by_fixture[param]
|
|
125
|
-
break
|
|
126
|
-
fluent_test_dir.mkdir(parents=True, exist_ok=True)
|
|
127
|
-
with open(fluent_test_config, "w") as f:
|
|
128
|
-
f.write(f"launcher_args: {launcher_args}\n")
|
|
129
|
-
with open(fluent_test_file, "w") as f:
|
|
130
|
-
f.write("import sys\n")
|
|
131
|
-
f.write('sys.path.append("/testing")\n')
|
|
132
|
-
f.write(
|
|
133
|
-
f"from {item.module.__name__} import {item.name} # noqa: E402\n"
|
|
134
|
-
)
|
|
135
|
-
f.write("from fluent_fixtures import ( # noqa: E402\n")
|
|
136
|
-
for param in parameters:
|
|
137
|
-
f.write(f" {param},\n")
|
|
138
|
-
f.write(")\n")
|
|
139
|
-
f.write("\n")
|
|
140
|
-
f.write(f"{item.name}(")
|
|
141
|
-
f.write(", ".join([f"{p}(globals())" for p in parameters]))
|
|
142
|
-
f.write(")\n")
|
|
143
|
-
f.write("exit()\n")
|
|
144
|
-
print(f"Written {fluent_test_file}")
|
|
145
|
-
session.items = []
|
|
146
|
-
session.testscollected = 0
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
@pytest.fixture(autouse=True)
|
|
150
|
-
def run_before_each_test(
|
|
151
|
-
monkeypatch: pytest.MonkeyPatch, request: pytest.FixtureRequest
|
|
152
|
-
) -> None:
|
|
153
|
-
monkeypatch.setenv("PYFLUENT_TEST_NAME", request.node.name)
|
|
154
|
-
monkeypatch.setenv("PYFLUENT_CODEGEN_SKIP_BUILTIN_SETTINGS", "1")
|
|
155
|
-
pyfluent.CONTAINER_MOUNT_SOURCE = pyfluent.EXAMPLES_PATH
|
|
156
|
-
pyfluent.CONTAINER_MOUNT_TARGET = pyfluent.EXAMPLES_PATH
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
class Helpers:
|
|
160
|
-
"""Can be reused to provide helper methods to tests."""
|
|
161
|
-
|
|
162
|
-
def __init__(self, monkeypatch: pytest.MonkeyPatch):
|
|
163
|
-
self.monkeypatch = monkeypatch
|
|
164
|
-
|
|
165
|
-
def mock_awp_vars(self, version=None):
|
|
166
|
-
"""Activates env vars for Fluent versions up to specified version, deactivates
|
|
167
|
-
env vars for versions newer than specified."""
|
|
168
|
-
if not version:
|
|
169
|
-
version = FluentVersion.current_release()
|
|
170
|
-
elif not isinstance(version, FluentVersion):
|
|
171
|
-
version = FluentVersion(version)
|
|
172
|
-
self.monkeypatch.delenv("PYFLUENT_FLUENT_ROOT", raising=False)
|
|
173
|
-
for fv in FluentVersion:
|
|
174
|
-
if fv <= version:
|
|
175
|
-
self.monkeypatch.setenv(fv.awp_var, f"ansys_inc/{fv.name}")
|
|
176
|
-
else:
|
|
177
|
-
self.monkeypatch.delenv(fv.awp_var, raising=False)
|
|
178
|
-
|
|
179
|
-
def delete_all_awp_vars(self):
|
|
180
|
-
for fv in FluentVersion:
|
|
181
|
-
self.monkeypatch.delenv(fv.awp_var, raising=False)
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
@pytest.fixture
|
|
185
|
-
def helpers(monkeypatch):
|
|
186
|
-
return Helpers(monkeypatch)
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
pytest.wont_raise = nullcontext
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
def pytest_sessionfinish(session, exitstatus):
|
|
193
|
-
if exitstatus == 5:
|
|
194
|
-
session.exitstatus = 0
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
# tests_by_fixture = defaultdict(list)
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
# def pytest_collection_finish(session):
|
|
201
|
-
# for k, v in sorted(tests_by_fixture.items(), key=lambda t: len(t[1]), reverse=True):
|
|
202
|
-
# print(k, len(v))
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
# def pytest_itemcollected(item):
|
|
206
|
-
# if not item.nodeid.startswith("tests/test_solvermode/"):
|
|
207
|
-
# for fixture in item.fixturenames:
|
|
208
|
-
# tests_by_fixture[fixture].append(item.nodeid)
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
@pytest.fixture
|
|
212
|
-
def mixing_elbow_geometry_filename():
|
|
213
|
-
return download_file(
|
|
214
|
-
file_name="mixing_elbow.pmdb", directory="pyfluent/mixing_elbow"
|
|
215
|
-
)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
@pytest.fixture
|
|
219
|
-
def exhaust_system_geometry_filename():
|
|
220
|
-
return download_file(
|
|
221
|
-
file_name="exhaust_system.fmd", directory="pyfluent/exhaust_system"
|
|
222
|
-
)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
def create_session(**kwargs):
|
|
226
|
-
if pyfluent.USE_FILE_TRANSFER_SERVICE:
|
|
227
|
-
file_transfer_service = RemoteFileTransferStrategy()
|
|
228
|
-
container_dict = {"mount_source": file_transfer_service.MOUNT_SOURCE}
|
|
229
|
-
return pyfluent.launch_fluent(
|
|
230
|
-
container_dict=container_dict,
|
|
231
|
-
file_transfer_service=file_transfer_service,
|
|
232
|
-
**kwargs,
|
|
233
|
-
)
|
|
234
|
-
else:
|
|
235
|
-
return pyfluent.launch_fluent(**kwargs)
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
@pytest.fixture
|
|
239
|
-
def new_meshing_session():
|
|
240
|
-
meshing = create_session(mode=pyfluent.FluentMode.MESHING)
|
|
241
|
-
yield meshing
|
|
242
|
-
meshing.exit()
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
@pytest.fixture
|
|
246
|
-
def new_pure_meshing_session():
|
|
247
|
-
meshing = create_session(mode=pyfluent.FluentMode.PURE_MESHING)
|
|
248
|
-
yield meshing
|
|
249
|
-
meshing.exit()
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
@pytest.fixture
|
|
253
|
-
def watertight_workflow_session(new_meshing_session):
|
|
254
|
-
new_meshing_session.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")
|
|
255
|
-
return new_meshing_session
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
@pytest.fixture
|
|
259
|
-
def fault_tolerant_workflow_session(new_meshing_session):
|
|
260
|
-
new_meshing_session.workflow.InitializeWorkflow(
|
|
261
|
-
WorkflowType="Fault-tolerant Meshing"
|
|
262
|
-
)
|
|
263
|
-
return new_meshing_session
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
@pytest.fixture
|
|
267
|
-
def mixing_elbow_watertight_pure_meshing_session(
|
|
268
|
-
new_pure_meshing_session, mixing_elbow_geometry_filename
|
|
269
|
-
):
|
|
270
|
-
meshing = new_pure_meshing_session
|
|
271
|
-
meshing.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")
|
|
272
|
-
meshing.workflow.TaskObject["Import Geometry"].Arguments = dict(
|
|
273
|
-
FileName=mixing_elbow_geometry_filename, LengthUnit="in"
|
|
274
|
-
)
|
|
275
|
-
|
|
276
|
-
return meshing
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
@pytest.fixture
|
|
280
|
-
def new_solver_session():
|
|
281
|
-
solver = create_session()
|
|
282
|
-
yield solver
|
|
283
|
-
solver.exit()
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
@pytest.fixture
|
|
287
|
-
def new_solver_session_t4():
|
|
288
|
-
solver = create_session(processor_count=4)
|
|
289
|
-
yield solver
|
|
290
|
-
solver.exit()
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
@pytest.fixture
|
|
294
|
-
def new_solver_session_sp():
|
|
295
|
-
solver = create_session(precision="single")
|
|
296
|
-
yield solver
|
|
297
|
-
solver.exit()
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
@pytest.fixture
|
|
301
|
-
def new_solver_session_2d():
|
|
302
|
-
solver = create_session(dimension=2)
|
|
303
|
-
yield solver
|
|
304
|
-
solver.exit()
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
@pytest.fixture
|
|
308
|
-
def static_mixer_settings_session(new_solver_session):
|
|
309
|
-
solver = new_solver_session
|
|
310
|
-
case_name = download_file("Static_Mixer_main.cas.h5", "pyfluent/static_mixer")
|
|
311
|
-
solver.file.read(
|
|
312
|
-
file_type="case",
|
|
313
|
-
file_name=case_name,
|
|
314
|
-
lightweight_setup=True,
|
|
315
|
-
)
|
|
316
|
-
return solver
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
@pytest.fixture
|
|
320
|
-
def static_mixer_case_session(new_solver_session):
|
|
321
|
-
solver = new_solver_session
|
|
322
|
-
case_name = download_file("Static_Mixer_main.cas.h5", "pyfluent/static_mixer")
|
|
323
|
-
solver.file.read(file_type="case", file_name=case_name)
|
|
324
|
-
return solver
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
@pytest.fixture
|
|
328
|
-
def mixing_elbow_settings_session(new_solver_session):
|
|
329
|
-
solver = new_solver_session
|
|
330
|
-
case_name = download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow")
|
|
331
|
-
solver.settings.file.read(
|
|
332
|
-
file_type="case",
|
|
333
|
-
file_name=case_name,
|
|
334
|
-
lightweight_setup=True,
|
|
335
|
-
)
|
|
336
|
-
return solver
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
@pytest.fixture
|
|
340
|
-
def mixing_elbow_case_session_t4(new_solver_session_t4):
|
|
341
|
-
solver = new_solver_session_t4
|
|
342
|
-
case_name = download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow")
|
|
343
|
-
solver.settings.file.read(file_type="case", file_name=case_name)
|
|
344
|
-
return solver
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
@pytest.fixture
|
|
348
|
-
def mixing_elbow_case_data_session(new_solver_session):
|
|
349
|
-
solver = new_solver_session
|
|
350
|
-
case_name = download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow")
|
|
351
|
-
download_file("mixing_elbow.dat.h5", "pyfluent/mixing_elbow")
|
|
352
|
-
solver.settings.file.read(file_type="case-data", file_name=case_name)
|
|
353
|
-
return solver
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
@pytest.fixture
|
|
357
|
-
def mixing_elbow_param_case_data_session(new_solver_session):
|
|
358
|
-
solver = new_solver_session
|
|
359
|
-
case_name = download_file("elbow_param.cas.h5", "pyfluent/mixing_elbow")
|
|
360
|
-
download_file("elbow_param.dat.h5", "pyfluent/mixing_elbow")
|
|
361
|
-
solver.settings.file.read(file_type="case-data", file_name=case_name)
|
|
362
|
-
return solver
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
@pytest.fixture
|
|
366
|
-
def disk_settings_session(new_solver_session_2d):
|
|
367
|
-
solver = new_solver_session_2d
|
|
368
|
-
case_name = download_file("disk.cas.h5", "pyfluent/rotating_disk")
|
|
369
|
-
solver.file.read(
|
|
370
|
-
file_type="case",
|
|
371
|
-
file_name=case_name,
|
|
372
|
-
lightweight_setup=True,
|
|
373
|
-
)
|
|
374
|
-
return solver
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
@pytest.fixture
|
|
378
|
-
def disk_case_session(new_solver_session_2d):
|
|
379
|
-
solver = new_solver_session_2d
|
|
380
|
-
case_name = download_file("disk.cas.h5", "pyfluent/rotating_disk")
|
|
381
|
-
solver.file.read(file_type="case", file_name=case_name)
|
|
382
|
-
return solver
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
@pytest.fixture
|
|
386
|
-
def periodic_rot_settings_session(new_solver_session):
|
|
387
|
-
solver = new_solver_session
|
|
388
|
-
case_name = download_file(
|
|
389
|
-
"periodic_rot.cas.h5",
|
|
390
|
-
"pyfluent/periodic_rot",
|
|
391
|
-
)
|
|
392
|
-
solver.file.read(
|
|
393
|
-
file_type="case",
|
|
394
|
-
file_name=case_name,
|
|
395
|
-
lightweight_setup=True,
|
|
396
|
-
)
|
|
397
|
-
return solver
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
@pytest.fixture
|
|
401
|
-
def disable_datamodel_cache(monkeypatch: pytest.MonkeyPatch):
|
|
402
|
-
monkeypatch.setattr(pyfluent, "DATAMODEL_USE_STATE_CACHE", False)
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
@pytest.fixture(params=["old", "new"])
|
|
406
|
-
def datamodel_api_version_all(request, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
407
|
-
if request.param == "new":
|
|
408
|
-
monkeypatch.setenv("REMOTING_NEW_DM_API", "1")
|
|
409
|
-
monkeypatch.setenv("REMOTING_MAPPED_NEW_DM_API", "1")
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
@pytest.fixture
|
|
413
|
-
def datamodel_api_version_new(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
414
|
-
monkeypatch.setenv("REMOTING_NEW_DM_API", "1")
|
|
415
|
-
monkeypatch.setenv("REMOTING_MAPPED_NEW_DM_API", "1")
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
from typing import Callable
|
|
2
|
-
|
|
3
|
-
import pytest
|
|
4
|
-
|
|
5
|
-
import ansys.fluent.core as pyfluent
|
|
6
|
-
from ansys.fluent.core.data_model_cache import DataModelCache
|
|
7
|
-
from ansys.fluent.core.examples import download_file
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def fluent_launcher_args(args: str):
|
|
11
|
-
def fluent_launcher_args_inner(f: Callable):
|
|
12
|
-
def wrapper(*args, **kwargs):
|
|
13
|
-
return f(*args, **kwargs)
|
|
14
|
-
|
|
15
|
-
wrapper.fluent_launcher_args = args
|
|
16
|
-
return wrapper
|
|
17
|
-
|
|
18
|
-
return fluent_launcher_args_inner
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def mixing_elbow_geometry_filename(globals):
|
|
22
|
-
return download_file(
|
|
23
|
-
file_name="mixing_elbow.pmdb", directory="pyfluent/mixing_elbow"
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def exhaust_system_geometry_filename(globals):
|
|
28
|
-
return download_file(
|
|
29
|
-
file_name="exhaust_system.fmd", directory="pyfluent/exhaust_system"
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
@fluent_launcher_args("3ddp -meshing")
|
|
34
|
-
def new_meshing_session(globals):
|
|
35
|
-
meshing = globals["meshing"]
|
|
36
|
-
return meshing
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
@fluent_launcher_args("3ddp -meshing")
|
|
40
|
-
def new_pure_meshing_session(globals):
|
|
41
|
-
return new_meshing_session(globals)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
@fluent_launcher_args("3ddp -meshing")
|
|
45
|
-
def watertight_workflow_session(globals):
|
|
46
|
-
meshing = new_meshing_session(globals)
|
|
47
|
-
meshing.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")
|
|
48
|
-
return meshing
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@fluent_launcher_args("3ddp -meshing")
|
|
52
|
-
def fault_tolerant_workflow_session(globals):
|
|
53
|
-
meshing = new_meshing_session(globals)
|
|
54
|
-
meshing.workflow.InitializeWorkflow(WorkflowType="Fault-tolerant Meshing")
|
|
55
|
-
return meshing
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
@fluent_launcher_args("3ddp -meshing")
|
|
59
|
-
def mixing_elbow_watertight_pure_meshing_session(globals):
|
|
60
|
-
meshing = new_pure_meshing_session(globals)
|
|
61
|
-
geometry_filename = mixing_elbow_geometry_filename(globals)
|
|
62
|
-
meshing.workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")
|
|
63
|
-
meshing.workflow.TaskObject["Import Geometry"].Arguments = dict(
|
|
64
|
-
FileName=geometry_filename, LengthUnit="in"
|
|
65
|
-
)
|
|
66
|
-
return meshing
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@fluent_launcher_args("3ddp")
|
|
70
|
-
def new_solver_session(globals):
|
|
71
|
-
solver = globals["solver"]
|
|
72
|
-
return solver
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
@fluent_launcher_args("3d")
|
|
76
|
-
def new_solver_session_sp(globals):
|
|
77
|
-
return new_solver_session(globals)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
@fluent_launcher_args("2ddp")
|
|
81
|
-
def new_solver_session_2d(globals):
|
|
82
|
-
return new_solver_session(globals)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
@fluent_launcher_args("3ddp")
|
|
86
|
-
def static_mixer_settings_session(globals):
|
|
87
|
-
solver = new_solver_session(globals)
|
|
88
|
-
case_name = download_file("Static_Mixer_main.cas.h5", "pyfluent/static_mixer")
|
|
89
|
-
solver.file.read(
|
|
90
|
-
file_type="case",
|
|
91
|
-
file_name=case_name,
|
|
92
|
-
lightweight_setup=True,
|
|
93
|
-
)
|
|
94
|
-
return solver
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
@fluent_launcher_args("3ddp")
|
|
98
|
-
def static_mixer_case_session(globals):
|
|
99
|
-
solver = new_solver_session(globals)
|
|
100
|
-
case_name = download_file("Static_Mixer_main.cas.h5", "pyfluent/static_mixer")
|
|
101
|
-
solver.file.read(file_type="case", file_name=case_name)
|
|
102
|
-
return solver
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
@fluent_launcher_args("3ddp")
|
|
106
|
-
def mixing_elbow_settings_session(globals):
|
|
107
|
-
solver = new_solver_session(globals)
|
|
108
|
-
case_name = download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow")
|
|
109
|
-
solver.settings.file.read(
|
|
110
|
-
file_type="case",
|
|
111
|
-
file_name=case_name,
|
|
112
|
-
lightweight_setup=True,
|
|
113
|
-
)
|
|
114
|
-
return solver
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
@fluent_launcher_args("3ddp")
|
|
118
|
-
def mixing_elbow_case_data_session(globals):
|
|
119
|
-
solver = new_solver_session(globals)
|
|
120
|
-
case_name = download_file("mixing_elbow.cas.h5", "pyfluent/mixing_elbow")
|
|
121
|
-
download_file("mixing_elbow.dat.h5", "pyfluent/mixing_elbow")
|
|
122
|
-
solver.settings.file.read(file_type="case-data", file_name=case_name)
|
|
123
|
-
return solver
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
@fluent_launcher_args("3ddp")
|
|
127
|
-
def mixing_elbow_param_case_data_session(globals):
|
|
128
|
-
solver = new_solver_session(globals)
|
|
129
|
-
case_name = download_file("elbow_param.cas.h5", "pyfluent/mixing_elbow")
|
|
130
|
-
download_file("elbow_param.dat.h5", "pyfluent/mixing_elbow")
|
|
131
|
-
solver.settings.file.read(file_type="case-data", file_name=case_name)
|
|
132
|
-
return solver
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
@fluent_launcher_args("2ddp")
|
|
136
|
-
def disk_settings_session(globals):
|
|
137
|
-
solver = new_solver_session_2d(globals)
|
|
138
|
-
case_name = download_file("disk.cas.h5", "pyfluent/rotating_disk")
|
|
139
|
-
solver.file.read(
|
|
140
|
-
file_type="case",
|
|
141
|
-
file_name=case_name,
|
|
142
|
-
lightweight_setup=True,
|
|
143
|
-
)
|
|
144
|
-
return solver
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
@fluent_launcher_args("2ddp")
|
|
148
|
-
def disk_case_session(globals):
|
|
149
|
-
solver = new_solver_session_2d(globals)
|
|
150
|
-
case_name = download_file("disk.cas.h5", "pyfluent/rotating_disk")
|
|
151
|
-
solver.file.read(file_type="case", file_name=case_name)
|
|
152
|
-
return solver
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
@fluent_launcher_args("3ddp")
|
|
156
|
-
def periodic_rot_settings_session(globals):
|
|
157
|
-
solver = new_solver_session(globals)
|
|
158
|
-
case_name = download_file(
|
|
159
|
-
"periodic_rot.cas.h5",
|
|
160
|
-
"pyfluent/periodic_rot",
|
|
161
|
-
)
|
|
162
|
-
solver.file.read(
|
|
163
|
-
file_type="case",
|
|
164
|
-
file_name=case_name,
|
|
165
|
-
lightweight_setup=True,
|
|
166
|
-
)
|
|
167
|
-
return solver
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
monkeypatch = pytest.MonkeyPatch()
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
def disable_datamodel_cache(globals):
|
|
174
|
-
monkeypatch.setattr(pyfluent, "DATAMODEL_USE_STATE_CACHE", False)
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
def display_names_as_keys_in_cache(globals):
|
|
178
|
-
DataModelCache.use_display_name = True
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
def new_meshing_session2(globals):
|
|
182
|
-
session = pyfluent.launch_fluent(mode=pyfluent.LaunchMode.MESHING)
|
|
183
|
-
return session
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
def new_solver_session2(globals):
|
|
187
|
-
session = pyfluent.launch_fluent()
|
|
188
|
-
return session
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
def static_mixer_case_session2(globals):
|
|
192
|
-
session = new_solver_session2(globals)
|
|
193
|
-
case_name = download_file("Static_Mixer_main.cas.h5", "pyfluent/static_mixer")
|
|
194
|
-
session.file.read(file_type="case", file_name=case_name)
|
|
195
|
-
return session
|