luminarycloud 0.22.3__py3-none-any.whl → 0.23.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.
Files changed (258) hide show
  1. luminarycloud/__init__.py +9 -3
  2. luminarycloud/_client/client.py +1 -1
  3. luminarycloud/_helpers/_code_representation.py +1 -0
  4. luminarycloud/_helpers/_create_simulation.py +5 -1
  5. luminarycloud/_helpers/proto_decorator.py +46 -38
  6. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +214 -137
  7. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +152 -0
  8. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
  9. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +40 -0
  10. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +137 -63
  11. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +166 -6
  12. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +68 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +24 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +94 -71
  15. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +46 -0
  16. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +35 -0
  17. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +16 -0
  18. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -3
  19. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +32 -0
  20. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +34 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +12 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +68 -21
  23. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +119 -0
  24. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +33 -0
  25. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +10 -0
  26. luminarycloud/_proto/client/simulation_pb2.py +409 -348
  27. luminarycloud/_proto/client/simulation_pb2.pyi +188 -27
  28. luminarycloud/_proto/clusterconfig/clusterconfig_pb2.py +273 -0
  29. luminarycloud/_proto/clusterconfig/clusterconfig_pb2.pyi +808 -0
  30. luminarycloud/_proto/geometry/geometry_pb2.pyi +1 -1
  31. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
  32. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +68 -0
  33. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +24 -0
  34. luminarycloud/enum/__init__.py +1 -0
  35. luminarycloud/enum/gpu_type.py +47 -7
  36. luminarycloud/enum/vis_enums.py +18 -0
  37. luminarycloud/geometry.py +81 -0
  38. luminarycloud/geometry_contacts.py +222 -0
  39. luminarycloud/meshing/mesh_generation_params.py +4 -4
  40. luminarycloud/meshing/sizing_strategy/__init__.py +0 -1
  41. luminarycloud/meshing/sizing_strategy/sizing_strategies.py +0 -20
  42. luminarycloud/params/geometry/shapes.py +137 -31
  43. luminarycloud/params/outputs/__init__.py +0 -2
  44. luminarycloud/params/outputs/output.py +17 -5
  45. luminarycloud/params/simulation/__init__.py +2 -0
  46. luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +1 -1
  47. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
  48. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +1 -1
  49. luminarycloud/params/simulation/adjoint_.py +8 -5
  50. luminarycloud/params/simulation/basic/gravity/gravity_off_.py +1 -1
  51. luminarycloud/params/simulation/basic/gravity/gravity_on_.py +1 -1
  52. luminarycloud/params/simulation/basic/gravity_.py +1 -1
  53. luminarycloud/params/simulation/body_frame_.py +1 -1
  54. luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +1 -1
  55. luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +1 -1
  56. luminarycloud/params/simulation/entity_relationships_.py +1 -1
  57. luminarycloud/params/simulation/general_.py +1 -1
  58. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
  59. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
  60. luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +1 -1
  61. luminarycloud/params/simulation/material/fluid/material_model/__init__.py +2 -0
  62. luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +1 -1
  63. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +1 -1
  64. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
  65. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/__init__.py +2 -0
  66. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_coolprop_.py +43 -0
  67. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_polynomial_.py +53 -0
  68. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend_.py +29 -0
  69. luminarycloud/params/simulation/material/fluid/material_model_.py +1 -1
  70. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
  71. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
  72. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
  73. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +1 -1
  74. luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
  75. luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +1 -1
  76. luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
  77. luminarycloud/params/simulation/material/fluid/viscosity_model_.py +1 -1
  78. luminarycloud/params/simulation/material/material_fluid_.py +78 -2
  79. luminarycloud/params/simulation/material/material_solid_.py +1 -1
  80. luminarycloud/params/simulation/material_entity_.py +1 -1
  81. luminarycloud/params/simulation/monitor_plane_.py +1 -1
  82. luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +1 -1
  83. luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +1 -1
  84. luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +1 -1
  85. luminarycloud/params/simulation/motion_data/frame_transforms_.py +1 -1
  86. luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +1 -1
  87. luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +1 -1
  88. luminarycloud/params/simulation/motion_data/motion_type_.py +1 -1
  89. luminarycloud/params/simulation/motion_data_.py +1 -1
  90. luminarycloud/params/simulation/multi_physics_coupling_options_.py +1 -1
  91. luminarycloud/params/simulation/nonlinear_control/__init__.py +1 -0
  92. luminarycloud/params/simulation/nonlinear_control/nonlinear_control_system_.py +48 -0
  93. luminarycloud/params/simulation/nonlinear_control_.py +61 -0
  94. luminarycloud/params/simulation/output_.py +1 -1
  95. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +1 -1
  96. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +1 -1
  97. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +1 -1
  98. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +1 -1
  99. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +1 -1
  100. luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +1 -1
  101. luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +1 -1
  102. luminarycloud/params/simulation/particle_group/particle_group_type_.py +1 -1
  103. luminarycloud/params/simulation/particle_group_.py +1 -1
  104. luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +1 -1
  105. luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +1 -1
  106. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +1 -1
  107. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +1 -1
  108. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +1 -1
  109. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +1 -1
  110. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +1 -1
  111. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +1 -1
  112. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +1 -1
  113. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +1 -1
  114. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
  115. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
  116. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
  117. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
  118. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +1 -1
  119. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +1 -1
  120. luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +1 -1
  121. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +1 -1
  122. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
  123. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
  124. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
  125. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
  126. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
  127. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +1 -1
  128. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +1 -1
  129. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +1 -1
  130. luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +1 -1
  131. luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +1 -0
  132. luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +1 -1
  133. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +14 -1
  134. luminarycloud/params/simulation/physics/fluid/initialization/fluid_initialization_per_zone_.py +48 -0
  135. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +14 -1
  136. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +1 -1
  137. luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +1 -1
  138. luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +1 -1
  139. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
  140. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
  141. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
  142. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
  143. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
  144. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
  145. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
  146. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +1 -1
  147. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
  148. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
  149. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
  150. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +1 -1
  151. luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +1 -1
  152. luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +1 -1
  153. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
  154. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_auto_.py +1 -1
  155. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
  156. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
  157. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +1 -1
  158. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
  159. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +1 -1
  160. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
  161. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
  162. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +1 -1
  163. luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +1 -1
  164. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
  165. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +3 -1
  166. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +3 -3
  167. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
  168. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +1 -1
  169. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
  170. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
  171. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +1 -1
  172. luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +5 -3
  173. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
  174. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
  175. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
  176. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +1 -1
  177. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
  178. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
  179. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +1 -1
  180. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +1 -1
  181. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
  182. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
  183. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +1 -1
  184. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +1 -1
  185. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
  186. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
  187. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
  188. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
  189. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
  190. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +1 -1
  191. luminarycloud/params/simulation/physics/fluid/turbulence_.py +1 -1
  192. luminarycloud/params/simulation/physics/fluid_.py +1 -1
  193. luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +1 -1
  194. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +1 -1
  195. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +1 -1
  196. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +1 -1
  197. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +1 -1
  198. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +1 -1
  199. luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +1 -1
  200. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
  201. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
  202. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +1 -1
  203. luminarycloud/params/simulation/physics/heat/heat_source_.py +1 -1
  204. luminarycloud/params/simulation/physics/heat/initialization/__init__.py +1 -0
  205. luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +1 -1
  206. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/__init__.py +1 -0
  207. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/heat_initialization_per_zone_.py +40 -0
  208. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +14 -1
  209. luminarycloud/params/simulation/physics/heat/initialization_heat_.py +1 -1
  210. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
  211. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +1 -1
  212. luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +1 -1
  213. luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +1 -1
  214. luminarycloud/params/simulation/physics/heat_.py +1 -1
  215. luminarycloud/params/simulation/physics/periodic_pair_.py +5 -1
  216. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
  217. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
  218. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +1 -1
  219. luminarycloud/params/simulation/physics_.py +1 -1
  220. luminarycloud/params/simulation/simulation_param_.py +8 -1
  221. luminarycloud/params/simulation/sliding_interfaces_.py +1 -1
  222. luminarycloud/params/simulation/surface_name_.py +1 -1
  223. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +1 -1
  224. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +1 -1
  225. luminarycloud/params/simulation/time/compute_statistics_.py +1 -1
  226. luminarycloud/params/simulation/time/time_marching/time_explicit_.py +1 -1
  227. luminarycloud/params/simulation/time/time_marching/time_implicit_.py +1 -1
  228. luminarycloud/params/simulation/time/time_marching_.py +1 -1
  229. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +1 -1
  230. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +1 -1
  231. luminarycloud/params/simulation/time/time_step_ramp_.py +1 -1
  232. luminarycloud/params/simulation/time_.py +1 -1
  233. luminarycloud/params/simulation/volume_entity_.py +1 -1
  234. luminarycloud/physics_ai/__init__.py +9 -0
  235. luminarycloud/physics_ai/architectures.py +129 -17
  236. luminarycloud/physics_ai/datasets.py +66 -11
  237. luminarycloud/physics_ai/training_jobs.py +50 -4
  238. luminarycloud/pipelines/__init__.py +5 -4
  239. luminarycloud/pipelines/api.py +148 -34
  240. luminarycloud/pipelines/arguments.py +8 -3
  241. luminarycloud/pipelines/core.py +10 -72
  242. luminarycloud/pipelines/stages.py +28 -25
  243. luminarycloud/pipelines/user_code_validation.py +122 -0
  244. luminarycloud/project.py +0 -14
  245. luminarycloud/simulation.py +42 -11
  246. luminarycloud/simulation_param.py +0 -62
  247. luminarycloud/simulation_template.py +1 -11
  248. luminarycloud/types/adfloat.py +48 -4
  249. luminarycloud/types/matrix3.py +9 -9
  250. luminarycloud/types/vector3.py +52 -23
  251. luminarycloud/vis/__init__.py +3 -0
  252. luminarycloud/vis/visualization.py +88 -0
  253. luminarycloud/volume_selection.py +29 -17
  254. {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.1.dist-info}/METADATA +1 -1
  255. {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.1.dist-info}/RECORD +257 -244
  256. luminarycloud/params/outputs/residual_output.py +0 -24
  257. /luminarycloud/params/{simulation/_lib.py → _lib.py} +0 -0
  258. {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.1.dist-info}/WHEEL +0 -0
