ansys-fluent-core 0.33.dev0__py3-none-any.whl → 0.33.1__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 (82) hide show
  1. ansys/fluent/core/__init__.py +11 -4
  2. ansys/fluent/core/codegen/builtin_settingsgen.py +17 -9
  3. ansys/fluent/core/codegen/datamodelgen.py +2 -2
  4. ansys/fluent/core/codegen/print_fluent_version.py +4 -4
  5. ansys/fluent/core/codegen/settingsgen.py +1 -2
  6. ansys/fluent/core/exceptions.py +0 -1
  7. ansys/fluent/core/file_session.py +9 -9
  8. ansys/fluent/core/filereader/case_file.py +2 -2
  9. ansys/fluent/core/fluent_connection.py +5 -5
  10. ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
  11. ansys/fluent/core/generated/datamodel_231/flicing.py +40 -40
  12. ansys/fluent/core/generated/datamodel_231/meshing.py +182 -182
  13. ansys/fluent/core/generated/datamodel_232/flicing.py +55 -55
  14. ansys/fluent/core/generated/datamodel_232/meshing.py +174 -174
  15. ansys/fluent/core/generated/datamodel_241/flicing.py +20 -20
  16. ansys/fluent/core/generated/datamodel_241/meshing.py +283 -283
  17. ansys/fluent/core/generated/datamodel_242/flicing.py +40 -40
  18. ansys/fluent/core/generated/datamodel_242/meshing.py +308 -308
  19. ansys/fluent/core/generated/datamodel_251/flicing.py +35 -35
  20. ansys/fluent/core/generated/datamodel_251/meshing.py +295 -295
  21. ansys/fluent/core/generated/datamodel_251/part_management.py +6 -6
  22. ansys/fluent/core/generated/datamodel_252/flicing.py +25 -25
  23. ansys/fluent/core/generated/datamodel_252/meshing.py +424 -424
  24. ansys/fluent/core/generated/datamodel_252/part_management.py +5 -5
  25. ansys/fluent/core/generated/datamodel_261/flicing.py +40 -40
  26. ansys/fluent/core/generated/datamodel_261/meshing.py +443 -425
  27. ansys/fluent/core/generated/datamodel_261/meshing_utilities.py +296 -616
  28. ansys/fluent/core/generated/datamodel_261/part_management.py +10 -10
  29. ansys/fluent/core/generated/datamodel_261/preferences.py +7 -0
  30. ansys/fluent/core/generated/datamodel_261/solver_workflow.py +7 -0
  31. ansys/fluent/core/generated/fluent_version_252.py +1 -1
  32. ansys/fluent/core/generated/fluent_version_261.py +3 -3
  33. ansys/fluent/core/generated/meshing/tui_261.py +1137 -1177
  34. ansys/fluent/core/generated/solver/settings_252.py +55 -55
  35. ansys/fluent/core/generated/solver/settings_261.py +4147 -4698
  36. ansys/fluent/core/generated/solver/settings_261.pyi +3467 -5578
  37. ansys/fluent/core/generated/solver/settings_builtin.py +57 -1
  38. ansys/fluent/core/generated/solver/settings_builtin.pyi +79 -0
  39. ansys/fluent/core/generated/solver/tui_261.py +2625 -2771
  40. ansys/fluent/core/launcher/container_launcher.py +7 -9
  41. ansys/fluent/core/launcher/fluent_container.py +107 -75
  42. ansys/fluent/core/launcher/launch_options.py +22 -1
  43. ansys/fluent/core/launcher/launcher.py +5 -4
  44. ansys/fluent/core/launcher/slurm_launcher.py +1 -0
  45. ansys/fluent/core/pyfluent_warnings.py +13 -0
  46. ansys/fluent/core/search.py +170 -83
  47. ansys/fluent/core/services/app_utilities.py +52 -32
  48. ansys/fluent/core/services/datamodel_se.py +6 -3
  49. ansys/fluent/core/services/scheme_eval.py +2 -0
  50. ansys/fluent/core/services/solution_variables.py +64 -49
  51. ansys/fluent/core/session.py +36 -30
  52. ansys/fluent/core/session_base_meshing.py +2 -24
  53. ansys/fluent/core/session_shared.py +5 -2
  54. ansys/fluent/core/session_solver.py +15 -9
  55. ansys/fluent/core/solver/__init__.py +1 -1
  56. ansys/fluent/core/solver/flobject.py +62 -64
  57. ansys/fluent/core/solver/settings_builtin_bases.py +14 -7
  58. ansys/fluent/core/solver/settings_builtin_data.py +121 -540
  59. ansys/fluent/core/utils/context_managers.py +0 -17
  60. ansys/fluent/core/utils/fluent_version.py +173 -0
  61. {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.33.1.dist-info}/METADATA +8 -8
  62. {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.33.1.dist-info}/RECORD +64 -82
  63. {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.33.1.dist-info}/WHEEL +1 -1
  64. ansys/fluent/core/generated/datamodel_222/meshing.py +0 -6332
  65. ansys/fluent/core/generated/datamodel_222/part_management.py +0 -2072
  66. ansys/fluent/core/generated/datamodel_222/pm_file_management.py +0 -290
  67. ansys/fluent/core/generated/datamodel_222/preferences.py +0 -2449
  68. ansys/fluent/core/generated/datamodel_222/workflow.py +0 -651
  69. ansys/fluent/core/generated/fluent_version_222.py +0 -5
  70. ansys/fluent/core/generated/meshing/tui_222.py +0 -9649
  71. ansys/fluent/core/generated/solver/settings_222.py +0 -29473
  72. ansys/fluent/core/generated/solver/settings_222.pyi +0 -19590
  73. ansys/fluent/core/generated/solver/tui_222.py +0 -43451
  74. ansys/fluent/core/post_objects/__init__.py +0 -21
  75. ansys/fluent/core/post_objects/check_in_notebook.py +0 -35
  76. ansys/fluent/core/post_objects/meta.py +0 -926
  77. ansys/fluent/core/post_objects/post_helper.py +0 -178
  78. ansys/fluent/core/post_objects/post_object_definitions.py +0 -693
  79. ansys/fluent/core/post_objects/post_objects_container.py +0 -248
  80. ansys/fluent/core/post_objects/singleton_meta.py +0 -42
  81. ansys/fluent/core/post_objects/timing_decorator.py +0 -38
  82. {ansys_fluent_core-0.33.dev0.dist-info → ansys_fluent_core-0.33.1.dist-info/licenses}/LICENSE +0 -0
