luminarycloud 0.15.3__py3-none-any.whl → 0.15.4__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.
Files changed (235) hide show
  1. luminarycloud/__init__.py +1 -0
  2. luminarycloud/_helpers/_create_simulation.py +2 -0
  3. luminarycloud/_helpers/_entity_identifier.py +6 -0
  4. luminarycloud/_helpers/named_variables.py +6 -15
  5. luminarycloud/_helpers/warnings/experimental.py +6 -2
  6. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +77 -55
  7. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +33 -0
  8. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +33 -0
  9. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +10 -0
  10. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +45 -15
  11. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +104 -22
  12. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +12 -12
  13. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +10 -2
  14. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +221 -143
  15. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +154 -7
  16. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +33 -0
  17. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +10 -0
  18. luminarycloud/_proto/assistant/assistant_pb2.py +82 -61
  19. luminarycloud/_proto/assistant/assistant_pb2.pyi +37 -0
  20. luminarycloud/_proto/assistant/assistant_pb2_grpc.py +34 -0
  21. luminarycloud/_proto/assistant/assistant_pb2_grpc.pyi +12 -0
  22. luminarycloud/_proto/client/simulation_pb2.py +349 -309
  23. luminarycloud/_proto/client/simulation_pb2.pyi +97 -2
  24. luminarycloud/_proto/fvm/solver_results_pb2.py +25 -11
  25. luminarycloud/_proto/fvm/solver_results_pb2.pyi +24 -1
  26. luminarycloud/_proto/geometry/geometry_pb2.py +64 -64
  27. luminarycloud/_proto/namedvariableset/namedvariableset_pb2.py +49 -0
  28. luminarycloud/_proto/namedvariableset/namedvariableset_pb2.pyi +53 -0
  29. luminarycloud/_wrapper.py +26 -7
  30. luminarycloud/enum/__init__.py +2 -0
  31. luminarycloud/enum/physics_ai_lifecycle_state.py +30 -0
  32. luminarycloud/enum/quantity_type.py +43 -0
  33. luminarycloud/enum/vis_enums.py +6 -2
  34. luminarycloud/geometry.py +46 -2
  35. luminarycloud/named_variable_set.py +10 -5
  36. luminarycloud/params/enum/_enum_wrappers.py +68 -0
  37. luminarycloud/params/simulation/_lib.py +1 -1
  38. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +5 -6
  39. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +6 -7
  40. luminarycloud/params/simulation/adjoint_.py +3 -4
  41. luminarycloud/params/simulation/basic/gravity/gravity_off_.py +3 -4
  42. luminarycloud/params/simulation/basic/gravity/gravity_on_.py +3 -4
  43. luminarycloud/params/simulation/basic/gravity_.py +3 -4
  44. luminarycloud/params/simulation/body_frame_.py +3 -4
  45. luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +9 -6
  46. luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +9 -6
  47. luminarycloud/params/simulation/entity_relationships_.py +3 -4
  48. luminarycloud/params/simulation/general_.py +3 -4
  49. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +3 -4
  50. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +5 -6
  51. luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +3 -4
  52. luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +5 -6
  53. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +4 -5
  54. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +5 -6
  55. luminarycloud/params/simulation/material/fluid/material_model_.py +3 -4
  56. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +4 -5
  57. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +4 -5
  58. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +3 -4
  59. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +3 -4
  60. luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +4 -5
  61. luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +6 -7
  62. luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +3 -4
  63. luminarycloud/params/simulation/material/fluid/viscosity_model_.py +3 -4
  64. luminarycloud/params/simulation/material/material_fluid_.py +4 -5
  65. luminarycloud/params/simulation/material/material_solid_.py +6 -7
  66. luminarycloud/params/simulation/material_entity_.py +6 -5
  67. luminarycloud/params/simulation/monitor_plane_.py +4 -5
  68. luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +3 -4
  69. luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +3 -4
  70. luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +3 -4
  71. luminarycloud/params/simulation/motion_data/frame_transforms_.py +3 -4
  72. luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +3 -4
  73. luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +3 -4
  74. luminarycloud/params/simulation/motion_data/motion_type_.py +3 -4
  75. luminarycloud/params/simulation/motion_data_.py +3 -4
  76. luminarycloud/params/simulation/multi_physics_coupling_options_.py +3 -4
  77. luminarycloud/params/simulation/output_.py +3 -4
  78. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +3 -4
  79. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +3 -4
  80. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +3 -4
  81. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +5 -6
  82. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +3 -4
  83. luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +3 -4
  84. luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +3 -4
  85. luminarycloud/params/simulation/particle_group/particle_group_type_.py +3 -4
  86. luminarycloud/params/simulation/particle_group_.py +3 -4
  87. luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +4 -5
  88. luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +3 -4
  89. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +9 -10
  90. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +5 -6
  91. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +5 -6
  92. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -5
  93. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -5
  94. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +4 -5
  95. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +5 -6
  96. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +4 -5
  97. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +5 -6
  98. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +4 -5
  99. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +7 -8
  100. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +5 -6
  101. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +3 -4
  102. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +3 -4
  103. luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +3 -4
  104. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +9 -10
  105. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +4 -5
  106. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +4 -5
  107. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +4 -5
  108. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +3 -4
  109. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +4 -5
  110. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +3 -4
  111. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +3 -4
  112. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +3 -4
  113. luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +3 -4
  114. luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +3 -4
  115. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +3 -4
  116. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +5 -6
  117. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +9 -10
  118. luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +3 -4
  119. luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +4 -5
  120. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +3 -4
  121. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +6 -7
  122. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -5
  123. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +4 -5
  124. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +3 -4
  125. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +3 -4
  126. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +3 -4
  127. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +5 -6
  128. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +3 -4
  129. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -5
  130. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +3 -4
  131. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +3 -4
  132. luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +3 -4
  133. luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +4 -5
  134. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +3 -4
  135. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +3 -4
  136. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +4 -5
  137. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +3 -4
  138. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +8 -9
  139. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +3 -4
  140. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +4 -5
  141. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +4 -5
  142. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +3 -4
  143. luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +3 -4
  144. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +3 -4
  145. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +5 -6
  146. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +5 -6
  147. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +4 -5
  148. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +3 -4
  149. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +3 -4
  150. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +8 -9
  151. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +3 -4
  152. luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +4 -5
  153. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +3 -4
  154. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +3 -4
  155. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +3 -4
  156. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +3 -4
  157. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +16 -17
  158. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +3 -4
  159. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +3 -4
  160. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +3 -4
  161. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +15 -16
  162. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +3 -4
  163. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +3 -4
  164. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +3 -4
  165. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +4 -5
  166. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +4 -5
  167. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +4 -5
  168. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +4 -5
  169. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +4 -5
  170. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +3 -4
  171. luminarycloud/params/simulation/physics/fluid/turbulence_.py +5 -6
  172. luminarycloud/params/simulation/physics/fluid_.py +7 -6
  173. luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +3 -4
  174. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +5 -6
  175. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +4 -5
  176. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -5
  177. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +3 -4
  178. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +4 -5
  179. luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +3 -4
  180. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +4 -5
  181. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +4 -5
  182. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +3 -4
  183. luminarycloud/params/simulation/physics/heat/heat_source_.py +3 -4
  184. luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +3 -4
  185. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +4 -5
  186. luminarycloud/params/simulation/physics/heat/initialization_heat_.py +3 -4
  187. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +3 -4
  188. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +3 -4
  189. luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +3 -4
  190. luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +5 -6
  191. luminarycloud/params/simulation/physics/heat_.py +5 -5
  192. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +3 -4
  193. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/translational_periodicity_.py +3 -4
  194. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type_.py +3 -4
  195. luminarycloud/params/simulation/physics/periodic_pair_.py +3 -4
  196. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +3 -4
  197. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +4 -5
  198. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +4 -5
  199. luminarycloud/params/simulation/physics_.py +6 -5
  200. luminarycloud/params/simulation/simulation_param_.py +3 -4
  201. luminarycloud/params/simulation/sliding_interfaces_.py +3 -4
  202. luminarycloud/params/simulation/surface_name_.py +3 -4
  203. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +3 -4
  204. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +3 -4
  205. luminarycloud/params/simulation/time/compute_statistics_.py +3 -4
  206. luminarycloud/params/simulation/time/time_marching/time_explicit_.py +3 -4
  207. luminarycloud/params/simulation/time/time_marching/time_implicit_.py +3 -4
  208. luminarycloud/params/simulation/time/time_marching_.py +3 -4
  209. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +3 -4
  210. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +4 -5
  211. luminarycloud/params/simulation/time/time_step_ramp_.py +3 -4
  212. luminarycloud/params/simulation/time_.py +4 -5
  213. luminarycloud/params/simulation/volume_entity_.py +6 -5
  214. luminarycloud/physics_ai/__init__.py +2 -0
  215. luminarycloud/physics_ai/architectures.py +42 -8
  216. luminarycloud/physics_ai/inference.py +0 -2
  217. luminarycloud/physics_ai/models.py +44 -15
  218. luminarycloud/project.py +54 -3
  219. luminarycloud/simulation_template.py +21 -6
  220. luminarycloud/solution.py +1 -1
  221. luminarycloud/types/__init__.py +2 -0
  222. luminarycloud/types/adfloat.py +50 -8
  223. luminarycloud/types/ids.py +2 -0
  224. luminarycloud/vis/__init__.py +12 -2
  225. luminarycloud/vis/data_extraction.py +546 -0
  226. luminarycloud/vis/display.py +61 -6
  227. luminarycloud/vis/filters.py +183 -42
  228. luminarycloud/vis/interactive_scene.py +1 -0
  229. luminarycloud/vis/primitives.py +38 -0
  230. luminarycloud/vis/vis_util.py +56 -0
  231. luminarycloud/vis/visualization.py +224 -70
  232. {luminarycloud-0.15.3.dist-info → luminarycloud-0.15.4.dist-info}/METADATA +2 -1
  233. {luminarycloud-0.15.3.dist-info → luminarycloud-0.15.4.dist-info}/RECORD +234 -228
  234. luminarycloud/_proto/luminarycloud/luminarycloud_api.pb +0 -0
  235. {luminarycloud-0.15.3.dist-info → luminarycloud-0.15.4.dist-info}/WHEEL +0 -0