@@ -1,84 +1,190 @@
1
1
  # Copyright 2024 Luminary Cloud, Inc. All Rights Reserved.
2
- from dataclasses import dataclass, field
2
+ from dataclasses import dataclass
3
3
 
4
+ from luminarycloud._helpers import CodeRepr
4
5
  from luminarycloud._helpers.proto_decorator import ProtoConvertible, proto_decorator
5
6
  from luminarycloud._proto.cad import shape_pb2 as shapepb
6
7
  from luminarycloud.types import Vector3
8
+ from luminarycloud.types.adfloat import LcFloat
9
+ from luminarycloud.types.vector3 import Vector3Like, _to_vector3
7
10
 
8
11
 
9
- class Shape(ProtoConvertible):
12
+ class Shape(CodeRepr, ProtoConvertible):
10
13
  pass
11
14
 
12
15
 
13
16
  @dataclass(kw_only=True)
14
17
  @proto_decorator(shapepb.Sphere)
15
18
  class Sphere(Shape):
16
- center: Vector3 = field(default_factory=Vector3)
17
- radius: float = 0.0
19
+ center: Vector3
20
+ radius: LcFloat
21
+
22
+ def __init__(
23
+ self,
24
+ *,
25
+ center: Vector3Like | None = None,
26
+ radius: float = 0.0,
27
+ ):
28
+ self.center = _to_vector3(center)
29
+ self.radius = radius
18
30
 