@@ -92,7 +92,7 @@ class SolutionVariableInfo:
92
92
  >>> print(solution_variable_info_centroid)
93
93
  >>> name:SV_CENTROID dimension:3 field_type:<class 'numpy.float64'>
94
94
  >>> zones_info = solution_variable_info.get_zones_info()
95
- >>> print(zones_info.zones)
95
+ >>> print(zones_info.zone_names)
96
96
  >>> ['fluid', 'wall', 'symmetry', 'pressure-outlet-7', 'velocity-inlet-6', 'velocity-inlet-5', 'default-interior']
97
97
  >>> zone_info = zones_info['wall']
98
98
  >>> print(zone_info)
@@ -208,7 +208,16 @@ class SolutionVariableInfo:
208
208
  return self._zones_info.get(name, None)
209
209
 
210
210
  @property
211
- def zones(self) -> List[str]:
211
+ def zones(self):
212
+ """Get zone names."""
213
+ warnings.warn(
214
+ "'zones' is deprecated, use 'zone_names' instead",
215
+ PyFluentDeprecationWarning,
216
+ )
217
+ return self.zone_names
218
+
219
+ @property
220
+ def zone_names(self) -> List[str]:
212
221
  """Get zone names."""
213
222
  return list(self._zones_info.keys())
214
223
 
@@ -290,16 +299,15 @@ class SolutionVariableInfo:
290
299
  return SolutionVariableInfo.ZonesInfo(response.zonesInfo, response.domainsInfo)
291
300
 
292
301
 