@@ -0,0 +1,30 @@
1
+ # Copyright 2025 Luminary Cloud, Inc. All Rights Reserved.
2
+ from enum import IntEnum
3
+ from .._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2 import (
4
+ PhysicsAiLifecycleState as PhysicsAiLifecycleStatePb,
5
+ )
6
+
7
+
8
+ class PhysicsAiLifecycleState(IntEnum):
9
+ """
10
+ Represents the lifecycle state of a Physics AI resource (architecture or model version).
11
+
12
+ Attributes
13
+ ----------
14
+ UNSPECIFIED
15
+ Default value, should not be used in practice.
16
+ DEVELOPMENT
17
+ Not ready for general use.
18
+ ACTIVE
19
+ Available for new training jobs.
20
+ DEPRECATED
21
+ Can still serve inference, but not used for new training.
22
+ RETIRED
23
+ Archived; no training or inference support.
24
+ """
25
+
26
+ UNSPECIFIED = PhysicsAiLifecycleStatePb.LIFECYCLE_STATE_UNSPECIFIED
27
+ DEVELOPMENT = PhysicsAiLifecycleStatePb.LIFECYCLE_STATE_DEVELOPMENT
28
+ ACTIVE = PhysicsAiLifecycleStatePb.LIFECYCLE_STATE_ACTIVE
29
+ DEPRECATED = PhysicsAiLifecycleStatePb.LIFECYCLE_STATE_DEPRECATED
30
+ RETIRED = PhysicsAiLifecycleStatePb.LIFECYCLE_STATE_RETIRED
@@ -2,6 +2,7 @@
2
2
  from enum import IntEnum
