ansys-fluent-core 0.28.2__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 (103) 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/fluent_version_252.py +3 -3
  8. ansys/fluent/core/generated/solver/settings_252.py +251 -160
  9. ansys/fluent/core/generated/solver/settings_252.pyi +146 -54
  10. ansys/fluent/core/generated/solver/tui_252.py +48 -24
  11. ansys/fluent/core/launcher/container_launcher.py +4 -3
  12. ansys/fluent/core/launcher/fluent_container.py +22 -19
  13. ansys/fluent/core/launcher/launcher.py +2 -2
  14. ansys/fluent/core/launcher/pim_launcher.py +2 -2
  15. ansys/fluent/core/launcher/slurm_launcher.py +2 -2
  16. ansys/fluent/core/launcher/standalone_launcher.py +2 -2
  17. ansys/fluent/core/logging.py +2 -0
  18. ansys/fluent/core/logging_config.yaml +3 -0
  19. ansys/fluent/core/services/datamodel_se.py +4 -1
  20. ansys/fluent/core/services/field_data.py +252 -0
  21. ansys/fluent/core/services/interceptors.py +28 -2
  22. ansys/fluent/core/session.py +7 -2
  23. ansys/fluent/core/session_solver.py +21 -0
  24. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/LICENSE +1 -1
  25. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/METADATA +53 -32
  26. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/RECORD +61 -137
  27. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.dev1.dist-info}/WHEEL +1 -1
  28. ansys/fluent/core/docs/README.rst +0 -155
  29. ansys/fluent/tests/conftest.py +0 -415
  30. ansys/fluent/tests/fluent_fixtures.py +0 -195
  31. ansys/fluent/tests/integration/test_optislang/test_optislang_integration.py +0 -263
  32. ansys/fluent/tests/parametric/test_local_parametric_run.py +0 -36
  33. ansys/fluent/tests/parametric/test_local_parametric_setup.py +0 -34
  34. ansys/fluent/tests/parametric/test_parametric_workflow.py +0 -279
  35. ansys/fluent/tests/test_aero_session.py +0 -88
  36. ansys/fluent/tests/test_batch_ops.py +0 -39
  37. ansys/fluent/tests/test_builtin_settings.py +0 -761
  38. ansys/fluent/tests/test_cad_to_post_ftm.py +0 -525
  39. ansys/fluent/tests/test_cad_to_post_wtm.py +0 -250
  40. ansys/fluent/tests/test_casereader.py +0 -324
  41. ansys/fluent/tests/test_codegen.py +0 -783
  42. ansys/fluent/tests/test_creatable.py +0 -31
  43. ansys/fluent/tests/test_data_model_cache.py +0 -434
  44. ansys/fluent/tests/test_datamodel_api.py +0 -429
  45. ansys/fluent/tests/test_datamodel_service.py +0 -814
  46. ansys/fluent/tests/test_datareader.py +0 -103
  47. ansys/fluent/tests/test_error_handling.py +0 -24
  48. ansys/fluent/tests/test_events_manager.py +0 -214
  49. ansys/fluent/tests/test_field_data.py +0 -466
  50. ansys/fluent/tests/test_file_session.py +0 -355
  51. ansys/fluent/tests/test_file_transfer_service.py +0 -165
  52. ansys/fluent/tests/test_fix_doc.py +0 -29
  53. ansys/fluent/tests/test_flobject.py +0 -1235
  54. ansys/fluent/tests/test_fluent_fixes.py +0 -106
  55. ansys/fluent/tests/test_fluent_session.py +0 -270
  56. ansys/fluent/tests/test_fluent_version.py +0 -66
  57. ansys/fluent/tests/test_fluent_version_marker.py +0 -65
  58. ansys/fluent/tests/test_icing_session.py +0 -9
  59. ansys/fluent/tests/test_launcher.py +0 -529
  60. ansys/fluent/tests/test_launcher_remote.py +0 -272
  61. ansys/fluent/tests/test_lispy.py +0 -40
  62. ansys/fluent/tests/test_logging.py +0 -16
  63. ansys/fluent/tests/test_mapped_api.py +0 -766
  64. ansys/fluent/tests/test_meshing_utilities.py +0 -2436
  65. ansys/fluent/tests/test_meshing_workflow.py +0 -421
  66. ansys/fluent/tests/test_meshingmode/test_meshing_launch.py +0 -168
  67. ansys/fluent/tests/test_new_meshing_workflow.py +0 -1801
  68. ansys/fluent/tests/test_preferences.py +0 -89
  69. ansys/fluent/tests/test_pure_mesh_vs_mesh_workflow.py +0 -101
  70. ansys/fluent/tests/test_reduction.py +0 -484
  71. ansys/fluent/tests/test_rp_vars.py +0 -77
  72. ansys/fluent/tests/test_scheduler.py +0 -471
  73. ansys/fluent/tests/test_scheme_eval_222.py +0 -338
  74. ansys/fluent/tests/test_scheme_eval_231.py +0 -243
  75. ansys/fluent/tests/test_search.py +0 -344
  76. ansys/fluent/tests/test_session.py +0 -594
  77. ansys/fluent/tests/test_settings_api.py +0 -606
  78. ansys/fluent/tests/test_settings_reader.py +0 -85
  79. ansys/fluent/tests/test_slurm_future.py +0 -67
  80. ansys/fluent/tests/test_solution_variables.py +0 -241
  81. ansys/fluent/tests/test_solver_monitors.py +0 -83
  82. ansys/fluent/tests/test_solvermode/boundaries_periodic_expDict +0 -1712
  83. ansys/fluent/tests/test_solvermode/test_boundaries.py +0 -127
  84. ansys/fluent/tests/test_solvermode/test_calculationactivities.py +0 -20
  85. ansys/fluent/tests/test_solvermode/test_controls.py +0 -131
  86. ansys/fluent/tests/test_solvermode/test_general.py +0 -109
  87. ansys/fluent/tests/test_solvermode/test_initialization.py +0 -83
  88. ansys/fluent/tests/test_solvermode/test_materials.py +0 -40
  89. ansys/fluent/tests/test_solvermode/test_methods.py +0 -65
  90. ansys/fluent/tests/test_solvermode/test_models.py +0 -99
  91. ansys/fluent/tests/test_solvermode/test_named_expressions.py +0 -35
  92. ansys/fluent/tests/test_solvermode/test_post_vector.py +0 -22
  93. ansys/fluent/tests/test_solvermode/test_species_model.py +0 -67
  94. ansys/fluent/tests/test_streaming_services.py +0 -52
  95. ansys/fluent/tests/test_systemcoupling.py +0 -44
  96. ansys/fluent/tests/test_topy.py +0 -179
  97. ansys/fluent/tests/test_tui_api.py +0 -70
  98. ansys/fluent/tests/test_type_stub.py +0 -37
  99. ansys/fluent/tests/test_utils.py +0 -82
  100. ansys/fluent/tests/util/__init__.py +0 -36
  101. ansys/fluent/tests/util/meshing_workflow.py +0 -33
  102. ansys/fluent/tests/util/solver.py +0 -72
  103. ansys_fluent_core-0.28.2.dist-info/AUTHORS +0 -12