293
- class SvarError(ValueError):
302
+ class InvalidSolutionVariableNameError(ValueError):
294
303
  """Exception class for errors in solution variable name."""
295
304
 
296
- def __init__(self, solution_variable_name: str, allowed_values: List[str]):
297
- """Initialize SvarError."""
298
- self.solution_variable_name = solution_variable_name
305
+ def __init__(self, variable_name: str, allowed_values: List[str]):
306
+ """Initialize InvalidSolutionVariableNameError."""
299
307
  super().__init__(
300
308
  allowed_name_error_message(
301
309
  context="solution variable",
302
- trial_name=solution_variable_name,
310
+ trial_name=variable_name,
303
311
  allowed_values=allowed_values,
304
312
  )
305
313
  )
@@ -337,18 +345,16 @@ class _AllowedSvarNames:
337
345
 
338
346
  def is_valid(
339
347
  self,
340
- solution_variable_name,
348
+ variable_name,
341
349
  zone_names: List[str],
342
350
  domain_name: str | None = "mixture",
343
351
  ):
344
352
  """Check whether solution variable name is valid or not."""
345
- return solution_variable_name in self(
346
- zone_names=zone_names, domain_name=domain_name
347
- )
353
+ return variable_name in self(zone_names=zone_names, domain_name=domain_name)
348
354
 
349
355
  def valid_name(
350
356
  self,
351
- solution_variable_name,
357
+ variable_name,
352
358
  zone_names: List[str],
353
359
  domain_name: str | None = "mixture",
354
360
  ):
@@ -356,18 +362,18 @@ class _AllowedSvarNames:
356
362
 
357
363
  Raises
358
364
  ------
359
- SvarError
365
+ InvalidSolutionVariableNameError
360
366
  If the given solution variable name is invalid.
361
367
  """
362
- solution_variable_name = _to_field_name_str(solution_variable_name)
368
+ variable_name = _to_field_name_str(variable_name)
363
369
  if not self.is_valid(
364
- solution_variable_name, zone_names=zone_names, domain_name=domain_name
370
+ variable_name, zone_names=zone_names, domain_name=domain_name
365
371
  ):
366
- raise SvarError(
367
- solution_variable_name=solution_variable_name,
372
+ raise InvalidSolutionVariableNameError(
373
+ variable_name=variable_name,
368
374
  allowed_values=self(zone_names=zone_names, domain_name=domain_name),
369
375
  )
370
- return solution_variable_name
376
+ return variable_name
371
377
 
372
378
 
373
379
  class _AllowedZoneNames(_AllowedNames):
@@ -375,7 +381,7 @@ class _AllowedZoneNames(_AllowedNames):
375
381
  self._zones_info = solution_variable_info.get_zones_info()
376
382
 
377
383
  def __call__(self) -> List[str]:
378
- return self._zones_info.zones
384
+ return self._zones_info.zone_names
379
385
 
380
386
  def valid_name(self, zone_name):
381
387
  """Get a valid zone name.
@@ -491,10 +497,10 @@ class SolutionVariableData:
491
497
  Examples
492
498
  --------
493
499
  >>> solution_variable_data = solver_session.fields.solution_variable_data
494
- >>> sv_t_wall_fluid=solver_session.fields.solution_variable_data.get_data(solution_variable_name="SV_T", domain_name="mixture", zone_names=["fluid", "wall"])
500
+ >>> sv_t_wall_fluid=solver_session.fields.solution_variable_data.get_data(variable_name="SV_T", domain_name="mixture", zone_names=["fluid", "wall"])
495
501
  >>> print(sv_t_wall_fluid.domain)
496
502
  >>> 'mixture'
497
- >>> print(sv_t_wall_fluid.zones)
503
+ >>> print(sv_t_wall_fluid.zone_names)
498
504
  >>> ['fluid', 'wall']
499
505
  >>> fluid_temp = sv_t_wall_fluid['fluid']
500
506
  >>> print(fluid_temp.size)
@@ -507,8 +513,8 @@ class SolutionVariableData:
507
513
  >>> fluid_temp_array =solution_variable_data.create_empty_array("SV_T", "fluid")