3
3
  from .._proto.quantity import quantity_pb2 as quantitypb
4
4
  from .._proto.quantity import quantity_options_pb2 as quantityoptspb
5
+ from luminarycloud.enum.vis_enums import VisQuantity
5
6
 
6
7
 
7
8
  class QuantityType(IntEnum):
@@ -130,6 +131,34 @@ class QuantityType(IntEnum):
130
131
  INNER_ITERATION_COUNT = quantitypb.INNER_ITERATION_COUNT
131
132
  MASS_FLOW = quantitypb.MASS_FLOW
132
133
 
134
+ # Quantities needed for visualization validation
135
+ ABSOLUTE_PRESSURE = quantitypb.ABSOLUTE_PRESSURE
136
+ Q_CRITERION = quantitypb.Q_CRITERION
137
+ WALL_SHEAR_STRESS = quantitypb.WALL_SHEAR_STRESS
138
+ EDDY_VISCOSITY = quantitypb.EDDY_VISCOSITY
139
+ VISCOSITY = quantitypb.VISCOSITY
140
+ SA_VARIABLE = quantitypb.SA_VARIABLE
141
+ TKE = quantitypb.TKE
142
+ OMEGA = quantitypb.OMEGA
143
+ GAMMA = quantitypb.GAMMA
144
+ RE_THETA = quantitypb.RE_THETA
145
+ N_TILDE = quantitypb.N_TILDE
146
+ RE_ROUGHNESS = quantitypb.RE_ROUGHNESS
147
+ MASS_FLUX = quantitypb.MASS_FLUX
148
+ HEAT_FLUX = quantitypb.HEAT_FLUX
149
+ HEAT_TRANSFER_COEFFICIENT = quantitypb.HEAT_TRANSFER_COEFFICIENT
150
+ GRID_VELOCITY = quantitypb.GRID_VELOCITY
151
+ RELATIVE_VELOCITY = quantitypb.RELATIVE_VELOCITY
152
+ RELATIVE_MACH = quantitypb.RELATIVE_MACH
153
+ PRESSURE_COEFFICIENT = quantitypb.PRESSURE_COEFFICIENT
154
+ TOTAL_PRESSURE_COEFFICIENT = quantitypb.TOTAL_PRESSURE_COEFFICIENT
155
+ SKIN_FRICTION_COEFFICIENT = quantitypb.SKIN_FRICTION_COEFFICIENT
156
+ ADJOINT_RE_THETA = quantitypb.ADJOINT_RE_THETA
157
+ ADJOINT_N_TILDE = quantitypb.ADJOINT_N_TILDE
158
+ SENSITIVITY = quantitypb.SENSITIVITY
159
+ NORMAL_SENSITIVITY = quantitypb.NORMAL_SENSITIVITY
160
+ SMOOTHED_NORMAL_SENSITIVITY = quantitypb.SMOOTHED_NORMAL_SENSITIVITY
161
+
133
162
  @classmethod
