ansys-fluent-core 0.29.dev0__py3-none-any.whl → 0.29.dev1__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.

Files changed (107) hide show
  1. ansys/fluent/core/__init__.py +1 -1
  2. ansys/fluent/core/_version.py +2 -2
  3. ansys/fluent/core/codegen/tuigen.py +1 -1
  4. ansys/fluent/core/codegen/walk_api.py +45 -18
  5. ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
  6. ansys/fluent/core/generated/datamodel_252/meshing.py +1 -0
  7. ansys/fluent/core/generated/datamodel_252/preferences.py +7 -0
  8. ansys/fluent/core/generated/fluent_version_252.py +3 -3
  9. ansys/fluent/core/generated/meshing/tui_252.py +395 -390
  10. ansys/fluent/core/generated/solver/settings_252.py +782 -306
  11. ansys/fluent/core/generated/solver/settings_252.pyi +442 -133
  12. ansys/fluent/core/generated/solver/tui_252.py +4046 -3737
  13. ansys/fluent/core/launcher/container_launcher.py +4 -3
  14. ansys/fluent/core/launcher/fluent_container.py +22 -19
  15. ansys/fluent/core/launcher/launcher.py +2 -2
  16. ansys/fluent/core/launcher/pim_launcher.py +2 -2
  17. ansys/fluent/core/launcher/slurm_launcher.py +2 -2
  18. ansys/fluent/core/launcher/standalone_launcher.py +2 -2
  19. ansys/fluent/core/logging.py +2 -0
  20. ansys/fluent/core/logging_config.yaml +3 -0
  21. ansys/fluent/core/services/app_utilities.py +2 -1
  22. ansys/fluent/core/services/datamodel_se.py +141 -61
  23. ansys/fluent/core/services/field_data.py +252 -0
  24. ansys/fluent/core/services/interceptors.py +28 -2
  25. ansys/fluent/core/session.py +7 -2
  26. ansys/fluent/core/session_solver.py +21 -0
  27. ansys/fluent/core/streaming_services/datamodel_event_streaming.py +12 -12
  28. {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/LICENSE +1 -1
  29. {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/METADATA +53 -31
  30. {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/RECORD +65 -141
  31. {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/WHEEL +1 -1
  32. ansys/fluent/core/docs/README.rst +0 -155
  33. ansys/fluent/tests/conftest.py +0 -415
  34. ansys/fluent/tests/fluent_fixtures.py +0 -195
  35. ansys/fluent/tests/integration/test_optislang/test_optislang_integration.py +0 -263
  36. ansys/fluent/tests/parametric/test_local_parametric_run.py +0 -36
  37. ansys/fluent/tests/parametric/test_local_parametric_setup.py +0 -34
  38. ansys/fluent/tests/parametric/test_parametric_workflow.py +0 -279
  39. ansys/fluent/tests/test_aero_session.py +0 -88
  40. ansys/fluent/tests/test_batch_ops.py +0 -39
  41. ansys/fluent/tests/test_builtin_settings.py +0 -761
  42. ansys/fluent/tests/test_cad_to_post_ftm.py +0 -525
  43. ansys/fluent/tests/test_cad_to_post_wtm.py +0 -250
  44. ansys/fluent/tests/test_casereader.py +0 -324
  45. ansys/fluent/tests/test_codegen.py +0 -783
  46. ansys/fluent/tests/test_creatable.py +0 -31
  47. ansys/fluent/tests/test_data_model_cache.py +0 -434
  48. ansys/fluent/tests/test_datamodel_api.py +0 -449
  49. ansys/fluent/tests/test_datamodel_service.py +0 -814
  50. ansys/fluent/tests/test_datareader.py +0 -103
  51. ansys/fluent/tests/test_error_handling.py +0 -24
  52. ansys/fluent/tests/test_events_manager.py +0 -214
  53. ansys/fluent/tests/test_field_data.py +0 -466
  54. ansys/fluent/tests/test_file_session.py +0 -355
  55. ansys/fluent/tests/test_file_transfer_service.py +0 -165
  56. ansys/fluent/tests/test_fix_doc.py +0 -29
  57. ansys/fluent/tests/test_flobject.py +0 -1235
  58. ansys/fluent/tests/test_fluent_fixes.py +0 -106
  59. ansys/fluent/tests/test_fluent_session.py +0 -270
  60. ansys/fluent/tests/test_fluent_version.py +0 -66
  61. ansys/fluent/tests/test_fluent_version_marker.py +0 -65
  62. ansys/fluent/tests/test_icing_session.py +0 -9
  63. ansys/fluent/tests/test_launcher.py +0 -529
  64. ansys/fluent/tests/test_launcher_remote.py +0 -272
  65. ansys/fluent/tests/test_lispy.py +0 -40
  66. ansys/fluent/tests/test_logging.py +0 -16
  67. ansys/fluent/tests/test_mapped_api.py +0 -774
  68. ansys/fluent/tests/test_meshing_utilities.py +0 -2436
  69. ansys/fluent/tests/test_meshing_workflow.py +0 -421
  70. ansys/fluent/tests/test_meshingmode/test_meshing_launch.py +0 -168
  71. ansys/fluent/tests/test_new_meshing_workflow.py +0 -1801
  72. ansys/fluent/tests/test_preferences.py +0 -89
  73. ansys/fluent/tests/test_pure_mesh_vs_mesh_workflow.py +0 -101
  74. ansys/fluent/tests/test_reduction.py +0 -484
  75. ansys/fluent/tests/test_rp_vars.py +0 -77
  76. ansys/fluent/tests/test_scheduler.py +0 -471
  77. ansys/fluent/tests/test_scheme_eval_222.py +0 -338
  78. ansys/fluent/tests/test_scheme_eval_231.py +0 -243
  79. ansys/fluent/tests/test_search.py +0 -344
  80. ansys/fluent/tests/test_session.py +0 -594
  81. ansys/fluent/tests/test_settings_api.py +0 -606
  82. ansys/fluent/tests/test_settings_reader.py +0 -85
  83. ansys/fluent/tests/test_slurm_future.py +0 -67
  84. ansys/fluent/tests/test_solution_variables.py +0 -241
  85. ansys/fluent/tests/test_solver_monitors.py +0 -83
  86. ansys/fluent/tests/test_solvermode/boundaries_periodic_expDict +0 -1712
  87. ansys/fluent/tests/test_solvermode/test_boundaries.py +0 -127
  88. ansys/fluent/tests/test_solvermode/test_calculationactivities.py +0 -20
  89. ansys/fluent/tests/test_solvermode/test_controls.py +0 -131
  90. ansys/fluent/tests/test_solvermode/test_general.py +0 -109
  91. ansys/fluent/tests/test_solvermode/test_initialization.py +0 -83
  92. ansys/fluent/tests/test_solvermode/test_materials.py +0 -40
  93. ansys/fluent/tests/test_solvermode/test_methods.py +0 -65
  94. ansys/fluent/tests/test_solvermode/test_models.py +0 -99
  95. ansys/fluent/tests/test_solvermode/test_named_expressions.py +0 -35
  96. ansys/fluent/tests/test_solvermode/test_post_vector.py +0 -22
  97. ansys/fluent/tests/test_solvermode/test_species_model.py +0 -67
  98. ansys/fluent/tests/test_streaming_services.py +0 -52
  99. ansys/fluent/tests/test_systemcoupling.py +0 -44
  100. ansys/fluent/tests/test_topy.py +0 -179
  101. ansys/fluent/tests/test_tui_api.py +0 -70
  102. ansys/fluent/tests/test_type_stub.py +0 -37
  103. ansys/fluent/tests/test_utils.py +0 -82
  104. ansys/fluent/tests/util/__init__.py +0 -36
  105. ansys/fluent/tests/util/meshing_workflow.py +0 -33
  106. ansys/fluent/tests/util/solver.py +0 -72
  107. ansys_fluent_core-0.29.dev0.dist-info/AUTHORS +0 -12
@@ -1,31 +0,0 @@
1
- import pytest
2
-
3
- from ansys.fluent.core.utils.fluent_version import FluentVersion
4
-
5
-
6
- @pytest.mark.fluent_version("latest")
7
- def test_creatable(mixing_elbow_case_data_session) -> None:
8
- solver = mixing_elbow_case_data_session
9
- fluent_version = solver.get_fluent_version()
10
- has_not = (
11
- solver.setup.boundary_conditions.velocity_inlet,
12
- solver.setup.cell_zone_conditions.fluid,
13
- )
14
- has = (
15
- solver.results.graphics.contour,
16
- solver.results.graphics.vector,
17
- )
18
-
19
- for obj in has_not:
20
- # creatability condition is dynamic since 25.1
21
- if fluent_version >= FluentVersion.v251:
22
- assert not getattr(obj, "create").is_active()
23
- else:
24
- assert not hasattr(obj, "create")
25
- assert "create" not in dir(obj)
26
-
27
- for obj in has:
28
- assert hasattr(obj, "create")
29
- assert "create" in dir(obj)
30
- if fluent_version >= FluentVersion.v251:
31
- assert getattr(obj, "create").is_active()
@@ -1,434 +0,0 @@
1
- import pytest
2
-
3
- from ansys.api.fluent.v0.variant_pb2 import Variant
4
- import ansys.fluent.core as pyfluent
5
- from ansys.fluent.core.data_model_cache import DataModelCache, NameKey
6
- from ansys.fluent.core.services.datamodel_se import _convert_value_to_variant
7
-
8
-
9
- class Fake:
10
- def __init__(self, path):
11
- if isinstance(path, str):
12
- self.path = [
13
- comp.split(":") if ":" in comp else [comp, ""]
14
- for comp in path.split("/")
15
- ]
16
- else:
17
- self.path = path
18
-
19
-
20
- def test_data_model_cache():
21
- cache = DataModelCache()
22
- cache.set_state("x", Fake([("A", ""), ("x", "")]), 42.0)
23
- assert 42.0 == cache.get_state("x", Fake([("A", ""), ("x", "")]))
24
- assert dict(x=42.0) == cache.get_state("x", Fake([("A", "")]))
25
- assert DataModelCache.Empty == cache.get_state("x", Fake([("B", "")]))
26
- assert DataModelCache.Empty == cache.get_state("y", Fake([]))
27
-
28
-
29
- @pytest.mark.parametrize(
30
- "initial_cache,rules,state,deleted_paths,final_cache",
31
- [
32
- (
33
- {"r1": {"A": {"B": "ab", "C": {}, "D:D-1": {"__iname__": "D1"}}}},
34
- "r1",
35
- None,
36
- ["X/D:D1", "A/D:Y1", "A/D:D1"],
37
- {"r1": {"A": {"B": "ab", "C": {}}}},
38
- ),
39
- ({"r1": {}}, "r1", {"A": True}, [], {"r1": {"A": True}}),
40
- ({"r1": {}}, "r1", {"A": 5}, [], {"r1": {"A": 5}}),
41
- ({"r1": {}}, "r1", {"A": 3.0}, [], {"r1": {"A": 3.0}}),
42
- ({"r1": {}}, "r1", {"A": "ab"}, [], {"r1": {"A": "ab"}}),
43
- ({"r1": {}}, "r1", {"A": [False, True]}, [], {"r1": {"A": [False, True]}}),
44
- ({"r1": {}}, "r1", {"A": [5, 10]}, [], {"r1": {"A": [5, 10]}}),
45
- ({"r1": {}}, "r1", {"A": [3.0, 6.0]}, [], {"r1": {"A": [3.0, 6.0]}}),
46
- ({"r1": {}}, "r1", {"A": ["ab", "cd"]}, [], {"r1": {"A": ["ab", "cd"]}}),
47
- ({"r1": {"A": {}}}, "r1", {"A": {"B": 5}}, [], {"r1": {"A": {"B": 5}}}),
48
- ({"r1": {"A": 5}}, "r1", {"A": {}}, [], {"r1": {"A": {}}}),
49
- ({"r1": {"A": 5}}, "r1", {"A": None}, [], {"r1": {"A": None}}),
50
- (
51
- {"r1": {"A": {}}},
52
- "r1",
53
- {"A": {"B": {"C": 5}}},
54
- [],
55
- {"r1": {"A": {"B": {"C": 5}}}},
56
- ),
57
- (
58
- {"r1": {"A": {}}},
59
- "r1",
60
- {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
61
- [],
62
- {"r1": {"A": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}}},
63
- ),
64
- (
65
- {"r1": {"A": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}}},
66
- "r1",
67
- {"A": {"B:B1": {"C": 7.0}}},
68
- [],
69
- {"r1": {"A": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 7.0}}}},
70
- ),
71
- (
72
- {"r1": {}},
73
- "r1",
74
- {"B:B1": {"_name_": "B-1", "C": 5.0}},
75
- [],
76
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}},
77
- ),
78
- (
79
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}},
80
- "r1",
81
- {"B:B1": {"C": 7.0}},
82
- [],
83
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 7.0}}},
84
- ),
85
- (
86
- {"r1": {}},
87
- "r1",
88
- {"A:A1": {"_name_": "A-1", "B:B1": {"_name_": "B-1", "D": 7.0}, "C": 5.0}},
89
- [],
90
- {
91
- "r1": {
92
- "A:A-1": {
93
- "__iname__": "A1",
94
- "_name_": "A-1",
95
- "B:B-1": {"__iname__": "B1", "_name_": "B-1", "D": 7.0},
96
- "C": 5.0,
97
- }
98
- }
99
- },
100
- ),
101
- (
102
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}},
103
- "r1",
104
- {"B:B1": {"_name_": "B-2", "C": 5.0}},
105
- ["B:B1"],
106
- {"r1": {"B:B-2": {"__iname__": "B1", "_name_": "B-2", "C": 5.0}}},
107
- ),
108
- ],
109
- )
110
- def test_update_cache_display_names_as_keys(
111
- initial_cache, rules, state, deleted_paths, final_cache
112
- ):
113
- cache = DataModelCache()
114
- cache_rules = cache.rules_str_to_cache
115
- cache_rules.clear()
116
- cache_rules.update(initial_cache)
117
- var = Variant()
118
- _convert_value_to_variant(state, var)
119
- cache.update_cache(rules, var, deleted_paths)
120
- assert cache_rules == final_cache
121
-
122
-
123
- @pytest.mark.parametrize(
124
- "initial_cache,rules,state,deleted_paths,final_cache",
125
- [
126
- (
127
- {"r1": {"A": {"B": "ab", "C": {}, "D:D1": {}}}},
128
- "r1",
129
- None,
130
- ["X/D:D1", "A/D:Y1", "A/D:D1"],
131
- {"r1": {"A": {"B": "ab", "C": {}}}},
132
- ),
133
- ({"r1": {}}, "r1", {"A": True}, [], {"r1": {"A": True}}),
134
- ({"r1": {}}, "r1", {"A": 5}, [], {"r1": {"A": 5}}),
135
- ({"r1": {}}, "r1", {"A": 3.0}, [], {"r1": {"A": 3.0}}),
136
- ({"r1": {}}, "r1", {"A": "ab"}, [], {"r1": {"A": "ab"}}),
137
- ({"r1": {}}, "r1", {"A": [False, True]}, [], {"r1": {"A": [False, True]}}),
138
- ({"r1": {}}, "r1", {"A": [5, 10]}, [], {"r1": {"A": [5, 10]}}),
139
- ({"r1": {}}, "r1", {"A": [3.0, 6.0]}, [], {"r1": {"A": [3.0, 6.0]}}),
140
- ({"r1": {}}, "r1", {"A": ["ab", "cd"]}, [], {"r1": {"A": ["ab", "cd"]}}),
141
- ({"r1": {"A": {}}}, "r1", {"A": {"B": 5}}, [], {"r1": {"A": {"B": 5}}}),
142
- (
143
- {"r1": {"A": {}}},
144
- "r1",
145
- {"A": {"B": {"C": 5}}},
146
- [],
147
- {"r1": {"A": {"B": {"C": 5}}}},
148
- ),
149
- (
150
- {"r1": {"A": {}}},
151
- "r1",
152
- {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
153
- [],
154
- {"r1": {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}}},
155
- ),
156
- (
157
- {"r1": {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}}},
158
- "r1",
159
- {"A": {"B:B1": {"C": 7.0}}},
160
- [],
161
- {"r1": {"A": {"B:B1": {"_name_": "B-1", "C": 7.0}}}},
162
- ),
163
- (
164
- {"r1": {}},
165
- "r1",
166
- {"B:B1": {"_name_": "B-1", "C": 5.0}},
167
- [],
168
- {"r1": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
169
- ),
170
- (
171
- {"r1": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
172
- "r1",
173
- {"B:B1": {"C": 7.0}},
174
- [],
175
- {"r1": {"B:B1": {"_name_": "B-1", "C": 7.0}}},
176
- ),
177
- (
178
- {"r1": {}},
179
- "r1",
180
- {"A:A1": {"_name_": "A-1", "B:B1": {"_name_": "B-1", "D": 7.0}, "C": 5.0}},
181
- [],
182
- {
183
- "r1": {
184
- "A:A1": {
185
- "_name_": "A-1",
186
- "B:B1": {"_name_": "B-1", "D": 7.0},
187
- "C": 5.0,
188
- }
189
- }
190
- },
191
- ),
192
- (
193
- {"r1": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
194
- "r1",
195
- {"B:B1": {"_name_": "B-2", "C": 5.0}},
196
- ["B:B1"],
197
- {"r1": {"B:B1": {"_name_": "B-2", "C": 5.0}}},
198
- ),
199
- ],
200
- )
201
- def test_update_cache_internal_names_as_keys(
202
- initial_cache, rules, state, deleted_paths, final_cache
203
- ):
204
- cache = DataModelCache()
205
- cache.set_config("r1", "name_key", NameKey.INTERNAL)
206
- cache_rules = cache.rules_str_to_cache
207
- cache_rules.clear()
208
- cache_rules.update(initial_cache)
209
- var = Variant()
210
- _convert_value_to_variant(state, var)
211
- cache.update_cache(rules, var, deleted_paths)
212
- assert cache_rules == final_cache
213
-
214
-
215
- @pytest.mark.fluent_version(">=23.2")
216
- @pytest.mark.codegen_required
217
- def test_get_cached_values_in_command_arguments(new_meshing_session):
218
- wt = new_meshing_session.watertight()
219
- geo_import = new_meshing_session.workflow.TaskObject["Import Geometry"]
220
- geo_import.Arguments = dict(FileName="Bob")
221
- geo_import.Arguments = dict(FileName=None)
222
- assert "FileName" in wt.import_geometry.command_arguments()
223
- assert wt.import_geometry.command_arguments()["FileName"] is None
224
-
225
-
226
- @pytest.fixture
227
- def display_names_as_keys_in_cache():
228
- DataModelCache.use_display_name = True
229
- yield
230
- DataModelCache.use_display_name = False
231
-
232
-
233
- def test_display_names_as_keys(
234
- display_names_as_keys_in_cache, watertight_workflow_session
235
- ):
236
- cache = watertight_workflow_session._datamodel_service_se.cache
237
- assert "TaskObject:Import Geometry" in cache.rules_str_to_cache["workflow"]
238
- assert "TaskObject:TaskObject1" not in cache.rules_str_to_cache["workflow"]
239
-
240
-
241
- def test_internal_names_as_keys(watertight_workflow_session):
242
- cache = watertight_workflow_session._datamodel_service_se.cache
243
- assert "TaskObject:Import Geometry" not in cache.rules_str_to_cache["workflow"]
244
- assert "TaskObject:TaskObject1" in cache.rules_str_to_cache["workflow"]
245
-
246
-
247
- @pytest.mark.parametrize(
248
- "rules_cache,name_key_in_config,path,name_key,state",
249
- [
250
- ({"A": {"B": {"C": 2}}}, NameKey.INTERNAL, "A/B", NameKey.INTERNAL, {"C": 2}),
251
- (
252
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
253
- NameKey.INTERNAL,
254
- "A/B:B-1",
255
- NameKey.DISPLAY,
256
- {"C:C-1": {"_name_": "C-1"}, "_name_": "B-1"},
257
- ),
258
- (
259
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
260
- NameKey.INTERNAL,
261
- "A/B:B1",
262
- NameKey.DISPLAY,
263
- {"C:C-1": {"_name_": "C-1"}, "_name_": "B-1"},
264
- ),
265
- (
266
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
267
- NameKey.DISPLAY,
268
- "A/B:B1",
269
- NameKey.INTERNAL,
270
- {"C:C1": {"__iname__": "C1"}, "__iname__": "B1"},
271
- ),
272
- (
273
- {"A": {"B:B1": {"C": 2, "_name_": "B-1"}}},
274
- NameKey.INTERNAL,
275
- "A/B:B-2",
276
- NameKey.DISPLAY,
277
- DataModelCache.Empty,
278
- ),
279
- ],
280
- )
281
- def test_cache_get_state(rules_cache, name_key_in_config, path, name_key, state):
282
- cache = DataModelCache()
283
- rules = "x"
284
- cache.set_config(rules, "name_key", name_key_in_config)
285
- cache_rules = cache.rules_str_to_cache
286
- cache_rules.clear()
287
- cache_rules[rules] = rules_cache
288
- assert state == cache.get_state(rules, Fake(path), name_key)
289
-
290
-
291
- @pytest.mark.parametrize(
292
- "initial_cache,name_key_in_config,path,value,final_cache",
293
- [
294
- ({"A": 2}, NameKey.INTERNAL, "A/B", 2, {"A": {"B": 2}}),
295
- (
296
- {"A": 2},
297
- NameKey.INTERNAL,
298
- "A/B",
299
- {"C": {"D": 2}},
300
- {"A": {"B": {"C": {"D": 2}}}},
301
- ),
302
- (
303
- {"A": {"B": 2}},
304
- NameKey.INTERNAL,
305
- "A/B",
306
- {"C": {"D": 2}},
307
- {"A": {"B": {"C": {"D": 2}}}},
308
- ),
309
- (
310
- {"A": {"B": {"C": 2}}},
311
- NameKey.INTERNAL,
312
- "A/B",
313
- {"C": {"D": 2}},
314
- {"A": {"B": {"C": {"D": 2}}}},
315
- ),
316
- (
317
- {"A": {"B": {"C": {"D": 1}}}},
318
- NameKey.INTERNAL,
319
- "A/B",
320
- {"C": {"D": 2}},
321
- {"A": {"B": {"C": {"D": 2}}}},
322
- ),
323
- (
324
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
325
- NameKey.INTERNAL,
326
- "A/B:B-1",
327
- {"C:C-1": {"D": 2}},
328
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1", "D": 2}, "_name_": "B-1"}}},
329
- ),
330
- (
331
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
332
- NameKey.INTERNAL,
333
- "A/B:B-1",
334
- {"C:C-1": {"D:D-1": {"__iname__": "D1"}}},
335
- {
336
- "A": {
337
- "B:B1": {
338
- "C:C1": {
339
- "_name_": "C-1",
340
- "D:D1": {"__iname__": "D1", "_name_": "D-1"},
341
- },
342
- "_name_": "B-1",
343
- }
344
- }
345
- },
346
- ),
347
- (
348
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
349
- NameKey.INTERNAL,
350
- "A/B:B1",
351
- {"C:C1": {"D:D1": {"_name_": "D-1"}}},
352
- {
353
- "A": {
354
- "B:B1": {
355
- "C:C1": {
356
- "_name_": "C-1",
357
- "D:D1": {"_name_": "D-1", "__iname__": "D1"},
358
- },
359
- "_name_": "B-1",
360
- }
361
- }
362
- },
363
- ),
364
- (
365
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
366
- NameKey.DISPLAY,
367
- "A/B:B1",
368
- {"C:C1": {"D": 2}},
369
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1", "D": 2}, "__iname__": "B1"}}},
370
- ),
371
- (
372
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
373
- NameKey.DISPLAY,
374
- "A/B:B1",
375
- {"C:C1": {"D:D1": {"_name_": "D-1"}}},
376
- {
377
- "A": {
378
- "B:B-1": {
379
- "C:C-1": {
380
- "__iname__": "C1",
381
- "D:D-1": {"_name_": "D-1", "__iname__": "D1"},
382
- },
383
- "__iname__": "B1",
384
- }
385
- }
386
- },
387
- ),
388
- (
389
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
390
- NameKey.DISPLAY,
391
- "A/B:B-1",
392
- {"C:C-1": {"D:D-1": {"__iname__": "D1"}}},
393
- {
394
- "A": {
395
- "B:B-1": {
396
- "C:C-1": {
397
- "__iname__": "C1",
398
- "D:D-1": {"__iname__": "D1", "_name_": "D-1"},
399
- },
400
- "__iname__": "B1",
401
- }
402
- }
403
- },
404
- ),
405
- ],
406
- )
407
- def test_cache_set_state(
408
- initial_cache,
409
- name_key_in_config,
410
- path,
411
- value,
412
- final_cache,
413
- ):
414
- cache = DataModelCache()
415
- rules = "x"
416
- cache.set_config(rules, "name_key", name_key_in_config)
417
- cache_rules = cache.rules_str_to_cache
418
- cache_rules.clear()
419
- cache_rules[rules] = initial_cache
420
- cache.set_state(rules, Fake(path), value)
421
- assert final_cache == cache_rules[rules]
422
-
423
-
424
- @pytest.mark.fluent_version(">=23.2")
425
- def test_cache_per_session():
426
- with (
427
- pyfluent.launch_fluent(mode="meshing") as m1,
428
- pyfluent.launch_fluent(mode="meshing") as m2,
429
- ):
430
- assert m1.meshing.GlobalSettings.EnableComplexMeshing()
431
- assert m2.meshing.GlobalSettings.EnableComplexMeshing()
432
- _ = m1.watertight()
433
- assert not m1.meshing.GlobalSettings.EnableComplexMeshing()
434
- assert m2.meshing.GlobalSettings.EnableComplexMeshing()