508
514
  >>> wall_temp_array[:]= 500
509
515
  >>> fluid_temp_array[:]= 600
510
- >>> zone_names_to_solution_variable_data = {'wall':wall_temp_array, 'fluid':fluid_temp_array}
511
- >>> solution_variable_data.set_data(solution_variable_name="SV_T", domain_name="mixture", zone_names_to_solution_variable_data=zone_names_to_solution_variable_data)
516
+ >>> zone_names_to_data = {'wall':wall_temp_array, 'fluid':fluid_temp_array}
517
+ >>> solution_variable_data.set_data(variable_name="SV_T", domain_name="mixture", zone_names_to_data=zone_names_to_data)
512
518
  """
513
519
 
514
520
  class Data:
@@ -529,7 +535,16 @@ class SolutionVariableData:
529
535
 
530
536
  @property
531
537
  def zones(self):
532
- """Zone name."""
538
+ """Zone names."""
539
+ warnings.warn(
540
+ "'zones' is deprecated, use 'zone_names' instead",
541
+ PyFluentDeprecationWarning,
542
+ )
543
+ return self.zone_names
544
+
545
+ @property
546
+ def zone_names(self):
547
+ """Zone names."""
533
548
  return list(self._data.keys())
534
549
 
535
550
  @property
@@ -568,7 +583,7 @@ class SolutionVariableData:
568
583
 
569
584
  def create_empty_array(
570
585
  self,
571
- solution_variable_name: str,
586
+ variable_name: str,
572
587
  zone_name: str,
573
588
  domain_name: str | None = "mixture",
574
589
  ) -> np.zeros:
@@ -579,20 +594,20 @@ class SolutionVariableData:
579
594
  self._update_solution_variable_info()
580
595
 
581
596
  zones_info = self._solution_variable_info.get_zones_info()
582
- if zone_name in zones_info.zones:
597
+ if zone_name in zones_info.zone_names:
583
598
  solution_variables_info = self._solution_variable_info.get_variables_info(
584
599
  zone_names=[zone_name], domain_name=domain_name
585
600
  )
586
- if solution_variable_name in solution_variables_info.solution_variables:
601
+ if variable_name in solution_variables_info.solution_variables:
587
602
  return np.zeros(
588
603
  zones_info[zone_name].count
589
- * solution_variables_info[solution_variable_name].dimension,
590
- dtype=solution_variables_info[solution_variable_name].field_type,
604
+ * solution_variables_info[variable_name].dimension,
605
+ dtype=solution_variables_info[variable_name].field_type,
591
606
  )
592
607
 
593
608
  def get_data(
594
609
  self,
595
- solution_variable_name: str,
610
+ variable_name: str,
596
611
  zone_names: List[str],
597
612
  domain_name: str | None = "mixture",
598
613
  ) -> Data:
@@ -600,10 +615,10 @@ class SolutionVariableData:
600
615
 
601
616
  Parameters
602
617
  ----------
603
- solution_variable_name : str
604
- Name of the SVAR.
618
+ variable_name : str
619
+ Name of the solution variable.
605
620
  zone_names: List[str]
606
- Zone names list for SVAR data.
621
+ Zone names list for solution variable data.
607
622
  domain_name : str, optional
608
623
  Domain name. The default is ``mixture``.
609
624
 
@@ -619,7 +634,7 @@ class SolutionVariableData:
619
634
  )
620
635
  svars_request.domainId = self._allowed_domain_names.valid_name(domain_name)
621
636
  svars_request.name = self._allowed_solution_variable_names.valid_name(
622
- solution_variable_name,
637
+ variable_name,
623
638
  zone_names,
624
639
  domain_name,
625
640
  )
@@ -637,7 +652,7 @@ class SolutionVariableData:
637
652
 
638
653
  def get_svar_data(
639
654
  self,
640
- svar_name: str,
655
+ variable_name: str,
641
656
  zone_names: List[str],
642
657
  domain_name: str | None = "mixture",
643
658
  ) -> Data:
@@ -647,25 +662,25 @@ class SolutionVariableData:
647
662
  PyFluentDeprecationWarning,
648
663
  )
649
664
  return self.get_data(
650
- solution_variable_name=svar_name,
665
+ variable_name=variable_name,
651
666
  zone_names=zone_names,
652
667
  domain_name=domain_name,
653
668
  )
654
669
 
655
670
  def set_data(
656
671
  self,
657
- solution_variable_name: str,
658
- zone_names_to_solution_variable_data: Dict[str, np.array],
672
+ variable_name: str,
673
+ zone_names_to_data: Dict[str, np.array],
659
674
  domain_name: str | None = "mixture",
660
675
  ) -> None:
661
676
  """Set SVAR data on zones.
