ansys-fluent-core 0.28.1__py3-none-any.whl → 0.29.0__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 (223) hide show
  1. ansys/fluent/core/__init__.py +26 -1
  2. ansys/fluent/core/_stand_alone_datamodel_client/_datamodel_client.py +22 -0
  3. ansys/fluent/core/_version.py +24 -2
  4. ansys/fluent/core/codegen/__init__.py +22 -0
  5. ansys/fluent/core/codegen/allapigen.py +38 -5
  6. ansys/fluent/core/codegen/builtin_settingsgen.py +22 -0
  7. ansys/fluent/core/codegen/data/__init__.py +21 -0
  8. ansys/fluent/core/codegen/data/fluent_gui_help_patch.py +22 -0
  9. ansys/fluent/core/codegen/data/meshing_utilities_examples.py +22 -0
  10. ansys/fluent/core/codegen/datamodelgen.py +40 -4
  11. ansys/fluent/core/codegen/print_fluent_version.py +22 -0
  12. ansys/fluent/core/codegen/settingsgen.py +67 -4
  13. ansys/fluent/core/codegen/tuigen.py +44 -6
  14. ansys/fluent/core/codegen/walk_api.py +67 -18
  15. ansys/fluent/core/codegen/write_settings_yaml.py +22 -0
  16. ansys/fluent/core/data_model_cache.py +22 -0
  17. ansys/fluent/core/examples/__init__.py +22 -0
  18. ansys/fluent/core/examples/downloads.py +22 -0
  19. ansys/fluent/core/exceptions.py +22 -0
  20. ansys/fluent/core/file_session.py +22 -0
  21. ansys/fluent/core/filereader/__init__.py +21 -0
  22. ansys/fluent/core/filereader/case_file.py +22 -0
  23. ansys/fluent/core/filereader/casereader.py +22 -0
  24. ansys/fluent/core/filereader/data_file.py +22 -0
  25. ansys/fluent/core/filereader/lispy.py +22 -0
  26. ansys/fluent/core/fluent_connection.py +23 -1
  27. ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
  28. ansys/fluent/core/generated/datamodel_252/meshing.py +32 -0
  29. ansys/fluent/core/generated/datamodel_252/preferences.py +7 -0
  30. ansys/fluent/core/generated/fluent_version_252.py +3 -3
  31. ansys/fluent/core/generated/meshing/tui_252.py +395 -390
  32. ansys/fluent/core/generated/solver/settings_222.py +0 -72
  33. ansys/fluent/core/generated/solver/settings_222.pyi +0 -307
  34. ansys/fluent/core/generated/solver/settings_231.py +0 -574
  35. ansys/fluent/core/generated/solver/settings_231.pyi +0 -561
  36. ansys/fluent/core/generated/solver/settings_232.py +0 -527
  37. ansys/fluent/core/generated/solver/settings_232.pyi +0 -2803
  38. ansys/fluent/core/generated/solver/settings_241.py +0 -478
  39. ansys/fluent/core/generated/solver/settings_241.pyi +0 -522
  40. ansys/fluent/core/generated/solver/settings_242.py +0 -361
  41. ansys/fluent/core/generated/solver/settings_242.pyi +0 -591
  42. ansys/fluent/core/generated/solver/settings_251.py +0 -399
  43. ansys/fluent/core/generated/solver/settings_251.pyi +0 -629
  44. ansys/fluent/core/generated/solver/settings_252.py +8118 -4206
  45. ansys/fluent/core/generated/solver/settings_252.pyi +7229 -3259
  46. ansys/fluent/core/generated/solver/tui_252.py +4508 -3877
  47. ansys/fluent/core/get_build_details.py +22 -0
  48. ansys/fluent/core/journaling.py +38 -0
  49. ansys/fluent/core/launcher/__init__.py +22 -0
  50. ansys/fluent/core/launcher/container_launcher.py +65 -56
  51. ansys/fluent/core/launcher/error_handler.py +30 -0
  52. ansys/fluent/core/launcher/fluent_container.py +45 -20
  53. ansys/fluent/core/launcher/launcher.py +53 -5
  54. ansys/fluent/core/launcher/launcher_utils.py +22 -0
  55. ansys/fluent/core/launcher/pim_launcher.py +120 -86
  56. ansys/fluent/core/launcher/process_launch_string.py +22 -0
  57. ansys/fluent/core/launcher/pyfluent_enums.py +22 -0
  58. ansys/fluent/core/launcher/server_info.py +45 -3
  59. ansys/fluent/core/launcher/slurm_launcher.py +25 -3
  60. ansys/fluent/core/launcher/standalone_launcher.py +68 -63
  61. ansys/fluent/core/launcher/watchdog.py +22 -0
  62. ansys/fluent/core/logging.py +24 -0
  63. ansys/fluent/core/logging_config.yaml +3 -0
  64. ansys/fluent/core/meshing/meshing_workflow.py +22 -0
  65. ansys/fluent/core/parametric.py +22 -0
  66. ansys/fluent/core/post_objects/__init__.py +21 -0
  67. ansys/fluent/core/post_objects/check_in_notebook.py +22 -0
  68. ansys/fluent/core/post_objects/meta.py +22 -0
  69. ansys/fluent/core/post_objects/post_helper.py +22 -0
  70. ansys/fluent/core/post_objects/post_object_definitions.py +22 -0
  71. ansys/fluent/core/post_objects/post_objects_container.py +22 -0
  72. ansys/fluent/core/post_objects/singleton_meta.py +22 -0
  73. ansys/fluent/core/post_objects/timing_decorator.py +22 -0
  74. ansys/fluent/core/report.py +77 -0
  75. ansys/fluent/core/rpvars.py +22 -0
  76. ansys/fluent/core/scheduler/__init__.py +22 -0
  77. ansys/fluent/core/scheduler/load_machines.py +22 -0
  78. ansys/fluent/core/scheduler/machine_list.py +22 -0
  79. ansys/fluent/core/search.py +22 -0
  80. ansys/fluent/core/services/__init__.py +22 -0
  81. ansys/fluent/core/services/api_upgrade.py +22 -0
  82. ansys/fluent/core/services/app_utilities.py +38 -0
  83. ansys/fluent/core/services/batch_ops.py +22 -0
  84. ansys/fluent/core/services/datamodel_se.py +163 -61
  85. ansys/fluent/core/services/datamodel_tui.py +22 -0
  86. ansys/fluent/core/services/deprecated_field_data.py +23 -1
  87. ansys/fluent/core/services/events.py +22 -0
  88. ansys/fluent/core/services/field_data.py +285 -2
  89. ansys/fluent/core/services/health_check.py +22 -0
  90. ansys/fluent/core/services/interceptors.py +50 -2
  91. ansys/fluent/core/services/monitor.py +22 -0
  92. ansys/fluent/core/services/reduction.py +22 -0
  93. ansys/fluent/core/services/scheme_eval.py +22 -0
  94. ansys/fluent/core/services/settings.py +22 -0
  95. ansys/fluent/core/services/solution_variables.py +22 -0
  96. ansys/fluent/core/services/streaming.py +22 -0
  97. ansys/fluent/core/services/transcript.py +22 -0
  98. ansys/fluent/core/session.py +39 -2
  99. ansys/fluent/core/session_base_meshing.py +22 -0
  100. ansys/fluent/core/session_meshing.py +22 -0
  101. ansys/fluent/core/session_meshing.pyi +22 -0
  102. ansys/fluent/core/session_pure_meshing.py +22 -0
  103. ansys/fluent/core/session_pure_meshing.pyi +22 -0
  104. ansys/fluent/core/session_shared.py +22 -0
  105. ansys/fluent/core/session_solver.py +43 -0
  106. ansys/fluent/core/session_solver.pyi +22 -0
  107. ansys/fluent/core/session_solver_aero.py +22 -0
  108. ansys/fluent/core/session_solver_icing.py +22 -0
  109. ansys/fluent/core/session_solver_lite.py +22 -0
  110. ansys/fluent/core/solver/__init__.py +22 -0
  111. ansys/fluent/core/solver/error_message.py +22 -0
  112. ansys/fluent/core/solver/flobject.py +22 -0
  113. ansys/fluent/core/solver/flunits.py +22 -0
  114. ansys/fluent/core/solver/function/__init__.py +22 -0
  115. ansys/fluent/core/solver/function/reduction.py +22 -0
  116. ansys/fluent/core/solver/settings_builtin_bases.py +22 -0
  117. ansys/fluent/core/solver/settings_builtin_data.py +22 -0
  118. ansys/fluent/core/solver/settings_external.py +22 -0
  119. ansys/fluent/core/streaming_services/__init__.py +21 -0
  120. ansys/fluent/core/streaming_services/datamodel_event_streaming.py +34 -12
  121. ansys/fluent/core/streaming_services/datamodel_streaming.py +22 -0
  122. ansys/fluent/core/streaming_services/events_streaming.py +22 -0
  123. ansys/fluent/core/streaming_services/field_data_streaming.py +22 -0
  124. ansys/fluent/core/streaming_services/monitor_streaming.py +23 -1
  125. ansys/fluent/core/streaming_services/streaming.py +22 -0
  126. ansys/fluent/core/streaming_services/transcript_streaming.py +22 -0
  127. ansys/fluent/core/systemcoupling.py +22 -0
  128. ansys/fluent/core/utils/__init__.py +22 -0
  129. ansys/fluent/core/utils/data_transfer.py +22 -0
  130. ansys/fluent/core/utils/deprecate.py +24 -1
  131. ansys/fluent/core/utils/dictionary_operations.py +22 -0
  132. ansys/fluent/core/utils/dump_session_data.py +22 -0
  133. ansys/fluent/core/utils/event_loop.py +22 -0
  134. ansys/fluent/core/utils/execution.py +22 -0
  135. ansys/fluent/core/utils/file_transfer_service.py +22 -0
  136. ansys/fluent/core/utils/fix_doc.py +22 -0
  137. ansys/fluent/core/utils/fldoc.py +22 -0
  138. ansys/fluent/core/utils/fluent_version.py +22 -0
  139. ansys/fluent/core/utils/networking.py +22 -0
  140. ansys/fluent/core/utils/setup_for_fluent.py +22 -0
  141. ansys/fluent/core/warnings.py +22 -0
  142. ansys/fluent/core/workflow.py +22 -0
  143. {ansys_fluent_core-0.28.1.dist-info → ansys_fluent_core-0.29.0.dist-info}/LICENSE +8 -8
  144. {ansys_fluent_core-0.28.1.dist-info → ansys_fluent_core-0.29.0.dist-info}/METADATA +56 -33
  145. ansys_fluent_core-0.29.0.dist-info/RECORD +219 -0
  146. {ansys_fluent_core-0.28.1.dist-info → ansys_fluent_core-0.29.0.dist-info}/WHEEL +1 -1
  147. ansys/fluent/core/docs/README.rst +0 -155
  148. ansys/fluent/tests/conftest.py +0 -415
  149. ansys/fluent/tests/fluent_fixtures.py +0 -195
  150. ansys/fluent/tests/integration/test_optislang/test_optislang_integration.py +0 -263
  151. ansys/fluent/tests/parametric/test_local_parametric_run.py +0 -36
  152. ansys/fluent/tests/parametric/test_local_parametric_setup.py +0 -34
  153. ansys/fluent/tests/parametric/test_parametric_workflow.py +0 -279
  154. ansys/fluent/tests/test_aero_session.py +0 -88
  155. ansys/fluent/tests/test_batch_ops.py +0 -39
  156. ansys/fluent/tests/test_builtin_settings.py +0 -761
  157. ansys/fluent/tests/test_cad_to_post_ftm.py +0 -525
  158. ansys/fluent/tests/test_cad_to_post_wtm.py +0 -250
  159. ansys/fluent/tests/test_casereader.py +0 -324
  160. ansys/fluent/tests/test_codegen.py +0 -783
  161. ansys/fluent/tests/test_creatable.py +0 -31
  162. ansys/fluent/tests/test_data_model_cache.py +0 -434
  163. ansys/fluent/tests/test_datamodel_api.py +0 -449
  164. ansys/fluent/tests/test_datamodel_service.py +0 -814
  165. ansys/fluent/tests/test_datareader.py +0 -103
  166. ansys/fluent/tests/test_error_handling.py +0 -24
  167. ansys/fluent/tests/test_events_manager.py +0 -214
  168. ansys/fluent/tests/test_field_data.py +0 -466
  169. ansys/fluent/tests/test_file_session.py +0 -355
  170. ansys/fluent/tests/test_file_transfer_service.py +0 -165
  171. ansys/fluent/tests/test_fix_doc.py +0 -29
  172. ansys/fluent/tests/test_flobject.py +0 -1235
  173. ansys/fluent/tests/test_fluent_fixes.py +0 -106
  174. ansys/fluent/tests/test_fluent_session.py +0 -270
  175. ansys/fluent/tests/test_fluent_version.py +0 -66
  176. ansys/fluent/tests/test_fluent_version_marker.py +0 -65
  177. ansys/fluent/tests/test_icing_session.py +0 -9
  178. ansys/fluent/tests/test_launcher.py +0 -529
  179. ansys/fluent/tests/test_launcher_remote.py +0 -272
  180. ansys/fluent/tests/test_lispy.py +0 -40
  181. ansys/fluent/tests/test_logging.py +0 -16
  182. ansys/fluent/tests/test_mapped_api.py +0 -774
  183. ansys/fluent/tests/test_meshing_utilities.py +0 -2436
  184. ansys/fluent/tests/test_meshing_workflow.py +0 -421
  185. ansys/fluent/tests/test_meshingmode/test_meshing_launch.py +0 -168
  186. ansys/fluent/tests/test_new_meshing_workflow.py +0 -1801
  187. ansys/fluent/tests/test_preferences.py +0 -89
  188. ansys/fluent/tests/test_pure_mesh_vs_mesh_workflow.py +0 -101
  189. ansys/fluent/tests/test_reduction.py +0 -484
  190. ansys/fluent/tests/test_rp_vars.py +0 -77
  191. ansys/fluent/tests/test_scheduler.py +0 -471
  192. ansys/fluent/tests/test_scheme_eval_222.py +0 -338
  193. ansys/fluent/tests/test_scheme_eval_231.py +0 -243
  194. ansys/fluent/tests/test_search.py +0 -344
  195. ansys/fluent/tests/test_session.py +0 -594
  196. ansys/fluent/tests/test_settings_api.py +0 -606
  197. ansys/fluent/tests/test_settings_reader.py +0 -85
  198. ansys/fluent/tests/test_slurm_future.py +0 -67
  199. ansys/fluent/tests/test_solution_variables.py +0 -241
  200. ansys/fluent/tests/test_solver_monitors.py +0 -83
  201. ansys/fluent/tests/test_solvermode/boundaries_periodic_expDict +0 -1712
  202. ansys/fluent/tests/test_solvermode/test_boundaries.py +0 -127
  203. ansys/fluent/tests/test_solvermode/test_calculationactivities.py +0 -20
  204. ansys/fluent/tests/test_solvermode/test_controls.py +0 -131
  205. ansys/fluent/tests/test_solvermode/test_general.py +0 -109
  206. ansys/fluent/tests/test_solvermode/test_initialization.py +0 -83
  207. ansys/fluent/tests/test_solvermode/test_materials.py +0 -40
  208. ansys/fluent/tests/test_solvermode/test_methods.py +0 -65
  209. ansys/fluent/tests/test_solvermode/test_models.py +0 -99
  210. ansys/fluent/tests/test_solvermode/test_named_expressions.py +0 -35
  211. ansys/fluent/tests/test_solvermode/test_post_vector.py +0 -22
  212. ansys/fluent/tests/test_solvermode/test_species_model.py +0 -67
  213. ansys/fluent/tests/test_streaming_services.py +0 -52
  214. ansys/fluent/tests/test_systemcoupling.py +0 -44
  215. ansys/fluent/tests/test_topy.py +0 -179
  216. ansys/fluent/tests/test_tui_api.py +0 -70
  217. ansys/fluent/tests/test_type_stub.py +0 -37
  218. ansys/fluent/tests/test_utils.py +0 -82
  219. ansys/fluent/tests/util/__init__.py +0 -36
  220. ansys/fluent/tests/util/meshing_workflow.py +0 -33
  221. ansys/fluent/tests/util/solver.py +0 -72
  222. ansys_fluent_core-0.28.1.dist-info/AUTHORS +0 -12
  223. ansys_fluent_core-0.28.1.dist-info/RECORD +0 -294