19
31
 
20
32
  @dataclass(kw_only=True)
21
33
  @proto_decorator(shapepb.SphereShell)
22
34
  class SphereShell(Shape):
23
- center: Vector3 = field(default_factory=Vector3)
24
- radius: float = 0.0
25
- radius_inner: float = 0.0
35
+ center: Vector3
36
+ radius: float
37
+ radius_inner: float
38
+
39
+ def __init__(
40
+ self,
41
+ *,
42
+ center: Vector3Like | None = None,
43
+ radius: float = 0.0,
44
+ radius_inner: float = 0.0,
45
+ ):
46
+ self.center = _to_vector3(center)
47
+ self.radius = radius
48
+ self.radius_inner = radius_inner
26
49
 
27
50
 
28
51
  @dataclass(kw_only=True)
29
52
  @proto_decorator(shapepb.HalfSphere)
30
53
  class HalfSphere(Shape):
31
- center: Vector3 = field(default_factory=Vector3)
32
- radius: float = 0.0
33
- normal: Vector3 = field(default_factory=Vector3)
54
+ center: Vector3
55
+ radius: LcFloat
56
+ normal: Vector3
57
+
58
+ def __init__(
59
+ self,
60
+ *,
61
+ center: Vector3Like | None = None,
62
+ radius: float = 0.0,
63
+ normal: Vector3Like | None = None,
64
+ ):
65
+ self.center = _to_vector3(center)
66
+ self.radius = radius
67
+ self.normal = _to_vector3(normal)
34
68
 