662
677
 
663
678
  Parameters
664
679
  ----------
665
- solution_variable_name : str
666
- Name of the SVAR.
667
- zone_names_to_solution_variable_data: Dict[str, np.array]
668
- Dictionary containing zone names for SVAR data.
680
+ variable_name : str
681
+ Name of the solution variable.
682
+ zone_names_to_data: Dict[str, np.array]
683
+ Dictionary containing zone names for solution variable data.
669
684
  domain_name : str, optional
670
685
  Domain name. The default is ``mixture``.
671
686
 
@@ -677,7 +692,7 @@ class SolutionVariableData:
677
692
  domain_id = self._allowed_domain_names.valid_name(domain_name)
678
693
  zone_ids_to_svar_data = {
679
694
  self._allowed_zone_names.valid_name(zone_name): solution_variable_data
680
- for zone_name, solution_variable_data in zone_names_to_solution_variable_data.items()
695
+ for zone_name, solution_variable_data in zone_names_to_data.items()
681
696
  }
682
697
 
683
698
  def generate_set_data_requests():
@@ -686,7 +701,7 @@ class SolutionVariableData:
686
701
  set_data_requests.append(
687
702
  SvarProtoModule.SetSvarDataRequest(
688
703
  header=SvarProtoModule.SvarHeader(
689
- name=solution_variable_name, domainId=domain_id
704
+ name=variable_name, domainId=domain_id
690
705
  )
691
706
  )
692
707
  )
@@ -754,17 +769,17 @@ class SolutionVariableData:
754
769
 
755
770
  def set_svar_data(
756
771
  self,
757
- svar_name: str,
758
- zone_names_to_svar_data: List[str],
772
+ variable_name: str,
773
+ zone_names_to_svar_data: Dict[str, np.array],
759
774
  domain_name: str | None = "mixture",
760
- ) -> Data:
775
+ ) -> None:
761
776
  """Set solution variable data."""
762
777
  warnings.warn(
763
778
  "set_svar_data is deprecated, use set_data instead",
764
779
  PyFluentDeprecationWarning,
765
780
  )
766
781
  return self.set_data(
767
- solution_variable_name=svar_name,
768
- zone_names_to_solution_variable_data=zone_names_to_svar_data,
782
+ variable_name=variable_name,
783
+ zone_names_to_data=zone_names_to_svar_data,
769
784
  domain_name=domain_name,
770
785
  )
@@ -221,36 +221,7 @@ class BaseSession:
221
221
  FieldDataService, self._error_state
222
222
  )
223
223
 
224
- class Fields:
225
- """Container for field and solution variables."""
226
-
227
- def __init__(self, _session):
228
- """Initialize Fields."""
229
- self._is_solution_data_valid = (
230
- _session._app_utilities.is_solution_data_available
231
- )
232
- self.field_info = service_creator("field_info").create(
233
- _session._field_data_service,
234
- self._is_solution_data_valid,
235
- )
236
- self.field_data = service_creator("field_data").create(
237
- _session._field_data_service,
238
- self.field_info,
239
- self._is_solution_data_valid,
240
- _session.scheme,
241
- get_zones_info,
242
- )
243
- self.field_data_streaming = FieldDataStreaming(
244
- _session._fluent_connection._id, _session._field_data_service
245
- )
246
- self.field_data_old = service_creator("field_data_old").create(
247
- _session._field_data_service,
248
- self.field_info,
249
- self._is_solution_data_valid,
250
- _session.scheme,
251
- )
252
-
253
- self.fields = Fields(self)
224
+ self.fields = Fields(self, get_zones_info)
254
225
 