134
163
  def _is_average(cls, quantity: "QuantityType") -> bool:
135
164
  return quantity._has_tag(quantityoptspb.TAG_ANALYZER_AVERAGE)
@@ -138,6 +167,10 @@ class QuantityType(IntEnum):
138
167
  def _is_force(cls, quantity: "QuantityType") -> bool:
139
168
  return quantity._has_tag(quantityoptspb.TAG_ANALYZER_FORCES)
140
169
 
170
+ @classmethod
171
+ def _from_string(cls, quantity: str) -> "QuantityType":
172
+ return cls[quantity.upper()]
173
+
141
174
  def _has_tag(self, tag: int | str) -> bool:
142
175
  """
143
176
  Check if the QuantityType has a given QuantityTag.
@@ -169,3 +202,13 @@ def _get_quantity_metadata(quantity_type: QuantityType) -> quantityoptspb.Quanti
169
202
  .GetOptions()
170
203
  .Extensions[quantitypb.quantity]
171
204
  )
205
+
206
+
207
+ def _is_vector(quantity: QuantityType | VisQuantity) -> bool:
208
+ """
209
+ Returns True if the quantity is a vector type, False otherwise.
210
+ """
211
+ # Vis quanititys are a subset of QuantityType, so we can cast it.
212
+ q_type = QuantityType(quantity.value)
213
+ meta = _get_quantity_metadata(q_type)
214
+ return meta.size == 3
@@ -90,8 +90,8 @@ class Representation(IntEnum):
90
90
 
91
91
  class FieldComponent(IntEnum):
92
92
  """