35
69
 
36
70
  @dataclass(kw_only=True)
37
71
  @proto_decorator(shapepb.Cube)
38
72
  class Cube(Shape):
39
- min: Vector3 = field(default_factory=Vector3)
40
- max: Vector3 = field(default_factory=Vector3)
73
+ min: Vector3
74
+ max: Vector3
75
+
76
+ def __init__(
77
+ self,
78
+ *,
79
+ min: Vector3Like | None = None,
80
+ max: Vector3Like | None = None,
81
+ ):
82
+ self.min = _to_vector3(min)
83
+ self.max = _to_vector3(max)
41
84
 
42
85
 
43
86
  @dataclass(kw_only=True)
44
87
  @proto_decorator(shapepb.OrientedCube)
45
88
  class OrientedCube(Shape):
46
- min: Vector3 = field(default_factory=Vector3)
47
- max: Vector3 = field(default_factory=Vector3)
48
- origin: Vector3 = field(default_factory=Vector3)
49
- x_axis: Vector3 = field(default_factory=Vector3)
50
- y_axis: Vector3 = field(default_factory=Vector3)
89
+ min: Vector3
90
+ max: Vector3
91
+ origin: Vector3
92
+ x_axis: Vector3
93
+ y_axis: Vector3
94
+
95
+ def __init__(
96
+ self,
97
+ *,
98
+ min: Vector3Like | None = None,
99
+ max: Vector3Like | None = None,
100
+ origin: Vector3Like | None = None,
101
+ x_axis: Vector3Like | None = None,
102
+ y_axis: Vector3Like | None = None,
103
+ ):
104
+ self.min = _to_vector3(min)
105
+ self.max = _to_vector3(max)
106
+ self.origin = _to_vector3(origin)
107
+ self.x_axis = _to_vector3(x_axis)
108
+ self.y_axis = _to_vector3(y_axis)
51
109
 
52
110
 
53
111
  @dataclass(kw_only=True)
54
112
  @proto_decorator(shapepb.Cylinder)
55
113
  class Cylinder(Shape):