255
226
  self._settings_service = service_creator("settings").create(
256
227
  fluent_connection._channel,
@@ -283,6 +254,7 @@ class BaseSession:
283
254
  """Provides access to Fluent field information."""
284
255
  return self.scheme
285
256
 
257
+ @property
286
258
  @deprecated(version="0.32", reason="Use ``session.is_server_healthy``.")
287
259
  def health_check(self):
288
260
  """Provides access to Health Check service."""
@@ -482,3 +454,37 @@ class BaseSession:
482
454
  "stop_journal",
483
455
  }
484
456
  return sorted(dir_list)
457
+
458
+
459
+ class Fields:
460
+ """Container for field and solution variables."""
461
+
462
+ def __init__(
463
+ self,
464
+ _session: BaseSession,
465
+ get_zones_info: weakref.WeakMethod[Callable[[], list[ZoneInfo]]] | None = None,
466
+ ):
467
+ """Initialize Fields."""
468
+ self._is_solution_data_valid = (
469
+ _session._app_utilities.is_solution_data_available
470
+ )
471
+ self.field_info = service_creator("field_info").create(
472
+ _session._field_data_service,
473
+ self._is_solution_data_valid,
474
+ )
475
+ self.field_data = service_creator("field_data").create(
476
+ _session._field_data_service,
477
+ self.field_info,
478
+ self._is_solution_data_valid,
479
+ _session.scheme,
480
+ get_zones_info,
481
+ )
482
+ self.field_data_streaming = FieldDataStreaming(
483
+ _session._fluent_connection._id, _session._field_data_service
484
+ )
485
+ self.field_data_old = service_creator("field_data_old").create(
486
+ _session._field_data_service,
487
+ self.field_info,
488
+ self._is_solution_data_valid,
489
+ _session.scheme,
490
+ )
@@ -24,7 +24,6 @@
24
24
 
25
25
  import logging
26
26
 
27
- import ansys.fluent.core as pyfluent
28
27
  from ansys.fluent.core.fluent_connection import FluentConnection
29
28
  from ansys.fluent.core.meshing.meshing_workflow import (
30
29
  CreateWorkflow,
@@ -32,9 +31,7 @@ from ansys.fluent.core.meshing.meshing_workflow import (
32
31
  WorkflowMode,
33
32
  name_to_identifier_map,
34
33
  )
35
- from ansys.fluent.core.services.datamodel_se import PyMenuGeneric
36
34
  from ansys.fluent.core.session_shared import (
37
- _CODEGEN_MSG_DATAMODEL,
38
35
  _make_datamodel_module,
39
36
  _make_tui_module,
40
37
  )
@@ -113,27 +110,8 @@ class BaseMeshing:
113
110
  @property
114
111
  def _meshing_utilities_root(self):
115
112
  """Datamodel root of meshing_utilities."""
116
- try:
117
- if self.get_fluent_version() >= FluentVersion.v242:
118
- from ansys.fluent.core import CODEGEN_OUTDIR
119
-
120
- meshing_utilities_module = pyfluent.utils.load_module(
121
- f"meshing_utilities_{self._version}",
122
- CODEGEN_OUTDIR
123
- / f"datamodel_{self._version}"
124
- / "meshing_utilities.py",
125
- )
126
- meshing_utilities_root = meshing_utilities_module.Root(
127
- self._se_service, "MeshingUtilities", []
128
- )
129
- except (ImportError, FileNotFoundError):
130
- datamodel_logger.warning("Generated API not found for MeshingUtilities.")
131
- datamodel_logger.warning(_CODEGEN_MSG_DATAMODEL)
132
- if self.get_fluent_version() >= FluentVersion.v242:
133
- meshing_utilities_root = PyMenuGeneric(
134
- self._se_service, "MeshingUtilities"
135
- )
136
- return meshing_utilities_root
113
+ if self.get_fluent_version() >= FluentVersion.v242:
114
+ return _make_datamodel_module(self, "MeshingUtilities")
137
115
 
138
116
  @property
139
117
  def meshing_utilities(self):
@@ -25,6 +25,7 @@
25
25
  import logging
26
26
 
27
27
  import ansys.fluent.core as pyfluent
28
+ from ansys.fluent.core.pyfluent_warnings import warning_for_fluent_dev_version
28
29
  from ansys.fluent.core.services.datamodel_se import PyMenuGeneric
29
30
  from ansys.fluent.core.services.datamodel_tui import TUIMenu
30
31
 
@@ -52,6 +53,7 @@ def _make_tui_module(session, module_name):
52
53
  f"{module_name}_tui_{session._version}",
53
54
  CODEGEN_OUTDIR / module_name / f"tui_{session._version}.py",
54
55
  )