93
- Specifies which component of a field is used for visualization.
94
- When using scalars, the X component is the only valid component.
93
+ Specifies which component of a vector field is used for visualization.
94
+ When using scalars, the component is ignored.
95
95
 
96
96
  .. warning:: This feature is experimental and may change or be removed in the future.
97
97
 
@@ -192,6 +192,9 @@ class RenderStatusType(IntEnum):
192
192
  INVALID = vis_pb2.Invalid
193
193
 
194
194
 
195
+ ExtractStatusType = RenderStatusType
196
+
197
+
195
198
  class EntityType(IntEnum):
196
199
  """
197
200
  An enum for specifying the source of an image. When listing extracts,
@@ -282,3 +285,4 @@ class SceneMode(str, Enum):
282
285
 
283
286
  INLINE = "inline"
284
287
  SIDE_PANEL = "side_panel"
288
+ FULLSCREEN = "fullscreen"
luminarycloud/geometry.py CHANGED
@@ -5,11 +5,12 @@ from datetime import datetime
5
5
  import random
6
6
  from uuid import uuid4
7
7
  import time
8
- from typing import Sequence
8
+ from typing import Union, Sequence
9
9
 
10
10
  from typing_extensions import TYPE_CHECKING
11
11
 
12
12
  import luminarycloud as lc
13
+ from luminarycloud._helpers.warnings import experimental
13
14
 
14
15
  from ._client import get_default_client
15
16
  from ._helpers._timestamp_to_datetime import timestamp_to_datetime
@@ -23,8 +24,9 @@ from .params.geometry import (
23
24
  Shape,
24
25
  shapes,
25
26
  )
26
- from .types import Vector3, GeometryFeatureID, ProjectID
27
+ from .types import Vector3, GeometryFeatureID, ProjectID, NamedVariableSetID
27
28
  from .volume_selection import VolumeSelection
29
+ from .named_variable_set import NamedVariableSet, get_named_variable_set
28
30
 
29
31
  if TYPE_CHECKING:
30
32
  from .project import Project
@@ -63,6 +65,23 @@ class Geometry(ProtoWrapperBase):
63
65
  """
64
66
  return lc.get_project(ProjectID(self._proto.project_id))
65
67
 
68
+ def update(self, *, name: str | None = None) -> None:
69
+ """
70
+ Update the geometry.
71
+
72
+ Parameters
73
+ ----------
74
+ name : str, optional
75
+ A new name for the geometry. Will be left unchanged if not provided.
76
+ """
77
+ if name is not None:
78
+ req = geometrypb.UpdateGeometryRequest(
79
+ geometry_id=self.id,
80
+ name=name,
81
+ )
82
+ res = get_default_client().UpdateGeometry(req)
83
+ self._proto = res.geometry
84
+
66
85
  def copy(self, name: str = "") -> "Geometry":
67
86
  """
68
87
  Copy the geometry.
@@ -93,6 +112,31 @@ class Geometry(ProtoWrapperBase):
93
112
  raise TypeError("volumes must be a list")
94
113
  return VolumeSelection(self, volumes)
95
114
 
115
+ @experimental
116
+ def use_named_variable_set(self, named_variable_set: Union[NamedVariableSet, str]) -> None:
117
+ """
118
+ Set the current state of the named variable set for the geometry. The current state of the
119
+ geometry will be recreated using this named variable set and all future modifications
120
+ applied will use this named variable set as it was at the time of the call.
121
+
122
+ Parameters
123
+ ----------
124
+ named_variable_set : NamedVariableSet | str
125
+ The named variable set to use for the geometry. Can be a NamedVariableSet object or a
126
+ named variable set ID.
127
+ """
128
+ version_id = None
129
+ if isinstance(named_variable_set, str):
130
+ version_id = get_named_variable_set(NamedVariableSetID(named_variable_set))._version_id
131
+ else:
132
+ version_id = named_variable_set._version_id
133
+ self._modify(
134
+ modification=gpb.Modification(
135
+ mod_type=gpb.Modification.MODIFICATION_TYPE_UPDATE_NAMED_VARIABLE_SET,
136
+ update_named_variable_set_version_id=version_id,
137
+ )
138
+ )
139
+
96
140
  def add_farfield(self, shape: Shape, propagate_tool_tags: bool = True) -> None:
97
141
  """