56
- start: Vector3 = field(default_factory=Vector3)
57
- end: Vector3 = field(default_factory=Vector3)
58
- radius: float = 0.0
114
+ start: Vector3
115
+ end: Vector3
116
+ radius: LcFloat
117
+
118
+ def __init__(
119
+ self,
120
+ *,
121
+ start: Vector3Like | None = None,
122
+ end: Vector3Like | None = None,
123
+ radius: float = 0.0,
124
+ ):
125
+ self.start = _to_vector3(start)
126
+ self.end = _to_vector3(end)
127
+ self.radius = radius
59
128
 
60
129
 
61
130
  @dataclass(kw_only=True)
62
131
  @proto_decorator(shapepb.AnnularCylinder)
63
132
  class AnnularCylinder(Shape):
64
- start: Vector3 = field(default_factory=Vector3)
65
- end: Vector3 = field(default_factory=Vector3)
66
- radius: float = 0.0
67
- radius_inner: float = 0.0
133
+ start: Vector3
134
+ end: Vector3
135
+ radius: float
136
+ radius_inner: float
137
+
138
+ def __init__(
139
+ self,
140
+ *,
141
+ start: Vector3Like | None = None,
142
+ end: Vector3Like | None = None,
143
+ radius: float = 0.0,
144
+ radius_inner: float = 0.0,
145
+ ):
146
+ self.start = _to_vector3(start)
147
+ self.end = _to_vector3(end)
148
+ self.radius = radius
149
+ self.radius_inner = radius_inner
68
150
 
69
151
 
70
152
  @dataclass(kw_only=True)
71
153
  @proto_decorator(shapepb.Torus)
72
154
  class Torus(Shape):
73
- center: Vector3 = field(default_factory=Vector3)
74
- normal: Vector3 = field(default_factory=Vector3)
75
- major_radius: float = 0.0
76
- minor_radius: float = 0.0
155
+ center: Vector3
156
+ normal: Vector3
157
+ major_radius: float
158
+ minor_radius: float
159
+
160
+ def __init__(
161
+ self,
162
+ *,
163
+ center: Vector3Like | None = None,
164
+ normal: Vector3Like | None = None,
165
+ major_radius: float = 0.0,
166
+ minor_radius: float = 0.0,
167
+ ):
168
+ self.center = _to_vector3(center)
169
+ self.normal = _to_vector3(normal)
170
+ self.major_radius = major_radius
171
+ self.minor_radius = minor_radius
77
172
 
78
173
 
79
174
  @dataclass(kw_only=True)
80
175
  @proto_decorator(shapepb.Cone)
81
176
  class Cone(Shape):
82
- apex: Vector3 = field(default_factory=Vector3)
83
- base_center: Vector3 = field(default_factory=Vector3)
84
- base_radius: float = 0.0
177
+ apex: Vector3
178
+ base_center: Vector3
179
+ base_radius: float
180
+
181
+ def __init__(
182
+ self,
183
+ *,
184
+ apex: Vector3Like | None = None,
185
+ base_center: Vector3Like | None = None,
186
+ base_radius: float = 0.0,
187
+ ):
188
+ self.apex = _to_vector3(apex)
189
+ self.base_center = _to_vector3(base_center)
190
+ self.base_radius = base_radius
@@ -1,3 +1 @@
1
1
  from .output import Output as Output
2
-
3
- from .residual_output import ResidualOutput as ResidualOutput
@@ -1,21 +1,33 @@
1
1
  # Copyright 2024 Luminary Cloud, Inc. All Rights Reserved.
2
- from abc import abstractmethod
3
- from luminarycloud.params.simulation._lib import ParamGroupWrapper
2
+
3
+ from dataclasses import dataclass
4
+ from luminarycloud.params._lib import ParamGroupWrapper
4
5
  from luminarycloud._helpers import CodeRepr
5
6
  from luminarycloud._proto.output import output_pb2 as outputpb
6
7
 
7
8
 
9
+ @dataclass(kw_only=True)
8
10
  class Output(CodeRepr, ParamGroupWrapper[outputpb.Output]):