@@ -1,127 +0,0 @@
1
- import json
2
- import os
3
- from unittest import TestCase
4
-
5
- import pytest
6
- from util.solver import SettingsValDict as D
7
- from util.solver import assign_settings_value_from_value_dict as assign_dict_val
8
- from util.solver import get_name_info
9
-
10
-
11
- @pytest.mark.fluent_version(">=24.1")
12
- @pytest.mark.settings_only
13
- @pytest.mark.codegen_required
14
- def test_boundaries_elbow(mixing_elbow_settings_session):
15
- solver_session = mixing_elbow_settings_session
16
- solver_session.setup.models.energy.enabled = True
17
-
18
- cold_inlet = solver_session.setup.boundary_conditions.velocity_inlet["cold-inlet"]
19
- assert D(1) == cold_inlet.momentum.velocity()
20
- assign_dict_val(cold_inlet.momentum.velocity, 0.4)
21
- assert D(0.4) == cold_inlet.momentum.velocity()
22
-
23
- cold_inlet.turbulence.turbulent_specification = "Intensity and Hydraulic Diameter"
24
- cold_inlet.turbulence.turbulent_intensity = 0.05
25
- cold_inlet.turbulence.hydraulic_diameter = "4 [in]"
26
- assign_dict_val(cold_inlet.thermal.t, 293.15)
27
-
28
- assert {
29
- "name": "cold-inlet",
30
- "momentum": {
31
- "initial_gauge_pressure": {"option": "value", "value": 0},
32
- "reference_frame": "Absolute",
33
- "velocity": {"option": "value", "value": 0.4},
34
- "velocity_specification_method": "Magnitude, Normal to Boundary",
35
- },
36
- "turbulence": {
37
- "turbulent_specification": "Intensity and Hydraulic Diameter",
38
- "turbulent_intensity": 0.05,
39
- "hydraulic_diameter": "4 [in]",
40
- },
41
- "thermal": {"t": {"option": "value", "value": 293.15}},
42
- } == cold_inlet()
43
-
44
- hot_inlet = solver_session.setup.boundary_conditions.velocity_inlet["hot-inlet"]
45
- assign_dict_val(hot_inlet.momentum.velocity, 1.2)
46
- hot_inlet.turbulence.turbulent_specification = "Intensity and Hydraulic Diameter"
47
- hot_inlet.turbulence.hydraulic_diameter = "1 [in]"
48
- assign_dict_val(hot_inlet.thermal.t, 313.15)
49
-
50
- assert {
51
- "name": "hot-inlet",
52
- "momentum": {
53
- "initial_gauge_pressure": {"option": "value", "value": 0},
54
- "reference_frame": "Absolute",
55
- "velocity": {"option": "value", "value": 1.2},
56
- "velocity_specification_method": "Magnitude, Normal to Boundary",
57
- },
58
- "turbulence": {
59
- "turbulent_specification": "Intensity and Hydraulic Diameter",
60
- "turbulent_intensity": 0.05,
61
- "hydraulic_diameter": "1 [in]",
62
- },
63
- "thermal": {"t": {"option": "value", "value": 313.15}},
64
- } == hot_inlet()
65
-
66
- solver_session.setup.boundary_conditions.pressure_outlet[
67
- "outlet"
68
- ].turbulence.turbulent_viscosity_ratio = 4
69
- assert (
70
- solver_session.setup.boundary_conditions.pressure_outlet[
71
- "outlet"
72
- ].turbulence.turbulent_viscosity_ratio()
73
- == 4
74
- )
75
-
76
-
77
- @pytest.mark.settings_only
78
- @pytest.mark.fluent_version("latest")
79
- def test_boundaries_periodic(periodic_rot_settings_session):
80
- solver_session = periodic_rot_settings_session
81
- print(__file__)
82
- _THIS_DIR = os.path.dirname(__file__)
83
- _DATA_FILE = os.path.join(_THIS_DIR, "boundaries_periodic_expDict")
84
- boundary_exp = json.load(open(_DATA_FILE))
85
- boundary_test = dict()
86
- boundary_tested = dict()
87
- for name, boundary in solver_session.setup.boundary_conditions.items():
88
- boundary_test[name] = boundary()
89
- boundary_tested["val_1"] = boundary_test
90
-
91
- TestCase().assertDictEqual(boundary_tested["val_1"], boundary_exp["val_1"])
92
-
93
- boundary_test = dict()
94
- for (
95
- boundary_type
96
- ) in solver_session.setup.boundary_conditions.get_active_child_names():
97
- if boundary_type in ["non_reflecting_bc", "perforated_wall", "settings"]:
98
- continue
99
- for name, boundary in getattr(
100
- solver_session.setup.boundary_conditions, boundary_type
101
- ).items():
102
- boundary_test[name] = boundary()
103
- boundary_tested["val_2"] = boundary_test
104
- TestCase().assertDictEqual(boundary_tested["val_2"], boundary_exp["val_2"])
105
-
106
- boundaries_check = ["inlet", "outlet", "pipe_2_wall"]
107
- selected_bou_test = get_name_info(boundary_tested["val_1"], boundaries_check)
108
- selected_bou_exp = get_name_info(boundary_exp["val_1"], boundaries_check)
109
- TestCase().assertDictEqual(selected_bou_test, selected_bou_exp)
110
- solver_session.setup.boundary_conditions.wall["pipe_2_wall"].rename("pipe2_wall")
111
- solver_session.setup.boundary_conditions.pressure_outlet["outlet"].rename("out")
112
- solver_session.setup.boundary_conditions.velocity_inlet[
113
- "inlet"
114
- ].momentum.velocity = 5.0
115
- solver_session.setup.boundary_conditions["inlet"].momentum.velocity = 10.0
116
- boundaries_check = ["inlet", "out", "pipe2_wall"]
117
- boundary_test = dict()
118
- for name, boundary in solver_session.setup.boundary_conditions.items():
119
- boundary_test[name] = boundary()
120
- boundary_tested["val_3"] = boundary_test
121
- TestCase().assertDictEqual(boundary_tested["val_3"], boundary_exp["val_3"])
122
-
123
- selected_bou_test = get_name_info(boundary_tested["val_3"], boundaries_check)
124
- selected_bou_exp = get_name_info(boundary_exp["val_3"], boundaries_check)
125
- TestCase().assertDictEqual(selected_bou_test, selected_bou_exp)
126
- with open("boundaries_periodic_outDict.py", "a") as f:
127
- json.dump(boundary_tested, f, sort_keys=True, indent=4)
@@ -1,20 +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_solver_calculation(static_mixer_case_session):
8
- solver_session = static_mixer_case_session
9
- scheme_eval = solver_session.scheme_eval.scheme_eval
10
- assert scheme_eval("(client-get-var 'residuals/plot?)") is True
11
- # TODO: Remove the if condition after a stable version of 23.1 is available and update the commands as required.
12
- if solver_session.get_fluent_version() < FluentVersion.v231:
13
- solver_session.tui.solve.monitors.residual.plot("no")
14
- assert scheme_eval("(client-get-var 'residuals/plot?)") is False
15
- assert scheme_eval("(data-valid?)") is False
16
- solver_session.solution.initialization.hybrid_initialize()
17
- assert scheme_eval("(data-valid?)") is True
18
- # solver_session.solution.run_calculation.iterate.get_attr("arguments")
19
- # solver_session.solution.run_calculation.number_of_iterations = 5
20
- # assert solver_session.solution.run_calculation.number_of_iterations == 5
@@ -1,131 +0,0 @@
1
- import pytest
2
-
3
-
4
- @pytest.mark.settings_only
5
- @pytest.mark.fluent_version("latest")
6
- def test_controls(mixing_elbow_settings_session):
7
- solver = mixing_elbow_settings_session
8
- solver.setup.models.multiphase.models = "vof"
9
- assert solver.setup.models.multiphase.models() == "vof"
10
- solver.setup.general.operating_conditions.gravity = {
11
- "enable": True,
12
- "components": [0.0, 0.0, -9.81],
13
- }
14
- assert solver.setup.general.operating_conditions.gravity.components() == [
15
- 0,
16
- 0,
17
- -9.81,
18
- ]
19
- solver.setup.general.solver.time = "steady"
20
- assert solver.setup.general.solver.time() == "steady"
21
- param_coarsening = (
22
- solver.solution.controls.advanced.multi_grid.amg_controls.coupled_parameters.coarsening_parameters
23
- )
24
- param_coarsening.laplace_coarsening = True
25
- assert param_coarsening() == {
26
- "max_coarse_levels": 40,
27
- "coarsen_by_interval": 8,
28
- "conservative_coarsening": False,
29
- "aggressive_coarsening": False,
30
- "laplace_coarsening": True,
31
- }
32
- param_coarsening.max_coarse_levels = 45
33
- assert param_coarsening.max_coarse_levels() == 45
34
-
35
- param_coarsening.set_state(
36
- {
37
- "max_coarse_levels": 48,
38
- "coarsen_by_interval": 9,
39
- "conservative_coarsening": True,
40
- "aggressive_coarsening": True,
41
- "laplace_coarsening": True,
42
- }
43
- )
44
- assert param_coarsening.max_coarse_levels() == 48
45
- assert param_coarsening.coarsen_by_interval() == 9
46
- assert param_coarsening.conservative_coarsening() is True
47
- assert param_coarsening.aggressive_coarsening() is True
48
-
49
- param_fixed_cycle = (
50
- solver.solution.controls.advanced.multi_grid.amg_controls.scalar_parameters.fixed_cycle_parameters
51
- )
52
- param_fixed_cycle.max_cycle = 300
53
- assert param_fixed_cycle.max_cycle() == 300
54
- param_fixed_cycle.set_state(
55
- {
56
- "pre_sweeps": 1,
57
- "post_sweeps": 2,
58
- "max_cycle": 350,
59
- }
60
- )
61
- assert param_fixed_cycle() == {
62
- "pre_sweeps": 1,
63
- "post_sweeps": 2,
64
- "max_cycle": 350,
65
- }
66
- solver.solution.methods.p_v_coupling.flow_scheme = "Coupled"
67
- assert solver.solution.methods.p_v_coupling.flow_scheme() == "Coupled"
68
- solver.solution.methods.p_v_coupling.coupled_form = True
69
- assert solver.solution.methods.p_v_coupling.coupled_form() is True
70
- solver.solution.controls.advanced.multi_grid.amg_controls.scalar_parameters.smoother_type = (
71
- "Gauss-Seidel"
72
- )
73
- assert (
74
- solver.solution.controls.advanced.multi_grid.amg_controls.scalar_parameters.smoother_type()
75
- == "Gauss-Seidel"
76
- )
77
- assert solver.solution.controls.pseudo_time_explicit_relaxation_factor() == {
78
- "global_dt_pseudo_relax": {
79
- "turb-viscosity": 1.0,
80
- "body-force": 1.0,
81
- "k": 0.75,
82
- "omega": 0.75,
83
- "mp": 0.5,
84
- "density": 1.0,
85
- "temperature": 0.75,
86
- }
87
- }
88
- solver.solution.controls.pseudo_time_explicit_relaxation_factor = {
89
- "global_dt_pseudo_relax": {"turb-viscosity": 0.9, "body-force": 0.8}
90
- }
91
- assert solver.solution.controls.pseudo_time_explicit_relaxation_factor() == {
92
- "global_dt_pseudo_relax": {
93
- "turb-viscosity": 0.9,
94
- "body-force": 0.8,
95
- "k": 0.75,
96
- "omega": 0.75,
97
- "mp": 0.5,
98
- "density": 1.0,
99
- "temperature": 0.75,
100
- }
101
- }
102
- solver.solution.methods.p_v_coupling.flow_scheme = "SIMPLE"
103
- solver.solution.controls.under_relaxation = {"pressure": 0.9}
104
- solver.solution.controls.under_relaxation = {"density": 0.9}
105
- assert solver.solution.controls.under_relaxation() == {
106
- "mom": 0.7,
107
- "turb-viscosity": 1,
108
- "density": 0.9,
109
- "omega": 0.8,
110
- "mp": 0.5,
111
- "body-force": 1.0,
112
- "pressure": 0.9,
113
- "k": 0.8,
114
- "temperature": 1.0,
115
- }
116
- solver.solution.controls.under_relaxation = {
117
- "body-force": 0.7,
118
- "density": 0.75,
119
- "mom": 0.8,
120
- }
121
- assert solver.solution.controls.under_relaxation() == {
122
- "mom": 0.8,
123
- "turb-viscosity": 1,
124
- "density": 0.75,
125
- "omega": 0.8,
126
- "mp": 0.5,
127
- "body-force": 0.7,
128
- "pressure": 0.9,
129
- "k": 0.8,
130
- "temperature": 1.0,
131
- }
@@ -1,109 +0,0 @@
1
- import os
2
- from pathlib import Path
3
-
4
- import pytest
5
-
6
- import ansys.fluent.core as pyfluent
7
-
8
-
9
- @pytest.mark.settings_only
10
- @pytest.mark.fluent_version("latest")
11
- def test_solver_import_mixingelbow(mixing_elbow_settings_session):
12
- solver_session = mixing_elbow_settings_session
13
- assert solver_session.settings.is_active()
14
- assert solver_session.health_check.is_serving
15
- file_name = Path(pyfluent.EXAMPLES_PATH) / "jou_test_general.py"
16
- solver_session.journal.start(file_name.as_posix())
17
- ###
18
- assert solver_session.setup.models.energy.enabled()
19
- scheme_eval = solver_session.scheme_eval.scheme_eval
20
- assert scheme_eval("(case-valid?)")
21
- ###
22
- solver_session.tui.mesh.check()
23
- solver_session.tui.define.units("length", "in")
24
- assert scheme_eval('(units/quantity-info "length")')[-1] == "in"
25
- general_solver = solver_session.setup.general.solver
26
- general_solver.time.allowed_values()
27
- assert general_solver.time.allowed_values() == [
28
- "steady",
29
- "unsteady-1st-order",
30
- "unsteady-2nd-order",
31
- "unsteady-2nd-order-bounded",
32
- ]
33
-
34
- general_solver.time = "unsteady-2nd-order"
35
- general_solver.time = "unsteady-1st-order"
36
- general_solver.time = "unsteady-2nd-order-bounded"
37
- general_solver.time = "steady"
38
-
39
- # solver.setup.general.gravity = {"gravity": True, "y_component": -9.81}
40
- # solver.mesh.scale(x_scale=0.001, y_scale=0.001, z_scale=0.001)
41
-
42
- assert general_solver.type.get_attr("allowed-values") == [
43
- "pressure-based",
44
- "density-based-implicit",
45
- "density-based-explicit",
46
- ]
47
- assert general_solver.type.allowed_values() == [
48
- "pressure-based",
49
- "density-based-implicit",
50
- "density-based-explicit",
51
- ]
52
- # Below line is commented due to TFS Bug 714494
53
- # assert solver_session.setup.general.solver.type.default_value() == "pressure-based"
54
- assert general_solver.type.is_active()
55
- assert not general_solver.type.is_read_only()
56
- general_solver.type = "density-based-implicit"
57
- assert general_solver.type() == "density-based-implicit"
58
- general_solver.type = "density-based-explicit"
59
- assert general_solver.type() == "density-based-explicit"
60
- general_solver.type = "pressure-based"
61
- assert general_solver.type() == "pressure-based"
62
-
63
- auto_save = solver_session.file.auto_save
64
- auto_save.data_frequency = 10
65
- assert auto_save.data_frequency.default_value() == 0
66
- assert auto_save.data_frequency() == 10
67
- auto_save.case_frequency = "each-time"
68
- assert auto_save.case_frequency() == "each-time"
69
- auto_save.root_name = "file_auto_save"
70
- assert auto_save.root_name() == "file_auto_save"
71
- solver_session.setup.reference_values.compute(
72
- from_zone_name="outlet", from_zone_type="pressure-outlet"
73
- )
74
- solver_session.journal.stop()
75
- solver_session.tui.file.read_journal(file_name.as_posix())
76
- assert auto_save.root_name() == "file_auto_save"
77
- assert general_solver.type() == "pressure-based"
78
- assert auto_save.data_frequency() == 10
79
- assert general_solver.time() == "steady"
80
- if os.path.exists(file_name):
81
- os.remove(file_name)
82
-
83
-
84
- @pytest.mark.settings_only
85
- @pytest.mark.fluent_version("latest")
86
- def test_disk_2d_setup(disk_settings_session):
87
- session = disk_settings_session
88
- assert session.settings.is_active()
89
- assert session.health_check.is_serving
90
- ###
91
- assert not session.setup.models.energy.enabled()
92
- assert session.scheme_eval.scheme_eval("(case-valid?)")
93
- session.tui.mesh.check()
94
-
95
- session_solver = session.setup.general.solver
96
- assert session_solver.two_dim_space.get_attr("allowed-values") == [
97
- "swirl",
98
- "axisymmetric",
99
- "planar",
100
- ]
101
- assert session_solver.two_dim_space() == "planar"
102
- session_solver.two_dim_space = "axisymmetric"
103
- assert session_solver.two_dim_space() == "axisymmetric"
104
- session_solver.two_dim_space = "swirl"
105
- assert session_solver.two_dim_space() == "swirl"
106
- session_solver.two_dim_space = "planar"
107
- assert session_solver.two_dim_space() == "planar"
108
- # Bug 682773
109
- # session.setup.general.gravity = {"gravity": True, "x_component": -9.81}
@@ -1,83 +0,0 @@
1
- import pytest
2
-
3
- from ansys.fluent.core.examples.downloads import download_file
4
-
5
-
6
- @pytest.mark.settings_only
7
- def test_initialization_settings(new_solver_session):
8
- solver = new_solver_session
9
- case_name = download_file(
10
- "wigley.cas.h5",
11
- "pyfluent/wigley_hull",
12
- )
13
- solver.file.read(
14
- file_type="case",
15
- file_name=case_name,
16
- lightweight_setup=True,
17
- )
18
- solver.parallel.partition.set.laplace_smoothing.enabled = True
19
- solver.parallel.partition.method(partition_method="metis", count=2)
20
- copy_by_name = solver.setup.materials.database.copy_by_name
21
- copy_by_name(type="fluid", name="air")
22
- copy_by_name(type="fluid", name="water-liquid")
23
- solver.setup.models.multiphase.models = "vof"
24
- solver.setup.general.operating_conditions.gravity = {
25
- "enable": True,
26
- "components": [0.0, 0.0, -9.81],
27
- }
28
- solver.setup.general.solver.time = "steady"
29
-
30
- solver.tui.define.models.multiphase.vof_sub_models("yes", "no")
31
- solver.tui.define.phases.set_domain_properties.change_phases_names("water", "air")
32
- solver.setup.boundary_conditions.pressure_inlet["inflow"].phase["mixture"] = {
33
- "multiphase": {
34
- "open_channel": True,
35
- "vmag": 1.452,
36
- "ht_bottom": -0.941875,
37
- },
38
- "momentum": {"direction_specification_method": "Direction Vector"},
39
- "turbulence": {
40
- "turbulent_intensity": 0.01,
41
- "turbulent_viscosity_ratio": 1,
42
- },
43
- }
44
- solver.setup.boundary_conditions.pressure_outlet["outflow"].phase["mixture"] = {
45
- "multiphase": {
46
- "open_channel": True,
47
- "ht_bottom": -0.941875,
48
- "den_spec": "From Free Surface Level",
49
- },
50
- "momentum": {
51
- "direction_spec": "Normal to Boundary",
52
- "p_backflow_spec_gen": "Static Pressure",
53
- },
54
- "turbulence": {
55
- "turbulent_intensity": 0.01,
56
- "turbulent_viscosity_ratio": 1,
57
- },
58
- }
59
-
60
- solver.solution.methods.p_v_coupling.flow_scheme = "Coupled"
61
- solver.solution.methods.p_v_coupling.coupled_form = True
62
- solver.solution.controls.advanced.multi_grid.amg_controls.coupled_parameters.coarsening_parameters.laplace_coarsening = (
63
- True
64
- )
65
- solver.solution.initialization.open_channel_auto_init = {
66
- "boundary_zone": 3,
67
- "flat_init": True,
68
- }
69
- assert solver.solution.initialization.open_channel_auto_init() == {
70
- "boundary_zone": 3,
71
- "flat_init": True,
72
- }
73
-
74
-
75
- @pytest.mark.fluent_version(">=24.1")
76
- def test_fmg_initialize(new_solver_session):
77
- solver = new_solver_session
78
- case_name = download_file("vki_turbine.cas.gz", "pyfluent/vki_turbine")
79
- solver.file.read(file_type="case", file_name=case_name)
80
- solver.mesh.check()
81
- solver.solution.initialization.standard_initialize()
82
- solver.solution.initialization.fmg.fmg_initialize()
83
- solver.tui.solve.iterate(2)
@@ -1,40 +0,0 @@
1
- import pytest
2
- from util.solver import copy_database_material
3
-
4
-
5
- @pytest.mark.settings_only
6
- @pytest.mark.fluent_version("latest")
7
- def test_solver_material(mixing_elbow_settings_session):
8
- solver_session = mixing_elbow_settings_session
9
- setup_materials = solver_session.setup.materials
10
- copy_database_material(materials=setup_materials, type="fluid", name="water-liquid")
11
- elbow_fluid = solver_session.setup.cell_zone_conditions.fluid["elbow-fluid"]
12
-
13
- assert "water-liquid" not in elbow_fluid.material()
14
- elbow_fluid.material = "water-liquid"
15
- assert "water-liquid" in elbow_fluid.material()
16
-
17
- setup_materials.database.copy_by_name(type="fluid", name="air")
18
- elbow_fluid.material = "air"
19
- assert "air" in elbow_fluid.material()
20
- assert "air" in elbow_fluid.material()
21
-
22
- assert setup_materials.child_names == [
23
- "database",
24
- "fluid",
25
- "solid",
26
- "mixture",
27
- "inert_particle",
28
- "droplet_particle",
29
- "combusting_particle",
30
- "particle_mixture",
31
- ]
32
- assert setup_materials.database.get_active_command_names() == [
33
- "copy_by_formula",
34
- "copy_by_name",
35
- "list_materials",
36
- "list_properties",
37
- ]
38
- setup_materials.database.copy_by_formula(type="fluid", formula="c2h6")
39
- elbow_fluid.material = "ethane"
40
- assert "ethane" in elbow_fluid.material()
@@ -1,65 +0,0 @@
1
- import pytest
2
-
3
-
4
- @pytest.mark.settings_only
5
- @pytest.mark.fluent_version("latest")
6
- def test_methods(mixing_elbow_settings_session):
7
- solver = mixing_elbow_settings_session
8
- solver.setup.models.multiphase.models = "vof"
9
- solver.setup.general.operating_conditions.gravity = {
10
- "enable": True,
11
- "components": [0.0, 0.0, -9.81],
12
- }
13
- solver.setup.general.solver.time = "steady"
14
-
15
- p_v_coupling = solver.solution.methods.p_v_coupling
16
- p_v_coupling.flow_scheme = "Coupled"
17
- p_v_coupling.coupled_form = False
18
- assert p_v_coupling() == {
19
- "flow_scheme": "Coupled",
20
- "coupled_form": False,
21
- }
22
- solver.solution.methods.discretization_scheme = {"pressure": "presto!"}
23
- assert solver.solution.methods.discretization_scheme() == {
24
- "mom": "second-order-upwind",
25
- "omega": "second-order-upwind",
26
- "mp": "compressive",
27
- "pressure": "presto!",
28
- "k": "second-order-upwind",
29
- "temperature": "second-order-upwind",
30
- }
31
- solver.solution.methods.gradient_scheme = "least-square-cell-based"
32
- assert solver.solution.methods.gradient_scheme() == "least-square-cell-based"
33
-
34
- enable_warped_face = solver.solution.methods.warped_face_gradient_correction
35
- enable_warped_face(enable=True, mode="fast")
36
- enable_warped_face(enable=False, mode="fast")
37
-
38
- solver.solution.methods.expert.numerics_pbns.velocity_formulation = "relative"
39
- assert (
40
- solver.solution.methods.expert.numerics_pbns.velocity_formulation()
41
- == "relative"
42
- )
43
- solver.solution.methods.expert.numerics_pbns = {
44
- "implicit_bodyforce_treatment": True,
45
- "velocity_formulation": "absolute",
46
- "physical_velocity_formulation": True,
47
- "disable_rhie_chow_flux": True,
48
- "presto_pressure_scheme": False,
49
- "first_to_second_order_blending": 1.0,
50
- }
51
- assert solver.solution.methods.expert.numerics_pbns() == {
52
- "implicit_bodyforce_treatment": True,
53
- "velocity_formulation": "absolute",
54
- "physical_velocity_formulation": True,
55
- "disable_rhie_chow_flux": True,
56
- "presto_pressure_scheme": False,
57
- "first_to_second_order_blending": 1.0,
58
- }
59
- solver.solution.methods.expert.numerics_pbns.presto_pressure_scheme = True
60
- assert solver.solution.methods.expert.numerics_pbns.presto_pressure_scheme() is True
61
- solver.solution.methods.gradient_scheme = "green-gauss-node-based"
62
- assert solver.solution.methods.gradient_scheme() == "green-gauss-node-based"
63
- solver.solution.methods.warped_face_gradient_correction(
64
- enable=True, mode="memory-saving"
65
- )
@@ -1,99 +0,0 @@
1
- import pytest
2
-
3
-
4
- @pytest.mark.settings_only
5
- @pytest.mark.fluent_version("latest")
6
- def test_solver_models(mixing_elbow_settings_session):
7
- solver_session = mixing_elbow_settings_session
8
- models = solver_session.setup.models
9
- assert models.energy.enabled()
10
- models.energy.enabled = False
11
- assert not models.energy.enabled()
12
- models.multiphase.models = "vof"
13
- assert models.multiphase.models() == "vof"
14
- models.viscous.model = "laminar"
15
- assert models.viscous.model() == "laminar"
16
- models.viscous.model = "k-epsilon"
17
- assert models.viscous.model() == "k-epsilon"
18
-
19
- models.viscous.near_wall_treatment.wall_treatment = "enhanced-wall-treatment"
20
- models.multiphase.models = "eulerian"
21
- assert models.multiphase.models() == "eulerian"
22
-
23
-
24
- @pytest.mark.settings_only
25
- @pytest.mark.fluent_version("latest")
26
- def test_disk_2d_models(disk_settings_session):
27
- solver_session = disk_settings_session
28
- models = solver_session.setup.models
29
- solver_session.setup.general.solver.two_dim_space = "axisymmetric"
30
- solver_session.setup.general.solver.two_dim_space = "swirl"
31
-
32
- models.viscous.model = "k-epsilon"
33
- near_wall = models.viscous.near_wall_treatment
34
- assert models.viscous.model() == "k-epsilon"
35
- near_wall.wall_treatment = "enhanced-wall-treatment"
36
- assert near_wall.wall_treatment() == "enhanced-wall-treatment"
37
- assert near_wall.wall_treatment.get_attr("allowed-values") == [
38
- "standard-wall-fn",
39
- "non-equilibrium-wall-fn",
40
- "enhanced-wall-treatment",
41
- "menter-lechner",
42
- "scalable-wall-functions",
43
- ]
44
-
45
- near_wall.wall_treatment = "standard-wall-fn"
46
- assert near_wall.wall_treatment() == "standard-wall-fn"
47
- near_wall.wall_treatment = "non-equilibrium-wall-fn"
48
- assert near_wall.wall_treatment() == "non-equilibrium-wall-fn"
49
- near_wall.wall_treatment = "menter-lechner"
50
- assert near_wall.wall_treatment() == "menter-lechner"
51
- near_wall.wall_treatment = "scalable-wall-functions"
52
- assert near_wall.wall_treatment() == "scalable-wall-functions"
53
-
54
- models.viscous.model = "k-omega"
55
- assert models.viscous.model() == "k-omega"
56
- assert models.viscous.k_omega_model.get_attr("allowed-values") == [
57
- "standard",
58
- "geko",
59
- "bsl",
60
- "sst",
61
- ]
62
-
63
- assert models.viscous.k_omega_model() == "standard"
64
- models.viscous.k_omega_model = "geko"
65
- assert models.viscous.k_omega_model() == "geko"
66
- models.viscous.k_omega_model = "bsl"
67
- assert models.viscous.k_omega_model() == "bsl"
68
- models.viscous.k_omega_model = "sst"
69
- assert models.viscous.k_omega_model() == "sst"
70
- assert models.viscous.model.get_attr("allowed-values") == [
71
- "inviscid",
72
- "laminar",
73
- "k-epsilon",
74
- "k-omega",
75
- "mixing-length",
76
- "spalart-allmaras",
77
- "k-kl-w",
78
- "transition-sst",
79
- "reynolds-stress",
80
- "scale-adaptive-simulation",
81
- "detached-eddy-simulation",
82
- ]
83
- k_omega_options = models.viscous.k_omega_options
84
- k_omega_options.kw_low_re_correction = True
85
- assert k_omega_options.kw_low_re_correction() is True
86
-
87
- turb_options = models.viscous.options
88
- turb_options.production_kato_launder_enabled = True
89
- assert turb_options.production_kato_launder_enabled() is True
90
- turb_options.production_limiter.clip_factor = 9
91
- assert turb_options.production_limiter.clip_factor() == 9
92
- turb_expert = models.viscous.turbulence_expert
93
- turb_expert.turb_non_newtonian = True
94
- assert turb_expert.turb_non_newtonian() is True
95
-
96
- models.viscous.model = "laminar"
97
- assert models.viscous.model() == "laminar"
98
- models.viscous.model = "spalart-allmaras"
99
- assert models.viscous.model() == "spalart-allmaras"