98
142
  Create a farfield feature in the geometry.
@@ -9,7 +9,7 @@ from ._proto.api.v0.luminarycloud.named_variable_set import (
9
9
  named_variable_set_pb2 as namedvariablepb,
10
10
  )
11
11
  from ._wrapper import ProtoWrapper, ProtoWrapperBase
12
- from .types import ProjectID, NamedVariableSetID
12
+ from .types import ProjectID, NamedVariableSetID, LcFloat
13
13
 
14
14
 
15
15
  @experimental
@@ -50,7 +50,7 @@ class NamedVariableSet(ProtoWrapperBase):
50
50
  "ID of the project containing this named variable set."
51
51
 
52
52
  _proto: namedvariablepb.NamedVariableSet
53
- _named_variables: dict[str, float | str] | None
53
+ _named_variables: dict[str, LcFloat] | None
54
54
 
55
55
  @property
56
56
  def name(self) -> str:
@@ -69,6 +69,10 @@ class NamedVariableSet(ProtoWrapperBase):
69
69
  def update_time(self) -> datetime:
70
70
  return timestamp_to_datetime(self._proto.update_time)
71
71
 
72
+ @property
73
+ def _version_id(self) -> str:
74
+ return self._proto.version_id
75
+
72
76
  def save(self) -> None:
73
77
  """Save the named variable set."""