9
- """A quantity that can be extracted from the output of a simulation"""
11
+ """
12
+ Represents a quantity that can be extracted from the output of a simulation via an
13
+ OutputDefinition ID.
14
+
15
+ NOTE: This class is only used to represent outputs in SimulationParam, for example to setup
16
+ adjoint analysis or nonlinear control equations. The interface to define and download outputs
17
+ uses OutputDefinition directly.
18
+ """
10
19
 
11
20
  name: str = ""
21
+ "The name of the output."
22
+ output_definition_id: str = ""
23
+ "The ID of the output def"
12
24
 
13
- @abstractmethod
14
25
  def _to_proto(self) -> outputpb.Output:
15
26
  _proto = outputpb.Output()
16
27
  _proto.name = self.name
28
+ _proto.id = self.output_definition_id
17
29
  return _proto
18
30
 
19
- @abstractmethod
20
31
  def _from_proto(self, proto: outputpb.Output) -> None:
21
32
  self.name = proto.name
33
+ self.output_definition_id = proto.id
@@ -3,6 +3,7 @@ from . import basic
3
3
  from . import entity_relationships
4
4
  from . import material
5
5
  from . import motion_data
6
+ from . import nonlinear_control
6
7
  from . import particle_group
7
8
  from . import physics
8
9
  from . import time
@@ -15,6 +16,7 @@ from .material_entity_ import MaterialEntity
15
16
  from .monitor_plane_ import MonitorPlane
16
17
  from .motion_data_ import MotionData
17
18
  from .multi_physics_coupling_options_ import MultiPhysicsCouplingOptions
19
+ from .nonlinear_control_ import NonlinearControl
18
20
  from .output_ import Output
19
21
  from .particle_group_ import ParticleGroup
20
22
  from .physics_ import Physics
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.geometry import shapes
21
21
 
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.adaptive_mesh_refinement.active_region_ import ActiveRegion
21
21
  from luminarycloud.params.simulation.adaptive_mesh_refinement.active_region_ import *
@@ -15,14 +15,16 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
+
20
+ from luminarycloud.params import outputs
19
21
 
20
22
 
21
23
  @dataclass(kw_only=True)
22
24
  class Adjoint(CodeRepr, ParamGroupWrapper[clientpb.Adjoint]):
23
25
  """Settings for adjoint sensitivity analysis."""
24
26
 
25
- _output: Any | None = None
27
+ output: outputs.Output | None = None
26
28
  "Function to differentiate."
27
29
  surfaces: list[str] = field(default_factory=list)
28
30
  ""
@@ -33,8 +35,8 @@ class Adjoint(CodeRepr, ParamGroupWrapper[clientpb.Adjoint]):
33
35
 
34
36
  def _to_proto(self) -> clientpb.Adjoint:
35
37
  _proto = clientpb.Adjoint()
36
- if self._output is not None:
37
- _proto.adjoint_output.CopyFrom(self._output)
38
+ if self.output is not None:
39
+ _proto.adjoint_output.CopyFrom(self.output._to_proto())
38
40
  if self.surfaces is not None:
39
41
  _proto.surfaces.extend(self.surfaces)
40
42
  if self.deformed_coords_id is not None:
@@ -44,7 +46,8 @@ class Adjoint(CodeRepr, ParamGroupWrapper[clientpb.Adjoint]):
44
46
  return _proto
45
47
 
46
48
  def _from_proto(self, proto: clientpb.Adjoint) -> None:
47
- self._output = proto.adjoint_output
49
+ self.output = outputs.Output()
50
+ self.output._from_proto(proto.adjoint_output)
48
51
  self.surfaces.extend(proto.surfaces)
49
52
  self.deformed_coords_id = proto.deformed_coords_id
