luminarycloud 0.22.3__py3-none-any.whl → 0.23.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +405 -346
  27. luminarycloud/_proto/client/simulation_pb2.pyi +175 -21
  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 +42 -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 +1 -1
  166. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
  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 +1 -1
  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.0.dist-info}/METADATA +1 -1
  255. {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.0.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.0.dist-info}/WHEEL +0 -0
@@ -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,
@@ -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,
@@ -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.viscosity_model_ import ViscosityModel
21
21
  from luminarycloud.params.simulation.material.fluid.viscosity_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.viscosity_model_ import ViscosityModel
21
21
  from luminarycloud.params.simulation.material.fluid.viscosity_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.viscosity_model_ import ViscosityModel
21
21
  from luminarycloud.params.simulation.material.fluid.viscosity_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
 
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.boussinesq_approximation_ import (
21
21
  BoussinesqApproximation,
@@ -53,6 +53,18 @@ from luminarycloud.params.simulation.material.fluid.viscosity_model.prescribed_v
53
53
  PrescribedViscosity,
54
54
  )
55
55
  from luminarycloud.params.simulation.material.fluid.viscosity_model.prescribed_viscosity_ import *
56
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend_ import (
57
+ RealGasBackend,
58
+ )
59
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend_ import *
60
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend.real_gas_coolprop_ import (
61
+ RealGasCoolprop,
62
+ )
63
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend.real_gas_coolprop_ import *
64
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend.real_gas_polynomial_ import (
65
+ RealGasPolynomial,
66
+ )
67
+ from luminarycloud.params.simulation.material.fluid.material_model.real_gas_backend.real_gas_polynomial_ import *
56
68
  from luminarycloud.params.simulation.material.fluid.viscosity_model.sutherland_ import Sutherland
57
69
  from luminarycloud.params.simulation.material.fluid.viscosity_model.sutherland_ import *