74
78
  req = namedvariablepb.UpdateNamedVariableSetRequest(
@@ -92,10 +96,10 @@ class NamedVariableSet(ProtoWrapperBase):
92
96
  req = namedvariablepb.DeleteNamedVariableSetRequest(id=self.id)
93
97
  get_default_client().DeleteNamedVariableSet(req)
94
98
 
95
- def __getitem__(self, key: str) -> float | str:
99
+ def __getitem__(self, key: str) -> LcFloat:
96
100
  return self._get_named_variables()[key]
97
101
 
98
- def __setitem__(self, key: str, value: float | str) -> None:
102
+ def __setitem__(self, key: str, value: LcFloat) -> None:
99
103
  self._get_named_variables()[key] = value
100
104
 
101
105
  def __delitem__(self, key: str) -> None:
@@ -107,7 +111,7 @@ class NamedVariableSet(ProtoWrapperBase):
107
111
  def __len__(self) -> int:
108
112
  return len(self._get_named_variables())
109
113
 
110
- def _get_named_variables(self) -> dict[str, float | str]:
114
+ def _get_named_variables(self) -> dict[str, LcFloat]:
111
115
  if getattr(self, "_named_variables", None) is None:
112
116
  named_variables_dict = dict(self._proto.named_variables)
113
117
  self._named_variables = _named_variables_from_proto(named_variables_dict)
@@ -115,6 +119,7 @@ class NamedVariableSet(ProtoWrapperBase):
115
119
  return self._named_variables
116
120
 
117
121
 
122
+ @experimental
118
123
  def get_named_variable_set(id: NamedVariableSetID) -> NamedVariableSet:
119
124
  """
120
125
  Retrieve a specific named variable set by ID.
@@ -5,6 +5,30 @@ from enum import IntEnum as _IntEnum
5
5
  from luminarycloud._proto.client import simulation_pb2 as _clientpb
6
6
 
7
7
 
8
+ class HeatFluxConvention(_IntEnum):
9
+ """
10
+ Convention for the direction of positive heat flux.
11
+
12
+ Attributes
13
+ ----------
14
+ CONVENTION_HEAT_FLUX_OUT
15
+ Heat leaving the domain is positive.
16
+ CONVENTION_HEAT_FLUX_IN
17
+ Heat entering the domain is positive
18
+
19
+
20
+ Examples
21
+ --------
22
+ >>> from luminarycloud.params.enum import HeatFluxConvention
23
+ >>> HeatFluxConvention.CONVENTION_HEAT_FLUX_OUT
24
+ >>> HeatFluxConvention.CONVENTION_HEAT_FLUX_IN
25
+ """
26
+
27
+ INVALID = _clientpb.INVALID_HEAT_FLUX_CONVENTION
28
+ CONVENTION_HEAT_FLUX_OUT = _clientpb.CONVENTION_HEAT_FLUX_OUT
29
+ CONVENTION_HEAT_FLUX_IN = _clientpb.CONVENTION_HEAT_FLUX_IN
30
+
31
+
8
32
  class UnitSystem(_IntEnum):
9
33
  """
10
34
  Collection of units used for all quantities.
@@ -610,6 +634,26 @@ class FlowBehavior(_IntEnum):
610
634
  TRANSIENT = _clientpb.TRANSIENT
611
635
 
612
636
 
637
+ class NonlinearControlMethod(_IntEnum):
638
+ """
639
+ The method used to determine 'input' such that 'output'('input') = 'target'.
640
+
641
+ Attributes
642
+ ----------
643
+ CONTROL_METHOD_SECANT
644
+ Use the secant method to solve the equations.
645
+
646
+
647
+ Examples
648
+ --------
649
+ >>> from luminarycloud.params.enum import NonlinearControlMethod
650
+ >>> NonlinearControlMethod.CONTROL_METHOD_SECANT
651
+ """
652
+
653
+ INVALID = _clientpb.INVALID_NONLINEAR_CONTROL_METHOD
654
+ CONTROL_METHOD_SECANT = _clientpb.CONTROL_METHOD_SECANT
655
+
656
+
613
657
  class TimeImplicitOrder(_IntEnum):
614
658
  """
615
659
  Temporal order of accuracy of the dual time stepping scheme for time-accurate integration.
@@ -751,6 +795,30 @@ class DebugOutputInteriorSurfaceData(_IntEnum):
751
795
  SOLN_DEBUG_OUTPUT_INT_SURF_DATA_ON = _clientpb.SOLN_DEBUG_OUTPUT_INT_SURF_DATA_ON
752
796
 
753
797
 
798
+ class ReferenceType(_IntEnum):
799
+ """
800
+ Method of specification for the reference values used in force and moment computations.
801
+
802
+ Attributes
803
+ ----------
804
+ PRESCRIBE_VALUES
805
+ User-defined force reference values.
806
+ REFERENCE_FARFIELD_VALUES
807
+ Force reference values from the farfield conditions.
808
+
809
+
810
+ Examples
811
+ --------
812
+ >>> from luminarycloud.params.enum import ReferenceType
813
+ >>> ReferenceType.PRESCRIBE_VALUES
814
+ >>> ReferenceType.REFERENCE_FARFIELD_VALUES
815
+ """
816
+
817
+ INVALID = _clientpb.INVALID_REFERENCE_TYPE
818
+ PRESCRIBE_VALUES = _clientpb.PRESCRIBE_VALUES
819
+ REFERENCE_FARFIELD_VALUES = _clientpb.REFERENCE_FARFIELD_VALUES
820
+
821
+
754
822
  class MeshingMethod(_IntEnum):
755
823
  """
756
824
  The method to generate the computational mesh.
@@ -6,7 +6,7 @@ from typing import Any, TypeVar, Generic, Type
6
6
  from uuid import uuid4
7
7
 
8
8
  from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
- from luminarycloud.types import Vector3
9
+ from luminarycloud.types import Vector3, LcFloat
10
10
  from luminarycloud._proto.client import simulation_pb2 as clientpb
11
11
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
12
12
  import luminarycloud.params.enum._enum_wrappers as enum
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -25,9 +24,9 @@ class BoundaryLayerProfile(CodeRepr, ParamGroupWrapper[clientpb.BoundaryLayerPro
25
24
 
26
25
  n_layers: int = 40
27
26
  "Maximum number of prism layers within a boundary layer mesh."
28
- initial_size: float = 1e-06
27
+ initial_size: LcFloat = 1e-06
29
28
  "Size of the mesh layer nearest the boundary surface in meters."
30
- growth_rate: float = 1.2
29
+ growth_rate: LcFloat = 1.2
31
30
  "Ratio of size between 2 successive boundary mesh layers."
32
31
  surfaces: list[str] = field(default_factory=list)
33
32
  ""
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -34,15 +33,15 @@ class AdaptiveMeshRefinement(CodeRepr, ParamGroupWrapper[clientpb.AdaptiveMeshRe
34
33
  "Number of solver iterations to perform before dispatching refinement."
35
34
  max_refinement_interval: int = 0
36
35
  "Maximum number of solver iterations to perform before waiting for refinement to complete."
37
- initial_target_complexity: float = 0
36
+ initial_target_complexity: LcFloat = 0
38
37
  "Target Complexity on the first refinement iteration."
39
- final_target_complexity: float = 0
38
+ final_target_complexity: LcFloat = 0
40
39
  "Target Complexity on the final refinement iteration."
41
40
  meshing_method: enum.MeshingMethod = enum.MeshingMethod.MESH_METHOD_MANUAL
42
41
  "The method to generate the computational mesh."
43
42
  target_cv_millions: int = 10
44
43
  "User-requested mesh size in millions of control volumes."
45
- user_scaling: float = 1.0
44
+ user_scaling: LcFloat = 1.0
46
45
  "Scale factor between the geometry and the mesh."
47
46
  boundary_layer_profile: list[BoundaryLayerProfile] = field(default_factory=list)
48
47
  ""
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -23,9 +22,13 @@ from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_uniqu
23
22
  class VolumeMaterialRelationship(CodeRepr, ParamGroupWrapper[clientpb.VolumeMaterialRelationship]):
24
23
  """Tracks volume entity(1) -> material entity(1) relationship."""
25
24
 
26
- volume_identifier: EntityIdentifier | None = None
25
+ volume_identifier: EntityIdentifier = field(
26
+ default_factory=_create_entity_identifier, init=True
27
+ )
27
28
  "Unique identifier for a volume entity."
28
- material_identifier: EntityIdentifier | None = None
29
+ material_identifier: EntityIdentifier = field(
30
+ default_factory=_create_entity_identifier, init=True
31
+ )
29
32
  "Unique identifier for a material entity."
30
33
 
31
34
  def _to_proto(self) -> clientpb.VolumeMaterialRelationship:
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -23,9 +22,13 @@ from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_uniqu
23
22
  class VolumePhysicsRelationship(CodeRepr, ParamGroupWrapper[clientpb.VolumePhysicsRelationship]):
24
23
  """Tracks volume entity(1) -> physics entity(1) relationship."""
25
24
 
26
- volume_identifier: EntityIdentifier | None = None
25
+ volume_identifier: EntityIdentifier = field(
26
+ default_factory=_create_entity_identifier, init=True
27
+ )
27
28
  "Unique identifier for a volume entity."
28
- physics_identifier: EntityIdentifier | None = None
29
+ physics_identifier: EntityIdentifier = field(
30
+ default_factory=_create_entity_identifier, init=True
31
+ )
29
32
  "Unique identifier for a physics entity."
30
33
 
31
34
  def _to_proto(self) -> clientpb.VolumePhysicsRelationship:
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -5,12 +5,11 @@ from dataclasses import dataclass, field
5
5
  from typing import Any
6
6
  from uuid import uuid4
7
7
 
8
- from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
9
8
  from google.protobuf.message import Message as _Message
10
-
11
- from luminarycloud.tables import RectilinearTable
12
- from luminarycloud.types import Vector3
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
13
11
  from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
14
13
  from luminarycloud._proto.client import simulation_pb2 as clientpb
15
14
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
15
  from luminarycloud._helpers import CodeRepr
@@ -28,7 +27,7 @@ from luminarycloud.params.simulation.material.fluid.boussinesq_approximation_ im
28
27
  class BoussinesqOn(BoussinesqApproximation):
29
28
  """Enable Boussinesq approximation."""
30
29
 
31
- reference_temperature: float = 288.15
30
+ reference_temperature: LcFloat = 288.15
32
31
  "Temperature at which there is no effect from the Boussinesq approximation (i.e. no change in density)."
33
- thermal_expansion_coefficient: float = 0.0035
32
+ thermal_expansion_coefficient: LcFloat = 0.0035
34
33
  "Volumetric expansion due to temperature."