ansys-fluent-core 0.14.dev0__py3-none-any.whl → 0.14.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ansys-fluent-core might be problematic. Click here for more details.

Files changed (80) hide show
  1. ansys/fluent/core/__init__.py +12 -12
  2. ansys/fluent/core/_version.py +1 -1
  3. ansys/fluent/core/docs/README.rst +26 -26
  4. ansys/fluent/core/examples/downloads.py +28 -16
  5. ansys/fluent/core/filereader/case_file.py +20 -11
  6. ansys/fluent/core/fluent_connection.py +21 -1
  7. ansys/fluent/core/launcher/fluent_container.py +1 -1
  8. ansys/fluent/core/launcher/fluent_launcher_options.json +10 -0
  9. ansys/fluent/core/launcher/launcher.py +29 -15
  10. ansys/fluent/core/meshing/tui_231.py +7642 -7642
  11. ansys/fluent/core/services/datamodel_se.py +142 -110
  12. ansys/fluent/core/services/field_data.py +278 -29
  13. ansys/fluent/core/services/meshing_queries.py +1795 -0
  14. ansys/fluent/core/services/settings.py +1 -1
  15. ansys/fluent/core/services/svar.py +606 -0
  16. ansys/fluent/core/session_pure_meshing.py +4 -5
  17. ansys/fluent/core/solver/flobject.py +59 -2
  18. ansys/fluent/core/solver/settings_222/change_type.py +1 -1
  19. ansys/fluent/core/solver/settings_222/clear_generated_data.py +1 -1
  20. ansys/fluent/core/solver/settings_222/compute_2.py +1 -1
  21. ansys/fluent/core/solver/settings_222/delete_design_points.py +1 -1
  22. ansys/fluent/core/solver/settings_222/position_1.py +1 -1
  23. ansys/fluent/core/solver/settings_222/setup_unsteady_statistics.py +1 -1
  24. ansys/fluent/core/solver/settings_222/target.py +1 -1
  25. ansys/fluent/core/solver/settings_222/up_vector.py +1 -1
  26. ansys/fluent/core/solver/settings_222/update_selected.py +1 -1
  27. ansys/fluent/core/solver/settings_222/write_1.py +1 -1
  28. ansys/fluent/core/solver/settings_222/write_views.py +1 -1
  29. ansys/fluent/core/solver/settings_231/abaqus.py +2 -2
  30. ansys/fluent/core/solver/settings_231/activate_cell_zone.py +1 -1
  31. ansys/fluent/core/solver/settings_231/calculate_patch.py +2 -2
  32. ansys/fluent/core/solver/settings_231/change_type.py +1 -1
  33. ansys/fluent/core/solver/settings_231/clear_generated_data.py +1 -1
  34. ansys/fluent/core/solver/settings_231/compute_1.py +1 -1
  35. ansys/fluent/core/solver/settings_231/convert_skewed_cells_1.py +1 -1
  36. ansys/fluent/core/solver/settings_231/custom_heat_flux.py +1 -1
  37. ansys/fluent/core/solver/settings_231/customize_fmg_initialization.py +2 -2
  38. ansys/fluent/core/solver/settings_231/delete_design_points.py +1 -1
  39. ansys/fluent/core/solver/settings_231/export_1.py +1 -1
  40. ansys/fluent/core/solver/settings_231/export_modifications.py +1 -1
  41. ansys/fluent/core/solver/settings_231/film_heat_transfer.py +1 -1
  42. ansys/fluent/core/solver/settings_231/film_mass_flow.py +1 -1
  43. ansys/fluent/core/solver/settings_231/forces.py +4 -4
  44. ansys/fluent/core/solver/settings_231/heat_transfer_1.py +1 -1
  45. ansys/fluent/core/solver/settings_231/heat_transfer_sensible.py +1 -1
  46. ansys/fluent/core/solver/settings_231/mass_flow_1.py +1 -1
  47. ansys/fluent/core/solver/settings_231/mechanical_apdl.py +1 -1
  48. ansys/fluent/core/solver/settings_231/mechanical_apdl_input.py +2 -2
  49. ansys/fluent/core/solver/settings_231/modified_setting.py +1 -1
  50. ansys/fluent/core/solver/settings_231/moments.py +2 -2
  51. ansys/fluent/core/solver/settings_231/number_density.py +2 -2
  52. ansys/fluent/core/solver/settings_231/particle_summary.py +1 -1
  53. ansys/fluent/core/solver/settings_231/position_1.py +1 -1
  54. ansys/fluent/core/solver/settings_231/pressure_work_1.py +1 -1
  55. ansys/fluent/core/solver/settings_231/print_histogram.py +1 -1
  56. ansys/fluent/core/solver/settings_231/projected_surface_area.py +2 -2
  57. ansys/fluent/core/solver/settings_231/rad_heat_trans.py +1 -1
  58. ansys/fluent/core/solver/settings_231/read_journal.py +1 -1
  59. ansys/fluent/core/solver/settings_231/rotate.py +2 -2
  60. ansys/fluent/core/solver/settings_231/sample_1.py +4 -4
  61. ansys/fluent/core/solver/settings_231/set_ambient_color.py +1 -1
  62. ansys/fluent/core/solver/settings_231/set_light.py +2 -2
  63. ansys/fluent/core/solver/settings_231/setup_unsteady_statistics.py +1 -1
  64. ansys/fluent/core/solver/settings_231/surface_integrals.py +1 -1
  65. ansys/fluent/core/solver/settings_231/taitherm.py +1 -1
  66. ansys/fluent/core/solver/settings_231/target.py +1 -1
  67. ansys/fluent/core/solver/settings_231/translate.py +1 -1
  68. ansys/fluent/core/solver/settings_231/up_vector.py +1 -1
  69. ansys/fluent/core/solver/settings_231/update_selected.py +1 -1
  70. ansys/fluent/core/solver/settings_231/viscous_work.py +1 -1
  71. ansys/fluent/core/solver/settings_231/volume_integrals.py +1 -1
  72. ansys/fluent/core/solver/settings_231/write_1.py +1 -1
  73. ansys/fluent/core/solver/settings_231/write_histogram.py +1 -1
  74. ansys/fluent/core/solver/settings_231/write_views.py +1 -1
  75. ansys/fluent/core/solver/tui_231.py +36423 -36423
  76. {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/METADATA +30 -30
  77. {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/RECORD +80 -78
  78. {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/LICENSE +0 -0
  79. {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/WHEEL +0 -0
  80. {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
1
  """Wrappers over StateEngine based datamodel gRPC service of Fluent."""
2
2
  from enum import Enum
3
+ import functools
3
4
  import itertools
4
5
  import logging
5
6
  from typing import Any, Callable, Dict, Iterator, List, Tuple, Type
@@ -10,6 +11,7 @@ import grpc
10
11
  from ansys.api.fluent.v0 import datamodel_se_pb2 as DataModelProtoModule
11
12
  from ansys.api.fluent.v0 import datamodel_se_pb2_grpc as DataModelGrpcModule
12
13
  from ansys.api.fluent.v0.variant_pb2 import Variant
14
+ import ansys.fluent.core as pyfluent
13
15
  from ansys.fluent.core.data_model_cache import DataModelCache
14
16
  from ansys.fluent.core.services.error_handler import catch_grpc_error
15
17
  from ansys.fluent.core.services.interceptors import BatchInterceptor, TracingInterceptor
@@ -273,6 +275,42 @@ class PyCallableStateObject:
273
275
  return self.get_state()
274
276
 
275
277
 
278
+ class EventSubscription:
279
+ """EventSubscription class for any datamodel event."""
280
+
281
+ def __init__(
282
+ self,
283
+ service: DatamodelService,
284
+ request: DataModelProtoModule.SubscribeEventsRequest,
285
+ ):
286
+ """Subscribe to a datamodel event."""
287
+ self._service = service
288
+ response = service.subscribe_events(request)
289
+ response = response.response[0]
290
+ if response.status != DataModelProtoModule.STATUS_SUBSCRIBED:
291
+ raise RuntimeError(f"Failed to subscribe event: {request}!")
292
+ self.status = response.status
293
+ self.tag = response.tag
294
+ self._service.events[self.tag] = self
295
+
296
+ def unsubscribe(self):
297
+ """Unsubscribe the datamodel event."""
298
+ if self.status == DataModelProtoModule.STATUS_SUBSCRIBED:
299
+ self._service.event_streaming.unregister_callback(self.tag)
300
+ request = DataModelProtoModule.UnsubscribeEventsRequest()
301
+ request.tag.append(self.tag)
302
+ response = self._service.unsubscribe_events(request)
303
+ response = response.response[0]
304
+ if response.status != DataModelProtoModule.STATUS_UNSUBSCRIBED:
305
+ raise RuntimeError(f"Failed to unsubscribe event: {request}!")
306
+ self.status = response.status
307
+ self._service.events.pop(self.tag, None)
308
+
309
+ def __del__(self):
310
+ """Unsubscribe the datamodel event."""
311
+ self.unsubscribe()
312
+
313
+
276
314
  class PyStateContainer(PyCallableStateObject):
277
315
  """Object class using StateEngine based DatamodelService as backend. Use
278
316
  this class instead of directly calling DatamodelService's method.
@@ -306,6 +344,7 @@ class PyStateContainer(PyCallableStateObject):
306
344
  self.path = []
307
345
  else:
308
346
  self.path = path
347
+ self.cached_attrs = {}
309
348
 
310
349
  docstring = None
311
350
 
@@ -337,6 +376,28 @@ class PyStateContainer(PyCallableStateObject):
337
376
 
338
377
  setState = set_state
339
378
 
379
+ def _get_remote_attr(self, attrib: str) -> Any:
380
+ request = DataModelProtoModule.GetAttributeValueRequest()
381
+ request.rules = self.rules
382
+ request.path = convert_path_to_se_path(self.path)
383
+ request.attribute = attrib
384
+ response = self.service.get_attribute_value(request)
385
+ return _convert_variant_to_value(response.result)
386
+
387
+ def _get_cached_attr(self, attrib: str) -> Any:
388
+ cached_val = self.cached_attrs.get(attrib)
389
+ if cached_val is None:
390
+ cached_val = self._get_remote_attr(attrib)
391
+ try: # will fail for Fluent 23.1 or before
392
+ self.add_on_attribute_changed(
393
+ attrib,
394
+ functools.partial(dict.__setitem__, self.cached_attrs, attrib),
395
+ )
396
+ self.cached_attrs[attrib] = cached_val
397
+ except Exception:
398
+ pass
399
+ return cached_val
400
+
340
401
  def get_attr(self, attrib: str) -> Any:
341
402
  """Get attribute value of the current object.
342
403
 
@@ -350,12 +411,9 @@ class PyStateContainer(PyCallableStateObject):
350
411
  Any
351
412
  Value of the attribute.
352
413
  """
353
- request = DataModelProtoModule.GetAttributeValueRequest()
354
- request.rules = self.rules
355
- request.path = convert_path_to_se_path(self.path)
356
- request.attribute = attrib
357
- response = self.service.get_attribute_value(request)
358
- return _convert_variant_to_value(response.result)
414
+ if pyfluent.DATAMODEL_USE_ATTR_CACHE:
415
+ return self._get_cached_attr(attrib)
416
+ return self._get_remote_attr(attrib)
359
417
 
360
418
  getAttribValue = get_attr
361
419
 
@@ -388,41 +446,58 @@ class PyStateContainer(PyCallableStateObject):
388
446
 
389
447
  docstring = None
390
448
 
449
+ def add_on_attribute_changed(
450
+ self, attribute: str, cb: Callable
451
+ ) -> EventSubscription:
452
+ """Register a callback for when an attribute is changed
391
453
 
392
- class EventSubscription:
393
- """EventSubscription class for any datamodel event."""
454
+ Parameters
455
+ ----------
456
+ attribute : str
457
+ attribute name
458
+ cb : Callable
459
+ Callback function
394
460
 
395
- def __init__(
396
- self,
397
- service: DatamodelService,
398
- request: DataModelProtoModule.SubscribeEventsRequest,
399
- ):
400
- """Subscribe to a datamodel event."""
401
- self._service = service
402
- response = service.subscribe_events(request)
403
- response = response.response[0]
404
- if response.status != DataModelProtoModule.STATUS_SUBSCRIBED:
405
- raise RuntimeError(f"Failed to subscribe event: {request}!")
406
- self.status = response.status
407
- self.tag = response.tag
408
- self._service.events[self.tag] = self
461
+ Returns
462
+ -------
463
+ EventSubscription
464
+ EventSubscription instance which can be used to unregister the callback
465
+ """
466
+ request = DataModelProtoModule.SubscribeEventsRequest()
467
+ e = request.eventrequest.add(rules=self.rules)
468
+ e.attributeChangedEventRequest.path = convert_path_to_se_path(self.path)
469
+ e.attributeChangedEventRequest.attribute = attribute
470
+ subscription = EventSubscription(self.service, request)
471
+ self.service.event_streaming.register_callback(subscription.tag, self, cb)
472
+ return subscription
409
473
 
410
- def unsubscribe(self):
411
- """Unsubscribe the datamodel event."""
412
- if self.status == DataModelProtoModule.STATUS_SUBSCRIBED:
413
- self._service.event_streaming.unregister_callback(self.tag)
414
- request = DataModelProtoModule.UnsubscribeEventsRequest()
415
- request.tag.append(self.tag)
416
- response = self._service.unsubscribe_events(request)
417
- response = response.response[0]
418
- if response.status != DataModelProtoModule.STATUS_UNSUBSCRIBED:
419
- raise RuntimeError(f"Failed to unsubscribe event: {request}!")
420
- self.status = response.status
421
- self._service.events.pop(self.tag, None)
474
+ def add_on_command_attribute_changed(
475
+ self, command: str, attribute: str, cb: Callable
476
+ ) -> EventSubscription:
477
+ """Register a callback for when an attribute is changed
422
478
 
423
- def __del__(self):
424
- """Unsubscribe the datamodel event."""
425
- self.unsubscribe()
479
+ Parameters
480
+ ----------
481
+ command : str
482
+ command name
483
+ attribute : str
484
+ attribute name
485
+ cb : Callable
486
+ Callback function
487
+
488
+ Returns
489
+ -------
490
+ EventSubscription
491
+ EventSubscription instance which can be used to unregister the callback
492
+ """
493
+ request = DataModelProtoModule.SubscribeEventsRequest()
494
+ e = request.eventrequest.add(rules=self.rules)
495
+ e.commandAttributeChangedEventRequest.path = convert_path_to_se_path(self.path)
496
+ e.commandAttributeChangedEventRequest.command = command
497
+ e.commandAttributeChangedEventRequest.attribute = attribute
498
+ subscription = EventSubscription(self.service, request)
499
+ self.service.event_streaming.register_callback(subscription.tag, self, cb)
500
+ return subscription
426
501
 
427
502
 
428
503
  class PyMenu(PyStateContainer):
@@ -539,8 +614,8 @@ class PyMenu(PyStateContainer):
539
614
  self.service.event_streaming.register_callback(subscription.tag, self, cb)
540
615
  return subscription
541
616
 
542
- def add_on_changed(self, cb: Callable) -> EventSubscription:
543
- """Register a callback for when the object is modified.
617
+ def add_on_deleted(self, cb: Callable) -> EventSubscription:
618
+ """Register a callback for when the object is deleted.
544
619
 
545
620
  Parameters
546
621
  ----------
@@ -554,13 +629,13 @@ class PyMenu(PyStateContainer):
554
629
  """
555
630
  request = DataModelProtoModule.SubscribeEventsRequest()
556
631
  e = request.eventrequest.add(rules=self.rules)
557
- e.modifiedEventRequest.path = convert_path_to_se_path(self.path)
632
+ e.deletedEventRequest.path = convert_path_to_se_path(self.path)
558
633
  subscription = EventSubscription(self.service, request)
559
634
  self.service.event_streaming.register_callback(subscription.tag, self, cb)
560
635
  return subscription
561
636
 
562
- def add_on_affected(self, cb: Callable) -> EventSubscription:
563
- """Register a callback for when the object is affected.
637
+ def add_on_changed(self, cb: Callable) -> EventSubscription:
638
+ """Register a callback for when the object is modified.
564
639
 
565
640
  Parameters
566
641
  ----------
@@ -574,20 +649,16 @@ class PyMenu(PyStateContainer):
574
649
  """
575
650
  request = DataModelProtoModule.SubscribeEventsRequest()
576
651
  e = request.eventrequest.add(rules=self.rules)
577
- e.affectedEventRequest.path = convert_path_to_se_path(self.path)
652
+ e.modifiedEventRequest.path = convert_path_to_se_path(self.path)
578
653
  subscription = EventSubscription(self.service, request)
579
654
  self.service.event_streaming.register_callback(subscription.tag, self, cb)
580
655
  return subscription
581
656
 
582
- def add_on_affected_at_type_path(
583
- self, child_type: str, cb: Callable
584
- ) -> EventSubscription:
585
- """Register a callback for when the object is affected at child type
657
+ def add_on_affected(self, cb: Callable) -> EventSubscription:
658
+ """Register a callback for when the object is affected.
586
659
 
587
660
  Parameters
588
661
  ----------
589
- child_type : str
590
- child type
591
662
  cb : Callable
592
663
  Callback function
593
664
 
@@ -599,47 +670,19 @@ class PyMenu(PyStateContainer):
599
670
  request = DataModelProtoModule.SubscribeEventsRequest()
600
671
  e = request.eventrequest.add(rules=self.rules)
601
672
  e.affectedEventRequest.path = convert_path_to_se_path(self.path)
602
- e.affectedEventRequest.subtype = child_type
603
- subscription = EventSubscription(self.service, request)
604
- self.service.event_streaming.register_callback(subscription.tag, self, cb)
605
- return subscription
606
-
607
- def add_on_attribute_changed(
608
- self, attribute: str, cb: Callable
609
- ) -> EventSubscription:
610
- """Register a callback for when an attribute is changed
611
-
612
- Parameters
613
- ----------
614
- attribute : str
615
- attribute name
616
- cb : Callable
617
- Callback function
618
-
619
- Returns
620
- -------
621
- EventSubscription
622
- EventSubscription instance which can be used to unregister the callback
623
- """
624
- request = DataModelProtoModule.SubscribeEventsRequest()
625
- e = request.eventrequest.add(rules=self.rules)
626
- e.attributeChangedEventRequest.path = convert_path_to_se_path(self.path)
627
- e.attributeChangedEventRequest.attribute = attribute
628
673
  subscription = EventSubscription(self.service, request)
629
674
  self.service.event_streaming.register_callback(subscription.tag, self, cb)
630
675
  return subscription
631
676
 
632
- def add_on_command_attribute_changed(
633
- self, command: str, attribute: str, cb: Callable
677
+ def add_on_affected_at_type_path(
678
+ self, child_type: str, cb: Callable
634
679
  ) -> EventSubscription:
635
- """Register a callback for when an attribute is changed
680
+ """Register a callback for when the object is affected at child type
636
681
 
637
682
  Parameters
638
683
  ----------
639
- command : str
640
- command name
641
- attribute : str
642
- attribute name
684
+ child_type : str
685
+ child type
643
686
  cb : Callable
644
687
  Callback function
645
688
 
@@ -650,9 +693,8 @@ class PyMenu(PyStateContainer):
650
693
  """
651
694
  request = DataModelProtoModule.SubscribeEventsRequest()
652
695
  e = request.eventrequest.add(rules=self.rules)
653
- e.commandAttributeChangedEventRequest.path = convert_path_to_se_path(self.path)
654
- e.commandAttributeChangedEventRequest.command = command
655
- e.commandAttributeChangedEventRequest.attribute = attribute
696
+ e.affectedEventRequest.path = convert_path_to_se_path(self.path)
697
+ e.affectedEventRequest.subtype = child_type
656
698
  subscription = EventSubscription(self.service, request)
657
699
  self.service.event_streaming.register_callback(subscription.tag, self, cb)
658
700
  return subscription
@@ -712,31 +754,6 @@ class PyParameter(PyStateContainer):
712
754
  self.service.event_streaming.register_callback(subscription.tag, self, cb)
713
755
  return subscription
714
756
 
715
- def add_on_attribute_changed(
716
- self, attribute: str, cb: Callable
717
- ) -> EventSubscription:
718
- """Register a callback for when an attribute is changed
719
-
720
- Parameters
721
- ----------
722
- attribute : str
723
- attribute name
724
- cb : Callable
725
- Callback function
726
-
727
- Returns
728
- -------
729
- EventSubscription
730
- EventSubscription instance which can be used to unregister the callback
731
- """
732
- request = DataModelProtoModule.SubscribeEventsRequest()
733
- e = request.eventrequest.add(rules=self.rules)
734
- e.attributeChangedEventRequest.path = convert_path_to_se_path(self.path)
735
- e.attributeChangedEventRequest.attribute = attribute
736
- subscription = EventSubscription(self.service, request)
737
- self.service.event_streaming.register_callback(subscription.tag, self, cb)
738
- return subscription
739
-
740
757
 
741
758
  def _bool_value_if_none(val, default):
742
759
  if isinstance(val, bool) or val is None:
@@ -1145,6 +1162,21 @@ class PyCommandArguments(PyStateContainer):
1145
1162
  py_class = mode.value[1]
1146
1163
  return py_class(self, attr, self.service, self.rules, self.path, arg)
1147
1164
 
1165
+ def get_attr(self, attrib: str) -> Any:
1166
+ """Get attribute value of the current object.
1167
+
1168
+ Parameters
1169
+ ----------
1170
+ attrib : str
1171
+ Name of the attribute.
1172
+
1173
+ Returns
1174
+ -------
1175
+ Any
1176
+ Value of the attribute.
1177
+ """
1178
+ return self._get_remote_attr(attrib)
1179
+
1148
1180
 
1149
1181
  class PyTextualCommandArgumentsSubItem(PyCommandArgumentsSubItem, PyTextual):
1150
1182
  """Class representing textual command argument in datamodel."""