50
53
  self.primal_simulation_id = proto.primal_simulation_id
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.basic.gravity_ import Gravity
21
21
  from luminarycloud.params.simulation.basic.gravity_ import *
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.basic.gravity_ import Gravity
21
21
  from luminarycloud.params.simulation.basic.gravity_ import *
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.entity_relationships.volume_material_relationship_ import (
21
21
  VolumeMaterialRelationship,
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.basic.gravity_ import Gravity
21
21
  from luminarycloud.params.simulation.basic.gravity_ import *
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.material.fluid.boussinesq_approximation_ import (
21
21
  BoussinesqApproximation,
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.material.fluid.boussinesq_approximation_ import (
21
21
  BoussinesqApproximation,
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -1,3 +1,5 @@
1
+ from . import real_gas_backend
1
2
  from .ideal_gas_ import IdealGas
2
3
  from .incompressible_fluid_ import IncompressibleFluid
3
4
  from .incompressible_fluid_with_energy_ import IncompressibleFluidWithEnergy
5
+ from .real_gas_backend_ import RealGasBackend
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.material.fluid.material_model_ import MaterialModel
21
21
  from luminarycloud.params.simulation.material.fluid.material_model_ import *
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.material.fluid.material_model_ import MaterialModel
21
21
  from luminarycloud.params.simulation.material.fluid.material_model_ import *
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.material.fluid.material_model_ import MaterialModel
21
21
  from luminarycloud.params.simulation.material.fluid.material_model_ import *
@@ -0,0 +1,2 @@
1
+ from .real_gas_coolprop_ import RealGasCoolprop
2
+ from .real_gas_polynomial_ import RealGasPolynomial
@@ -0,0 +1,43 @@
1
+ # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
+
3
+ from abc import ABC, ABCMeta
4
+ from dataclasses import dataclass, field
5
+ from typing import Any
6
+ from uuid import uuid4
7
+
8
+ from google.protobuf.message import Message as _Message
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
11
+ from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
13
+ from luminarycloud._proto.client import simulation_pb2 as clientpb
14
+ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
+ from luminarycloud._helpers import CodeRepr
16
+ import luminarycloud.params.enum._enum_wrappers as enum
17
+
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
+
20
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend_ import (
21
+ RealGasBackend,
22
+ )
23
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend_ import *
24
+
25
+
26
+ @dataclass(kw_only=True)
27
+ class RealGasCoolprop(RealGasBackend):
28
+ """Use the CoolProp material library to compute fluid properties using the Helmholtz equation of state."""
29
+
30
+ fluid: enum.PtTableFluid = enum.PtTableFluid.REAL_GAS_AIR
31
+ "Fluid for which the real gas tables are created. The liquid phase is not included, properties in the saturation region are extrapolated to ensure numerical stability."
32
+ min_pressure: LcFloat = 1000
33
+ "Lower bound for the pressure axis of real gas tables. For accuracy and numerical stability, this value should be lower than the minimum absolute static pressure expected in the solution."
34
+ max_pressure: LcFloat = 1000000.0
35
+ "Upper bound for the pressure axis of real gas tables. For accuracy and numerical stability, this value should be greater than the maximum absolute total pressure expected in the solution."
36
+ n_pressure: int = 1000
37
+ "Number of linearly-spaced values in the pressure axis of real gas tables."
38
+ min_temperature: LcFloat = 100
39
+ "Lower bound for the temperature in real gas equations of state. For accuracy and numerical stability, this value should be lower than the minimum static temperature expected in the solution."
40
+ max_temperature: LcFloat = 1000
41
+ "Upper bound for the temperature in real gas equations of state. For accuracy and numerical stability, this value should be greater than the maximum total temperature expected in the solution."
42
+ n_temperature: int = 200
43
+ "Number of linearly-spaced values in the temperature axis of real gas tables."
@@ -0,0 +1,53 @@
1
+ # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
+
3
+ from abc import ABC, ABCMeta
4
+ from dataclasses import dataclass, field
5
+ from typing import Any
6
+ from uuid import uuid4
7
+
8
+ from google.protobuf.message import Message as _Message
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
11
+ from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
13
+ from luminarycloud._proto.client import simulation_pb2 as clientpb
14
+ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
+ from luminarycloud._helpers import CodeRepr
16
+ import luminarycloud.params.enum._enum_wrappers as enum
17
+
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
+
20
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend_ import (
21
+ RealGasBackend,
22
+ )
23
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend_ import *
24
+
25
+
26
+ @dataclass(kw_only=True)
27
+ class RealGasPolynomial(RealGasBackend):
28
+ """Model a thermally perfect gas with specific heat normalized by the gas constant (c<sub>p</sub>/R) given by a 7-term polynomial (NASA format)."""
29
+
30
+ molecular_weight: LcFloat = 28.96
31
+ "Molecular weight of the gas used to compute its specific gas constant. Air is 28.96 g/mol."
32
+ min_temperature: LcFloat = 100
33
+ "Lower bound for the temperature in real gas equations of state. For accuracy and numerical stability, this value should be lower than the minimum static temperature expected in the solution."
34
+ max_temperature: LcFloat = 1000
35
+ "Upper bound for the temperature in real gas equations of state. For accuracy and numerical stability, this value should be greater than the maximum total temperature expected in the solution."
36
+ a1: LcFloat = 0.0
37
+ "Coefficient of term T<sup>-2</sup> in the polynomial for c<sub>p</sub>/R."
38
+ a2: LcFloat = 0.0
39
+ "Coefficient of term T<sup>-1</sup> in the polynomial for c<sub>p</sub>/R."
40
+ a3: LcFloat = 3.5
41
+ "Coefficient of term T<sup>0</sup> in the polynomial for c<sub>p</sub>/R."
42
+ a4: LcFloat = 0.0
43
+ "Coefficient of term T<sup>1</sup> in the polynomial for c<sub>p</sub>/R."
44
+ a5: LcFloat = 0.0
45
+ "Coefficient of term T<sup>2</sup> in the polynomial for c<sub>p</sub>/R."
46
+ a6: LcFloat = 0.0
47
+ "Coefficient of term T<sup>3</sup> in the polynomial for c<sub>p</sub>/R."
48
+ a7: LcFloat = 0.0
49
+ "Coefficient of term T<sup>4</sup> in the polynomial for c<sub>p</sub>/R."
50
+ b1: LcFloat = 0.0
51
+ "Integration constant for enthalpy."
52
+ b2: LcFloat = 0.0
53
+ "Integration constant for entropy."
@@ -0,0 +1,29 @@
1
+ # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
+
3
+ from abc import ABC, ABCMeta
4
+ from dataclasses import dataclass, field
5
+ from typing import Any
6
+ from uuid import uuid4
7
+
8
+ from google.protobuf.message import Message as _Message
9
+ from luminarycloud.tables import RectilinearTable, _param_name_to_table_type
10
+ from luminarycloud.types import Vector3, LcFloat
11
+ from luminarycloud.types.adfloat import _to_ad_proto, _from_ad_proto
12
+ from luminarycloud._helpers._entity_identifier import _create_entity_identifier
13
+ from luminarycloud._proto.client import simulation_pb2 as clientpb
14
+ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
+ from luminarycloud._helpers import CodeRepr
16
+ import luminarycloud.params.enum._enum_wrappers as enum
17
+
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
+
20
+ from luminarycloud.params.simulation.material.fluid.material_model_ import MaterialModel
21
+ from luminarycloud.params.simulation.material.fluid.material_model_ import *
22
+
23
+
24
+ @dataclass(kw_only=True)
25
+ class RealGasBackend(MaterialModel, ABC):
26
+ """Library or method of computing real gas properties.
27
+ NOTE: This is a base class, please use the derived classes from the real_gas_backend module."""
28
+
29
+ pass
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
15
15
  from luminarycloud._helpers import CodeRepr
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_unique_id
18
+ from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
19
19
 
20
20
  from luminarycloud.params.simulation.material.fluid.thermal_conductivity_model_ import (
21
21
  ThermalConductivityModel,