58
70
  from luminarycloud.params.simulation.material.fluid.thermal_conductivity_model.temperature_dependent_conductivity_ import (
@@ -78,7 +90,7 @@ class MaterialFluid(CodeRepr, ParamGroupWrapper[clientpb.MaterialFluid]):
78
90
  reference_pressure: LcFloat = 0.0
79
91
  "Reference pressure for the simulation. Unless otherwise stated, all pressure values are relative to this field (i.e. gauge pressures)."
80
92
  material_model: MaterialModel = field(default_factory=IdealGas)
81
- "Material model. Possible types: ``IdealGas``, ``IncompressibleFluid``, ``IncompressibleFluidWithEnergy`` from the ``material_model`` module."
93
+ "Material model. Possible types: ``IdealGas``, ``RealGasBackend``, ``IncompressibleFluid``, ``IncompressibleFluidWithEnergy`` from the ``material_model`` module."
82
94
  thermal_conductivity_model: ThermalConductivityModel = field(
83
95
  default_factory=PrescribedPrandtlNumber
84
96
  )
@@ -97,6 +109,43 @@ class MaterialFluid(CodeRepr, ParamGroupWrapper[clientpb.MaterialFluid]):
97
109
  _proto.density_relationship = clientpb.IDEAL_GAS
98
110
  _proto.molecular_weight.CopyFrom(_to_ad_proto(self.material_model.molecular_weight))
99
111
  _proto.specific_heat_cp.CopyFrom(_to_ad_proto(self.material_model.specific_heat_cp))
112
+ if isinstance(self.material_model, RealGasBackend):
113
+ _proto.density_relationship = clientpb.REAL_GAS
114
+ if isinstance(self.material_model, RealGasCoolprop):
115
+ _proto.real_gas_backend = clientpb.REAL_GAS_COOLPROP
116
+ _proto.pt_table_fluid = self.material_model.fluid.value
117
+ _proto.pt_table_min_pressure.CopyFrom(
118
+ _to_ad_proto(self.material_model.min_pressure)
119
+ )
120
+ _proto.pt_table_max_pressure.CopyFrom(
121
+ _to_ad_proto(self.material_model.max_pressure)
122
+ )
123
+ _proto.pt_table_n_pressure.value = self.material_model.n_pressure
124
+ _proto.pt_table_min_temperature.CopyFrom(
125
+ _to_ad_proto(self.material_model.min_temperature)
126
+ )
127
+ _proto.pt_table_max_temperature.CopyFrom(
128
+ _to_ad_proto(self.material_model.max_temperature)
129
+ )
130
+ _proto.pt_table_n_temperature.value = self.material_model.n_temperature
131
+ if isinstance(self.material_model, RealGasPolynomial):
132
+ _proto.real_gas_backend = clientpb.REAL_GAS_POLYNOMIAL
133
+ _proto.molecular_weight.CopyFrom(_to_ad_proto(self.material_model.molecular_weight))
134
+ _proto.pt_table_min_temperature.CopyFrom(
135
+ _to_ad_proto(self.material_model.min_temperature)
136
+ )
137
+ _proto.pt_table_max_temperature.CopyFrom(
138
+ _to_ad_proto(self.material_model.max_temperature)
139
+ )
140
+ _proto.cp_polynomial_a1.CopyFrom(_to_ad_proto(self.material_model.a1))
141
+ _proto.cp_polynomial_a2.CopyFrom(_to_ad_proto(self.material_model.a2))
142
+ _proto.cp_polynomial_a3.CopyFrom(_to_ad_proto(self.material_model.a3))
143
+ _proto.cp_polynomial_a4.CopyFrom(_to_ad_proto(self.material_model.a4))
144
+ _proto.cp_polynomial_a5.CopyFrom(_to_ad_proto(self.material_model.a5))
145
+ _proto.cp_polynomial_a6.CopyFrom(_to_ad_proto(self.material_model.a6))
146
+ _proto.cp_polynomial_a7.CopyFrom(_to_ad_proto(self.material_model.a7))
147
+ _proto.cp_polynomial_b1.CopyFrom(_to_ad_proto(self.material_model.b1))
148
+ _proto.cp_polynomial_b2.CopyFrom(_to_ad_proto(self.material_model.b2))
100
149
  if isinstance(self.material_model, IncompressibleFluid):
101
150
  _proto.density_relationship = clientpb.CONSTANT_DENSITY
102
151
  _proto.constant_density_value.CopyFrom(_to_ad_proto(self.material_model.density))
@@ -176,6 +225,33 @@ class MaterialFluid(CodeRepr, ParamGroupWrapper[clientpb.MaterialFluid]):
176
225
  self.material_model = IdealGas()
177
226
  self.material_model.molecular_weight = _from_ad_proto(proto.molecular_weight)
178
227
  self.material_model.specific_heat_cp = _from_ad_proto(proto.specific_heat_cp)
228
+ elif proto.density_relationship == clientpb.REAL_GAS:
229
+ self.material_model = RealGasBackend()
230
+ if proto.real_gas_backend == clientpb.INVALID_REAL_GAS_BACKEND:
231
+ raise ValueError("Invalid real_gas_backend")
232
+ elif proto.real_gas_backend == clientpb.REAL_GAS_COOLPROP:
233
+ self.material_model = RealGasCoolprop()
234
+ self.material_model.fluid = enum.PtTableFluid(proto.pt_table_fluid)
235
+ self.material_model.min_pressure = _from_ad_proto(proto.pt_table_min_pressure)
236
+ self.material_model.max_pressure = _from_ad_proto(proto.pt_table_max_pressure)
237
+ self.material_model.n_pressure = proto.pt_table_n_pressure.value
238
+ self.material_model.min_temperature = _from_ad_proto(proto.pt_table_min_temperature)
239
+ self.material_model.max_temperature = _from_ad_proto(proto.pt_table_max_temperature)
240
+ self.material_model.n_temperature = proto.pt_table_n_temperature.value
241
+ elif proto.real_gas_backend == clientpb.REAL_GAS_POLYNOMIAL:
242
+ self.material_model = RealGasPolynomial()
243
+ self.material_model.molecular_weight = _from_ad_proto(proto.molecular_weight)
244
+ self.material_model.min_temperature = _from_ad_proto(proto.pt_table_min_temperature)
245
+ self.material_model.max_temperature = _from_ad_proto(proto.pt_table_max_temperature)
246
+ self.material_model.a1 = _from_ad_proto(proto.cp_polynomial_a1)
247
+ self.material_model.a2 = _from_ad_proto(proto.cp_polynomial_a2)
248
+ self.material_model.a3 = _from_ad_proto(proto.cp_polynomial_a3)
249
+ self.material_model.a4 = _from_ad_proto(proto.cp_polynomial_a4)
250
+ self.material_model.a5 = _from_ad_proto(proto.cp_polynomial_a5)
251
+ self.material_model.a6 = _from_ad_proto(proto.cp_polynomial_a6)
252
+ self.material_model.a7 = _from_ad_proto(proto.cp_polynomial_a7)
253
+ self.material_model.b1 = _from_ad_proto(proto.cp_polynomial_b1)
254
+ self.material_model.b2 = _from_ad_proto(proto.cp_polynomial_b2)
179
255
  elif proto.density_relationship == clientpb.CONSTANT_DENSITY:
180
256
  self.material_model = IncompressibleFluid()
181
257
  self.material_model.density = _from_ad_proto(proto.constant_density_value)
@@ -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.material_fluid_ import MaterialFluid
21
21
  from luminarycloud.params.simulation.material.material_fluid_ 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
  from luminarycloud.params.simulation.motion_data.frame_transforms_ import FrameTransforms
21
21
  from luminarycloud.params.simulation.motion_data.frame_transforms_ 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.motion_data.frame_transforms_ import FrameTransforms
21
21
  from luminarycloud.params.simulation.motion_data.frame_transforms_ 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.motion_data.frame_transforms_ import FrameTransforms
21
21
  from luminarycloud.params.simulation.motion_data.frame_transforms_ 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
  from luminarycloud.params.simulation.motion_data.motion_type_ import MotionType
21
21
  from luminarycloud.params.simulation.motion_data.motion_type_ 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.motion_data.motion_type_ import MotionType
21
21
  from luminarycloud.params.simulation.motion_data.motion_type_ 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
  from luminarycloud.params.simulation.motion_data.motion_type.constant_angular_motion_ import (
21
21
  ConstantAngularMotion,
@@ -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)
@@ -0,0 +1 @@
1
+ from .nonlinear_control_system_ import NonlinearControlSystem
@@ -0,0 +1,48 @@
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 import outputs
21
+
22
+
23
+ @dataclass(kw_only=True)
24
+ class NonlinearControlSystem(CodeRepr, ParamGroupWrapper[clientpb.NonlinearControlSystem]):
25
+ """Outputs, inputs, and target values that define the control problem."""
26
+
27
+ output: outputs.Output | None = None
28
+ "Output for which a target value should be met."
29
+ input: str = ""
30
+ "Named variable varied by the controller to meet the target output value."
31
+ target: LcFloat = 0
32
+ "Target value for the output."
33
+
34
+ def _to_proto(self) -> clientpb.NonlinearControlSystem:
35
+ _proto = clientpb.NonlinearControlSystem()
36
+ if self.output is not None:
37
+ _proto.nonlinear_control_output.CopyFrom(self.output._to_proto())
38
+ if self.input is not None:
39
+ _proto.nonlinear_control_input = self.input
40
+ _proto.nonlinear_control_target.CopyFrom(_to_ad_proto(self.target))
41
+ return _proto
42
+
43
+ def _from_proto(self, proto: clientpb.NonlinearControlSystem) -> None:
44
+ self.output = outputs.Output()
45
+ self.output._from_proto(proto.nonlinear_control_output)
46
+ self.input = proto.nonlinear_control_input
47
+ self.target = _from_ad_proto(proto.nonlinear_control_target)
48
+ return None
@@ -0,0 +1,61 @@
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.nonlinear_control.nonlinear_control_system_ import (
21
+ NonlinearControlSystem,
22
+ )
23
+ from luminarycloud.params.simulation.nonlinear_control.nonlinear_control_system_ import *
24
+
25
+
26
+ @dataclass(kw_only=True)
27
+ class NonlinearControl(CodeRepr, ParamGroupWrapper[clientpb.NonlinearControl]):
28
+ """Determine input values such that target output values are met."""
29
+
30
+ system: list[NonlinearControlSystem] = field(default_factory=list)
31
+ "Outputs, inputs, and target values that define the control problem."
32
+ method: enum.NonlinearControlMethod = enum.NonlinearControlMethod.CONTROL_METHOD_SECANT
33
+ "The method used to determine 'input' such that 'output'('input') = 'target'."
34
+ start_iteration: int = 1000
35
+ "Start the nonlinear controller after N iterations."
36
+ initial_gradient: LcFloat = 1
37
+ "Estimate of the gradient of the function with respect to the control input, used for the first update of the Secant method."
38
+ update_interval: int = 500
39
+ "Update the input every N iterations."
40
+ update_relaxation: LcFloat = 0.5
41
+ "Under-relaxation factor applied to the Secant method updates of the input variables."
42
+
43
+ def _to_proto(self) -> clientpb.NonlinearControl:
44
+ _proto = clientpb.NonlinearControl()
45
+ if self.system is not None:
46
+ _proto.nonlinear_control_system.extend(v._to_proto() for v in self.system)
47
+ _proto.nonlinear_control_method = self.method.value
48
+ _proto.nonlinear_control_start_iteration.value = self.start_iteration
49
+ _proto.nonlinear_control_initial_gradient.CopyFrom(_to_ad_proto(self.initial_gradient))
50
+ _proto.nonlinear_control_update_interval.value = self.update_interval
51
+ _proto.nonlinear_control_relaxation.CopyFrom(_to_ad_proto(self.update_relaxation))
52
+ return _proto
53
+
54
+ def _from_proto(self, proto: clientpb.NonlinearControl) -> None:
55
+ self.system = [NonlinearControlSystem.from_proto(v) for v in proto.nonlinear_control_system]
56
+ self.method = enum.NonlinearControlMethod(proto.nonlinear_control_method)
57
+ self.start_iteration = proto.nonlinear_control_start_iteration.value
58
+ self.initial_gradient = _from_ad_proto(proto.nonlinear_control_initial_gradient)
59
+ self.update_interval = proto.nonlinear_control_update_interval.value
60
+ self.update_relaxation = _from_ad_proto(proto.nonlinear_control_relaxation)
61
+ return None
@@ -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.particle_group.particle_group_type.actuator_disk.actuator_disk_orientation_selection_ import (
21
21
  ActuatorDiskOrientationSelection,
@@ -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.particle_group.particle_group_type.actuator_disk.actuator_disk_orientation_selection_ import (
21
21
  ActuatorDiskOrientationSelection,
@@ -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.particle_group.particle_group_type_ import ParticleGroupType
21
21
  from luminarycloud.params.simulation.particle_group.particle_group_type_ 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.particle_group.particle_group_type_ import ParticleGroupType
21
21
  from luminarycloud.params.simulation.particle_group.particle_group_type_ 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.particle_group.particle_group_type_ import ParticleGroupType
21
21
  from luminarycloud.params.simulation.particle_group.particle_group_type_ 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.particle_group.particle_group_type_ import ParticleGroupType
21
21
  from luminarycloud.params.simulation.particle_group.particle_group_type_ 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
  from luminarycloud.params.simulation.particle_group.particle_group_type.actuator_disk_ import (
21
21
  ActuatorDisk,
@@ -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.physics.fluid.boundary_conditions_fluid_ import (
21
21
  BoundaryConditionsFluid,
@@ -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.physics.fluid.boundary_conditions.inlet_ import Inlet
21
21
  from luminarycloud.params.simulation.physics.fluid.boundary_conditions.inlet_ 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.physics.fluid.boundary_conditions.inlet_ import Inlet
21
21
  from luminarycloud.params.simulation.physics.fluid.boundary_conditions.inlet_ 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.physics.fluid.boundary_conditions.inlet_ import Inlet
21
21
  from luminarycloud.params.simulation.physics.fluid.boundary_conditions.inlet_ 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.physics.fluid.boundary_conditions.inlet_ import Inlet
21
21
  from luminarycloud.params.simulation.physics.fluid.boundary_conditions.inlet_ 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.physics.fluid.boundary_conditions.inlet_ import Inlet
21
21
  from luminarycloud.params.simulation.physics.fluid.boundary_conditions.inlet_ 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.physics.fluid.boundary_conditions.inlet_ import Inlet
21
21
  from luminarycloud.params.simulation.physics.fluid.boundary_conditions.inlet_ 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.physics.fluid.boundary_conditions_fluid_ import (
21
21
  BoundaryConditionsFluid,