@@ -1,103 +0,0 @@
1
- from ansys.fluent.core import examples
2
- from ansys.fluent.core.filereader.case_file import CaseFile
3
- from ansys.fluent.core.filereader.data_file import DataFile
4
-
5
-
6
- def test_data_reader_for_single_phase():
7
- case_file_name = examples.download_file(
8
- "elbow1.cas.h5", "pyfluent/file_session", return_without_path=False
9
- )
10
-
11
- data_file_name = examples.download_file(
12
- "elbow1.dat.h5", "pyfluent/file_session", return_without_path=False
13
- )
14
-
15
- reader = DataFile(
16
- data_file_name=data_file_name,
17
- case_file_handle=CaseFile(case_file_name=case_file_name),
18
- )
19
-
20
- assert reader.case_file == "elbow1.cas.h5"
21
-
22
- assert len(reader.variables()) == 80
23
-
24
- assert reader.get_phases() == ["phase-1"]
25
-
26
- assert len(reader.get_face_variables("phase-1")) == 30
27
-
28
- assert len(reader.get_cell_variables("phase-1")) == 14
29
-
30
- assert reader.get_cell_variables("phase-1") == [
31
- "SV_BF_V",
32
- "SV_D",
33
- "SV_DENSITY",
34
- "SV_H",
35
- "SV_K",
36
- "SV_LORENTZ_FORCE",
37
- "SV_MU_LAM",
38
- "SV_MU_T",
39
- "SV_P",
40
- "SV_T",
41
- "SV_U",
42
- "SV_V",
43
- "SV_W",
44
- "",
45
- ]
46
-
47
- assert len(reader.get_face_scalar_field_data("phase-1", "SV_DENSITY", 3)) == 3630
48
-
49
- assert len(reader.get_face_vector_field_data("phase-1", 3)) == 10890
50
-
51
-
52
- def test_data_reader_for_multi_phase():
53
- case_file_name = examples.download_file(
54
- "mixing_elbow_mul_ph.cas.h5",
55
- "pyfluent/file_session",
56
- return_without_path=False,
57
- )
58
- data_file_name = examples.download_file(
59
- "mixing_elbow_mul_ph.dat.h5",
60
- "pyfluent/file_session",
61
- return_without_path=False,
62
- )
63
-
64
- reader = DataFile(
65
- data_file_name=data_file_name,
66
- case_file_handle=CaseFile(case_file_name=case_file_name),
67
- ) # Instantiate a DataFile class
68
-
69
- assert reader.case_file == "mixing_elbow_mul_ph.cas.h5"
70
-
71
- assert len(reader.variables()) == 80
72
-
73
- assert reader.get_phases() == [
74
- "phase-1",
75
- "phase-2",
76
- "phase-3",
77
- "phase-4",
78
- ]
79
-
80
- assert len(reader.get_face_variables("phase-1")) == 23
81
-
82
- assert len(reader.get_face_variables("phase-3")) == 13
83
-
84
- assert len(reader.get_cell_variables("phase-2")) == 14
85
-
86
- assert reader.get_cell_variables("phase-2") == [
87
- "SV_BF_V",
88
- "SV_DENSITY",
89
- "SV_DENSITY_M1",
90
- "SV_MU_LAM",
91
- "SV_MU_T",
92
- "SV_U",
93
- "SV_U_M1",
94
- "SV_V",
95
- "SV_VOF",
96
- "SV_VOF_M1",
97
- "SV_V_M1",
98
- "SV_W",
99
- "SV_W_M1",
100
- "",
101
- ]
102
-
103
- assert len(reader.get_face_scalar_field_data("phase-1", "SV_DENSITY", 33)) == 268
@@ -1,24 +0,0 @@
1
- import time
2
-
3
- import pytest
4
-
5
-
6
- @pytest.mark.fluent_version(">=23.1")
7
- @pytest.mark.parametrize(
8
- "error_code,raises",
9
- [
10
- (0, pytest.wont_raise()),
11
- (1, pytest.raises(RuntimeError)),
12
- ],
13
- )
14
- def test_fluent_fatal_error(error_code, raises, new_solver_session):
15
- scheme_eval = new_solver_session.scheme_eval.scheme_eval
16
- with raises:
17
- scheme_eval(
18
- "(events/transmit 'error-event "
19
- f'(cons (format #f "fatal error: ~a~%" "testing") {error_code}))'
20
- )
21
- for _ in range(10):
22
- # as these are mostly instant, exception should usually be raised on the second gRPC call
23
- scheme_eval("(pp 'fatal_error_testing)")
24
- time.sleep(0.1)
@@ -1,214 +0,0 @@
1
- from pathlib import Path
2
-
3
- import pytest
4
-
5
- import ansys.fluent.core as pyfluent
6
- from ansys.fluent.core import FluentVersion, MeshingEvent, SolverEvent, examples
7
- from ansys.fluent.core.warnings import PyFluentDeprecationWarning
8
-
9
-
10
- def test_receive_events_on_case_loaded(new_solver_session) -> None:
11
-
12
- def on_case_loaded_old(session_id, event_info):
13
- on_case_loaded_old.loaded = True
14
-
15
- on_case_loaded_old.loaded = False
16
-
17
- def on_case_loaded_old_with_args(x, y, session_id, event_info):
18
- on_case_loaded_old_with_args.state = dict(x=x, y=y)
19
-
20
- on_case_loaded_old_with_args.state = None
21
-
22
- def on_case_loaded(session, event_info):
23
- on_case_loaded.loaded = True
24
- if session.get_fluent_version() >= FluentVersion.v232:
25
- assert Path(event_info.case_file_name).name == Path(case_file_name).name
26
- with pytest.warns(PyFluentDeprecationWarning):
27
- assert Path(event_info.casefilepath).name == Path(case_file_name).name
28
-
29
- on_case_loaded.loaded = False
30
-
31
- def on_case_loaded_with_args_optional_first(x, y, session, event_info):
32
- on_case_loaded_with_args_optional_first.state = dict(x=x, y=y)
33
-
34
- on_case_loaded_with_args_optional_first.state = None
35
-
36
- def on_case_loaded_with_args(session, event_info, x, y):
37
- on_case_loaded_with_args.state = dict(x=x, y=y)
38
-
39
- on_case_loaded_with_args.state = None
40
-
41
- solver = new_solver_session
42
-
43
- solver.events.register_callback(SolverEvent.CASE_LOADED, on_case_loaded_old)
44
-
45
- solver.events.register_callback(
46
- SolverEvent.CASE_LOADED, on_case_loaded_old_with_args, 12, y=42
47
- )
48
-
49
- solver.events.register_callback(SolverEvent.CASE_LOADED, on_case_loaded)
50
-
51
- solver.events.register_callback(
52
- SolverEvent.CASE_LOADED, on_case_loaded_with_args_optional_first, 12, y=42
53
- )
54
-
55
- solver.events.register_callback(
56
- SolverEvent.CASE_LOADED, on_case_loaded_with_args, 12, y=42
57
- )
58
-
59
- case_file_name = examples.download_file(
60
- "mixing_elbow.cas.h5", "pyfluent/mixing_elbow"
61
- )
62
-
63
- assert not on_case_loaded_old.loaded
64
- assert not on_case_loaded.loaded
65
- assert not on_case_loaded_old_with_args.state
66
- assert not on_case_loaded_with_args_optional_first.state
67
- assert not on_case_loaded_with_args.state
68
-
69
- try:
70
- solver.settings.file.read_case(file_name=case_file_name)
71
- except AttributeError:
72
- solver.tui.file.read_case(case_file_name)
73
-
74
- assert on_case_loaded_old.loaded
75
- assert on_case_loaded.loaded
76
- assert on_case_loaded_old_with_args.state == dict(x=12, y=42)
77
- assert on_case_loaded_with_args_optional_first.state == dict(x=12, y=42)
78
- assert on_case_loaded_with_args.state == dict(x=12, y=42)
79
-
80
-
81
- def test_receive_meshing_events_on_case_loaded(new_meshing_session) -> None:
82
-
83
- case_file_name = examples.download_file(
84
- "mixing_elbow.cas.h5", "pyfluent/mixing_elbow"
85
- )
86
-
87
- def on_case_loaded(session, event_info):
88
- on_case_loaded.loaded = True
89
-
90
- on_case_loaded.loaded = False
91
-
92
- meshing = new_meshing_session
93
-
94
- meshing.events.register_callback(MeshingEvent.CASE_LOADED, on_case_loaded)
95
-
96
- assert not on_case_loaded.loaded
97
-
98
- meshing.tui.file.read_case(case_file_name)
99
-
100
- # this is not working in meshing mode
101
- # assert on_case_loaded.loaded
102
-
103
-
104
- @pytest.mark.fluent_version(">=23.1")
105
- def test_iteration_ended_sync_event(static_mixer_case_session):
106
- solver = static_mixer_case_session
107
- solver.settings.solution.initialization.hybrid_initialize()
108
- count = 0
109
-
110
- def cb(session, event_info):
111
- assert event_info.index == session.scheme_eval.scheme_eval(
112
- "(get-current-iteration)"
113
- )
114
- nonlocal count
115
- count += 1
116
-
117
- cb_id = solver.events.register_callback(pyfluent.SolverEvent.ITERATION_ENDED, cb)
118
- solver.settings.solution.run_calculation.iterate(iter_count=10)
119
- assert count == 10
120
- solver.events.unregister_callback(cb_id)
121
- solver.settings.solution.run_calculation.iterate(iter_count=5)
122
- assert count == 10
123
-
124
-
125
- @pytest.mark.fluent_version(">=23.1")
126
- def test_iteration_ended_sync_event_multiple_connections(static_mixer_case_session):
127
- solver1 = static_mixer_case_session
128
- solver2 = pyfluent.connect_to_fluent(
129
- ip=solver1.connection_properties.ip,
130
- port=solver1.connection_properties.port,
131
- password=solver1.connection_properties.password,
132
- )
133
- solver1.settings.solution.initialization.hybrid_initialize()
134
- solver1_count = 0
135
- solver2_count = 0
136
-
137
- def solver1_cb(session, event_info):
138
- assert session == solver1
139
- if event_info.index % 2 == 0:
140
- nonlocal solver1_count
141
- solver1_count += 1
142
-
143
- def solver2_cb(session, event_info):
144
- assert session == solver2
145
- if event_info.index % 2 == 1:
146
- nonlocal solver2_count
147
- solver2_count += 1
148
-
149
- solver1.events.register_callback(pyfluent.SolverEvent.ITERATION_ENDED, solver1_cb)
150
- solver2.events.register_callback(pyfluent.SolverEvent.ITERATION_ENDED, solver2_cb)
151
- solver2.settings.solution.run_calculation.iterate(iter_count=5)
152
- assert solver1_count == 2
153
- assert solver2_count == 3
154
-
155
-
156
- @pytest.mark.fluent_version(">=23.1")
157
- def test_timestep_ended_sync_event(static_mixer_case_session):
158
- solver = static_mixer_case_session
159
- solver.settings.setup.general.solver.time = "unsteady-2nd-order"
160
- solver.settings.solution.initialization.hybrid_initialize()
161
- count = 0
162
-
163
- def cb(session, event_info):
164
- assert event_info.index == solver.rp_vars("time-step")
165
- nonlocal count
166
- count += 1
167
-
168
- cb_id = solver.events.register_callback(pyfluent.SolverEvent.TIMESTEP_ENDED, cb)
169
- solver.settings.solution.run_calculation.dual_time_iterate(
170
- time_step_count=10, max_iter_per_step=2
171
- )
172
- assert count == 10
173
- solver.events.unregister_callback(cb_id)
174
- solver.settings.solution.run_calculation.dual_time_iterate(
175
- time_step_count=5, max_iter_per_step=2
176
- )
177
- assert count == 10
178
-
179
-
180
- @pytest.mark.fluent_version(">=23.1")
181
- def test_sync_event_exception_in_callback(static_mixer_case_session, caplog):
182
- solver = static_mixer_case_session
183
- solver.settings.solution.initialization.hybrid_initialize()
184
-
185
- def cb(session, event_info):
186
- raise RuntimeError
187
-
188
- cb_id = solver.events.register_callback(pyfluent.SolverEvent.ITERATION_ENDED, cb)
189
- with caplog.at_level("ERROR", logger="pyfluent.networking"):
190
- solver.settings.solution.run_calculation.iterate(iter_count=10)
191
- assert (
192
- len(
193
- [
194
- record
195
- for record in caplog.records
196
- if "Error in callback" in record.message
197
- ]
198
- )
199
- == 10
200
- )
201
- caplog.clear()
202
- solver.events.unregister_callback(cb_id)
203
- with caplog.at_level("ERROR", logger="pyfluent.networking"):
204
- solver.settings.solution.run_calculation.iterate(iter_count=5)
205
- assert (
206
- len(
207
- [
208
- record
209
- for record in caplog.records
210
- if "Error in callback" in record.message
211
- ]
212
- )
213
- == 0
214
- )