56
+ warning_for_fluent_dev_version(session._version)
55
57
  return tui_module.main_menu(
56
58
  session._tui_service, session._version, module_name, []
57
59
  )
@@ -63,13 +65,14 @@ def _make_tui_module(session, module_name):
63
65
  def _make_datamodel_module(session, module_name):
64
66
  try:
65
67
  from ansys.fluent.core import CODEGEN_OUTDIR
66
- from ansys.fluent.core.codegen.datamodelgen import meshing_rule_file_names
68
+ from ansys.fluent.core.codegen.datamodelgen import datamodel_file_name_map
67
69
 
68
- file_name = meshing_rule_file_names[module_name]
70
+ file_name = datamodel_file_name_map[module_name]
69
71
  module = pyfluent.utils.load_module(
70
72
  f"{module_name}_{session._version}",
71
73
  CODEGEN_OUTDIR / f"datamodel_{session._version}" / f"{file_name}.py",
72
74
  )
75
+ warning_for_fluent_dev_version(session._version)
73
76
  return module.Root(session._se_service, module_name, [])
74
77
  except (ImportError, FileNotFoundError):
75
78
  datamodel_logger.warning("Generated API not found for %s.", module_name)
@@ -117,6 +117,7 @@ class Solver(BaseSession):
117
117
  event_type=SolverEvent,
118
118
  get_zones_info=weakref.WeakMethod(self._get_zones_info),
119
119
  )
120
+ self._settings = None
120
121
  self._build_from_fluent_connection(fluent_connection, scheme_eval)
121
122
 
122
123
  def _build_from_fluent_connection(
@@ -132,15 +133,6 @@ class Solver(BaseSession):
132
133
  self._system_coupling = None
133
134
  self._fluent_version = None
134
135
  self._bg_session_threads = []
135
-
136
- #: Root settings object.
137
- self.settings = flobject.get_root(
138
- flproxy=self._settings_service,
139
- version=self._version,
140
- interrupt=Solver._interrupt,
141
- file_transfer_service=self._file_transfer_service,
142
- scheme_eval=self.scheme.eval,
143
- )
144
136
  self._solution_variable_service = service_creator("svar").create(
145
137
  fluent_connection._channel, fluent_connection._metadata
146
138
  )
@@ -182,6 +174,20 @@ class Solver(BaseSession):
182
174
  self._solution_variable_service, self.fields.solution_variable_info
183
175
  )
184
176
 
177
+ @property
178
+ def settings(self):
179
+ """Settings root handle."""
180
+ if self._settings is None:
181
+ #: Root settings object.
182
+ self._settings = flobject.get_root(
183
+ flproxy=self._settings_service,
184
+ version=self._version,
185
+ interrupt=Solver._interrupt,
186
+ file_transfer_service=self._file_transfer_service,
187
+ scheme_eval=self.scheme.eval,
188
+ )
189
+ return self._settings
190
+
185
191
  @property
186
192
  def svar_data(self):
187
193
  """``SolutionVariableData`` handle."""
@@ -27,4 +27,4 @@ try:
27
27
  except (ImportError, AttributeError, SyntaxError):
28
28
  pass
29
29
 
30
- from ansys.fluent.core.utils.context_managers import ReadCase, using # noqa: F401
30
+ from ansys.fluent.core.utils.context_managers import using # noqa: F401