luminarycloud 0.14.0__py3-none-any.whl → 0.15.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 (295) hide show
  1. luminarycloud/__init__.py +8 -1
  2. luminarycloud/_client/client.py +9 -0
  3. luminarycloud/_client/logging_interceptor.py +25 -0
  4. luminarycloud/_client/tracing.py +13 -8
  5. luminarycloud/_helpers/__init__.py +2 -0
  6. luminarycloud/_helpers/_code_representation.py +135 -0
  7. luminarycloud/_helpers/_simulation_params_from_json.py +5 -1
  8. luminarycloud/_helpers/download.py +16 -0
  9. luminarycloud/_helpers/named_variables.py +25 -0
  10. luminarycloud/_helpers/upload.py +31 -11
  11. luminarycloud/_helpers/warnings/deprecated.py +8 -10
  12. luminarycloud/_helpers/warnings/experimental.py +4 -4
  13. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +135 -110
  14. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +82 -10
  15. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +34 -0
  16. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +12 -0
  17. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.py +40 -40
  18. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.pyi +8 -2
  19. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +182 -0
  20. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +260 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +204 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +75 -0
  23. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +94 -0
  24. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +145 -0
  25. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +104 -0
  26. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +42 -0
  27. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -25
  28. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +10 -3
  29. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.py +25 -3
  30. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.pyi +32 -0
  31. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2_grpc.py +34 -0
  32. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2_grpc.pyi +12 -0
  33. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +162 -0
  34. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +254 -0
  35. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.py +203 -0
  36. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.pyi +74 -0
  37. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +157 -141
  38. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +32 -4
  39. luminarycloud/_proto/cad/boolean_pb2.py +8 -8
  40. luminarycloud/_proto/cad/boolean_pb2.pyi +34 -4
  41. luminarycloud/_proto/client/simulation_pb2.py +304 -294
  42. luminarycloud/_proto/client/simulation_pb2.pyi +30 -1
  43. luminarycloud/_proto/geometry/geometry_pb2.py +58 -58
  44. luminarycloud/_proto/geometry/geometry_pb2.pyi +58 -11
  45. luminarycloud/_proto/hexmesh/hexmesh_pb2.py +42 -42
  46. luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +2 -2
  47. luminarycloud/_proto/output/reference_values_pb2.py +5 -5
  48. luminarycloud/_proto/parametricworker/parametricworker_pb2.py +31 -31
  49. luminarycloud/_proto/parametricworker/parametricworker_pb2.pyi +6 -4
  50. luminarycloud/_proto/quantity/quantity_pb2.py +4 -4
  51. luminarycloud/_proto/table/table_pb2.py +9 -8
  52. luminarycloud/_proto/table/table_pb2.pyi +7 -1
  53. luminarycloud/enum/__init__.py +2 -0
  54. luminarycloud/enum/geometry_status.py +28 -0
  55. luminarycloud/geometry.py +64 -32
  56. luminarycloud/geometry_version.py +2 -2
  57. luminarycloud/mesh.py +11 -4
  58. luminarycloud/meshing/__init__.py +1 -0
  59. luminarycloud/meshing/metadata/__init__.py +6 -0
  60. luminarycloud/meshing/metadata/mesh_metadata.py +57 -0
  61. luminarycloud/named_variable_set.py +121 -0
  62. luminarycloud/outputs/output_definitions.py +11 -10
  63. luminarycloud/params/enum/_enum_wrappers.py +77 -968
  64. luminarycloud/params/outputs/output.py +2 -1
  65. luminarycloud/params/simulation/__init__.py +16 -16
  66. luminarycloud/params/simulation/_lib.py +1 -67
  67. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +3 -2
  68. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +3 -2
  69. luminarycloud/params/simulation/adjoint_.py +4 -3
  70. luminarycloud/params/simulation/basic/gravity/gravity_off_.py +3 -2
  71. luminarycloud/params/simulation/basic/gravity/gravity_on_.py +3 -2
  72. luminarycloud/params/simulation/basic/gravity_.py +3 -2
  73. luminarycloud/params/simulation/body_frame_.py +3 -2
  74. luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +7 -6
  75. luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +7 -6
  76. luminarycloud/params/simulation/entity_relationships_.py +3 -2
  77. luminarycloud/params/simulation/general_.py +4 -3
  78. luminarycloud/params/simulation/material/fluid/__init__.py +4 -4
  79. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +3 -2
  80. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +3 -2
  81. luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +3 -2
  82. luminarycloud/params/simulation/material/fluid/material_model/__init__.py +1 -1
  83. luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +3 -2
  84. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +3 -2
  85. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +3 -2
  86. luminarycloud/params/simulation/material/fluid/material_model_.py +3 -2
  87. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/__init__.py +2 -2
  88. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +3 -2
  89. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +3 -2
  90. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +4 -3
  91. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +3 -2
  92. luminarycloud/params/simulation/material/fluid/viscosity_model/__init__.py +1 -1
  93. luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +3 -2
  94. luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +3 -2
  95. luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +4 -3
  96. luminarycloud/params/simulation/material/fluid/viscosity_model_.py +3 -2
  97. luminarycloud/params/simulation/material/material_fluid_.py +7 -6
  98. luminarycloud/params/simulation/material/material_solid_.py +4 -3
  99. luminarycloud/params/simulation/material_entity_.py +9 -8
  100. luminarycloud/params/simulation/monitor_plane_.py +5 -4
  101. luminarycloud/params/simulation/motion_data/__init__.py +1 -1
  102. luminarycloud/params/simulation/motion_data/frame_transforms/__init__.py +1 -1
  103. luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +5 -4
  104. luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +5 -4
  105. luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +5 -4
  106. luminarycloud/params/simulation/motion_data/frame_transforms_.py +3 -2
  107. luminarycloud/params/simulation/motion_data/motion_type/__init__.py +1 -1
  108. luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +5 -4
  109. luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +5 -4
  110. luminarycloud/params/simulation/motion_data/motion_type_.py +3 -2
  111. luminarycloud/params/simulation/motion_data_.py +6 -5
  112. luminarycloud/params/simulation/multi_physics_coupling_options_.py +3 -2
  113. luminarycloud/params/simulation/output_.py +3 -2
  114. luminarycloud/params/simulation/particle_group/particle_group_type/__init__.py +1 -1
  115. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +4 -3
  116. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +4 -3
  117. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +3 -2
  118. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +7 -6
  119. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +3 -2
  120. luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +5 -4
  121. luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +5 -4
  122. luminarycloud/params/simulation/particle_group/particle_group_type_.py +3 -2
  123. luminarycloud/params/simulation/particle_group_.py +4 -3
  124. luminarycloud/params/simulation/physics/__init__.py +3 -3
  125. luminarycloud/params/simulation/physics/fluid/__init__.py +9 -9
  126. luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +3 -2
  127. luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +3 -2
  128. luminarycloud/params/simulation/physics/fluid/boundary_conditions/__init__.py +5 -5
  129. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +5 -4
  130. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/__init__.py +3 -3
  131. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +7 -6
  132. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +5 -4
  133. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +5 -4
  134. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +6 -5
  135. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +5 -4
  136. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +6 -5
  137. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +8 -7
  138. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/__init__.py +1 -1
  139. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +5 -4
  140. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +3 -2
  141. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +3 -2
  142. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +3 -2
  143. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +3 -2
  144. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +6 -5
  145. luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +5 -4
  146. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +3 -2
  147. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/__init__.py +1 -1
  148. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +3 -2
  149. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +3 -2
  150. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/__init__.py +1 -1
  151. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +3 -2
  152. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +3 -2
  153. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +3 -2
  154. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +3 -2
  155. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +3 -2
  156. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +7 -6
  157. luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +3 -2
  158. luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +2 -2
  159. luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +5 -4
  160. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +5 -4
  161. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +5 -4
  162. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +3 -2
  163. luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +3 -2
  164. luminarycloud/params/simulation/physics/fluid/physical_behavior/__init__.py +1 -1
  165. luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +8 -7
  166. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/__init__.py +1 -1
  167. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/__init__.py +2 -2
  168. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +3 -2
  169. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +8 -7
  170. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -3
  171. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +5 -4
  172. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +3 -2
  173. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +3 -2
  174. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +3 -2
  175. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +9 -8
  176. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +4 -3
  177. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -3
  178. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +3 -2
  179. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +3 -2
  180. luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +5 -4
  181. luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +3 -2
  182. luminarycloud/params/simulation/physics/fluid/solution_controls/__init__.py +1 -1
  183. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +3 -2
  184. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +3 -2
  185. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +3 -2
  186. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +3 -2
  187. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +7 -6
  188. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +3 -2
  189. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/__init__.py +1 -1
  190. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +3 -2
  191. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +3 -2
  192. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +3 -2
  193. luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +5 -4
  194. luminarycloud/params/simulation/physics/fluid/spatial_discretization/__init__.py +1 -1
  195. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/__init__.py +1 -1
  196. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +3 -2
  197. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +3 -2
  198. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +3 -2
  199. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +3 -2
  200. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +3 -2
  201. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +3 -2
  202. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +3 -2
  203. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +3 -2
  204. luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +5 -4
  205. luminarycloud/params/simulation/physics/fluid/turbulence/__init__.py +2 -2
  206. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/__init__.py +1 -1
  207. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +3 -2
  208. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +3 -2
  209. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +3 -2
  210. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +3 -2
  211. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +3 -2
  212. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +3 -2
  213. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +3 -2
  214. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +6 -5
  215. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +3 -2
  216. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +3 -2
  217. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +3 -2
  218. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +6 -5
  219. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/__init__.py +2 -2
  220. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +3 -2
  221. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +3 -2
  222. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +3 -2
  223. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +3 -2
  224. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +3 -2
  225. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +3 -2
  226. luminarycloud/params/simulation/physics/fluid/turbulence_.py +6 -5
  227. luminarycloud/params/simulation/physics/fluid_.py +12 -13
  228. luminarycloud/params/simulation/physics/heat/__init__.py +4 -4
  229. luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +3 -2
  230. luminarycloud/params/simulation/physics/heat/boundary_conditions/__init__.py +2 -2
  231. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +5 -4
  232. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +5 -4
  233. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +5 -4
  234. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +5 -4
  235. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +5 -4
  236. luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +5 -4
  237. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/__init__.py +1 -1
  238. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +3 -2
  239. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +4 -3
  240. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +3 -2
  241. luminarycloud/params/simulation/physics/heat/heat_source_.py +6 -5
  242. luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +5 -4
  243. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +5 -4
  244. luminarycloud/params/simulation/physics/heat/initialization_heat_.py +3 -2
  245. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +4 -3
  246. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +3 -2
  247. luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +4 -3
  248. luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +3 -2
  249. luminarycloud/params/simulation/physics/heat_.py +9 -8
  250. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/__init__.py +1 -1
  251. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +3 -2
  252. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/translational_periodicity_.py +3 -2
  253. luminarycloud/params/simulation/physics/periodic_pair/periodicity_type_.py +3 -2
  254. luminarycloud/params/simulation/physics/periodic_pair_.py +4 -3
  255. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/__init__.py +1 -1
  256. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +3 -2
  257. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +9 -8
  258. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +3 -2
  259. luminarycloud/params/simulation/physics_.py +7 -6
  260. luminarycloud/params/simulation/simulation_param_.py +12 -13
  261. luminarycloud/params/simulation/sliding_interfaces_.py +8 -7
  262. luminarycloud/params/simulation/surface_name_.py +3 -2
  263. luminarycloud/params/simulation/time/__init__.py +2 -2
  264. luminarycloud/params/simulation/time/compute_statistics/__init__.py +1 -1
  265. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +3 -2
  266. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +3 -2
  267. luminarycloud/params/simulation/time/compute_statistics_.py +3 -2
  268. luminarycloud/params/simulation/time/time_marching/time_explicit_.py +3 -2
  269. luminarycloud/params/simulation/time/time_marching/time_implicit_.py +3 -2
  270. luminarycloud/params/simulation/time/time_marching_.py +3 -2
  271. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +3 -2
  272. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +3 -2
  273. luminarycloud/params/simulation/time/time_step_ramp_.py +3 -2
  274. luminarycloud/params/simulation/time_.py +6 -5
  275. luminarycloud/params/simulation/volume_entity_.py +5 -4
  276. luminarycloud/physics_ai/__init__.py +8 -0
  277. luminarycloud/physics_ai/architectures.py +38 -0
  278. luminarycloud/physics_ai/models.py +42 -0
  279. luminarycloud/project.py +73 -21
  280. luminarycloud/reference_values.py +20 -3
  281. luminarycloud/simulation.py +8 -3
  282. luminarycloud/simulation_param.py +136 -29
  283. luminarycloud/simulation_template.py +84 -13
  284. luminarycloud/solution.py +17 -2
  285. luminarycloud/types/__init__.py +1 -0
  286. luminarycloud/types/adfloat.py +49 -19
  287. luminarycloud/types/ids.py +3 -0
  288. luminarycloud/vis/__init__.py +0 -3
  289. luminarycloud/vis/display.py +1 -0
  290. luminarycloud/vis/interactive_scene.py +47 -1
  291. luminarycloud/vis/visualization.py +57 -23
  292. luminarycloud/volume_selection.py +31 -19
  293. {luminarycloud-0.14.0.dist-info → luminarycloud-0.15.0.dist-info}/METADATA +2 -2
  294. {luminarycloud-0.14.0.dist-info → luminarycloud-0.15.0.dist-info}/RECORD +295 -274
  295. {luminarycloud-0.14.0.dist-info → luminarycloud-0.15.0.dist-info}/WHEEL +0 -0
@@ -1,27 +1,28 @@
1
- from .._proto.api.v0.luminarycloud.vis import vis_pb2
1
+ import dataclasses as dc
2
+ import io
3
+ import json
4
+ import logging
5
+ from time import sleep, time
6
+ from typing import Dict, List, Tuple, cast
7
+
2
8
  import luminarycloud._proto.api.v0.luminarycloud.common.common_pb2 as common_pb2
9
+ import requests
10
+ from luminarycloud.params.simulation.physics.fluid.boundary_conditions import Farfield
11
+ from luminarycloud.types import Vector3, Vector3Like
12
+
3
13
  from .._client import get_default_client
4
- from ..solution import Solution
5
- from ..mesh import get_mesh_metadata, Mesh, get_mesh
6
- from ..geometry import Geometry, get_geometry, Tag
14
+ from .._helpers._get_project_id import _get_project_id
15
+ from .._proto.api.v0.luminarycloud.vis import vis_pb2
7
16
  from ..enum.vis_enums import *
8
- from ..enum.quantity_type import QuantityType
17
+ from ..exceptions import NotFoundError
18
+ from ..geometry import Geometry, get_geometry
19
+ from ..mesh import Mesh, get_mesh, get_mesh_metadata
9
20
  from ..simulation import get_simulation
10
- from .display import DisplayAttributes, ColorMap, Field, ColorMapAppearance
11
- from .filters import Filter, PlaneClip, Slice, BoxClip, SurfaceStreamlines
12
- from luminarycloud.types import Vector3, Vector3Like
21
+ from ..solution import Solution
13
22
  from ..types.vector3 import _to_vector3
14
- from .._helpers._get_project_id import _get_project_id
15
- from ..exceptions import NotFoundError
23
+ from .display import ColorMap, ColorMapAppearance, DisplayAttributes, Field
24
+ from .filters import BoxClip, Filter, PlaneClip, Slice, SurfaceStreamlines, SurfaceLIC
16
25
  from .interactive_scene import InteractiveScene
17
- import io
18
- import json
19
- from luminarycloud._proto.client import simulation_pb2 as clientpb
20
- from typing import List, Tuple, cast, Union, Dict
21
- import requests
22
- from time import time, sleep
23
- import logging
24
- import dataclasses as dc
25
26
 
26
27
  logger = logging.getLogger(__name__)
27
28
 
@@ -53,6 +54,13 @@ class DirectionalCamera:
53
54
  """The width of the output image in pixels. Default: 1024"""
54
55
  height: int = 1024
55
56
  """The height of the output image in pixels. Default: 1024"""
57
+ zoom_in: float = 1.0
58
+ """
59
+ Zooms in from the default camera distance. Valid values are in the (0,1]
60
+ range. A value of 0.5 means move the camera halfway between the default
61
+ point and the object (i.e., a 2x zoom). A value of 1 means no zoom. Default:
62
+ 1.0
63
+ """
56
64
 
57
65
 
58
66
  @dc.dataclass
@@ -80,6 +88,20 @@ class LookAtCamera:
80
88
  """ The width of the output image in pixels. Default: 1024 """
81
89
  height: int = 1024
82
90
  """ The height of the output image in pixels. Default: 1024 """
91
+ pan_x: float = 0
92
+ """
93
+ Pan the camera in the x direction (right). This is a world space value defined in
94
+ the camera coordinate system. Pan is not typically directly set by the user,
95
+ but pan is useful for reproducing camera parameters from an interactive
96
+ scene where pan is used (i.e., control + middle mouse).
97
+ """
98
+ pan_y: float = 0
99
+ """
100
+ Pan the camera in the y direction (up). This is a world space value defined in
101
+ the camera coordinate system. Pan is not typically directly set by the user,
102
+ but pan is useful for reproducing camera parameters from an interactive
103
+ scene where pan is used (i.e., control + middle mouse).
104
+ """
83
105
 
84
106
 
85
107
  class _InternalToken:
@@ -320,7 +342,7 @@ class Scene:
320
342
 
321
343
  def __init__(self, entity: Geometry | Mesh | Solution):
322
344
  self.triad_visible: bool = True
323
- self.axes_grid_visible: bool = True
345
+ self.axes_grid_visible: bool = False
324
346
  self.background_color: Vector3 = Vector3(x=0, y=0, z=0)
325
347
  self.auto_color_map_annotations = True
326
348
  self.supersampling: int = 2
@@ -372,7 +394,7 @@ class Scene:
372
394
  except NotFoundError:
373
395
  self._has_tags = False
374
396
  except Exception as e:
375
- raise ValueError("An unknow error occurred retrieving tags")
397
+ raise ValueError("An unknown error occurred retrieving tags")
376
398
  elif self._entity_type == EntityType.MESH:
377
399
  mesh_meta = get_mesh_metadata(self._mesh.id)
378
400
  try:
@@ -380,7 +402,7 @@ class Scene:
380
402
  except NotFoundError:
381
403
  self._has_tags = False
382
404
  except Exception as e:
383
- raise ValueError("An unknow error occurred retrieving tags")
405
+ raise ValueError("An unknown error occurred retrieving tags")
384
406
  else:
385
407
  geom = self._geometry
386
408
 
@@ -407,8 +429,8 @@ class Scene:
407
429
  params = simulation.get_parameters()
408
430
  for physics in params.physics:
409
431
  if physics.fluid:
410
- for bc in physics.fluid.boundary_conditions_fluid:
411
- if bc.physical_boundary == clientpb.PhysicalBoundary.FARFIELD:
432
+ for bc in physics.fluid.boundary_conditions:
433
+ if isinstance(bc, Farfield):
412
434
  for bc_surface in bc.surfaces:
413
435
  self._far_field_boundary_ids.append(bc_surface)
414
436
 
@@ -540,8 +562,13 @@ class Scene:
540
562
  out_camera.look_at.position.CopyFrom(_to_vector3(lookat.position)._to_proto())
541
563
  out_camera.look_at.up.CopyFrom(_to_vector3(lookat.up)._to_proto())
542
564
  out_camera.look_at.look_at.CopyFrom(_to_vector3(lookat.look_at)._to_proto())
565
+ out_camera.look_at.pan.x = lookat.pan_x
566
+ out_camera.look_at.pan.y = lookat.pan_y
543
567
  elif isinstance(camera, DirectionalCamera):
544
568
  out_camera.direction = camera.direction.value
569
+ if camera.zoom_in <= 0 or camera.zoom_in > 1:
570
+ raise ValueError("Error: zoom_in must be in the range (0,1]")
571
+ out_camera.zoom = camera.zoom_in
545
572
  else:
546
573
  raise TypeError(f"Internal error: expected 'camera', got {type(camera).__name__}")
547
574
 
@@ -579,6 +606,12 @@ class Scene:
579
606
  bad_ids = self._validate_surfaces_and_tags(streamlines._surface_names)
580
607
  if len(bad_ids) != 0:
581
608
  raise ValueError(f"SurfaceStreamlines has invalid surfaces: {bad_ids}")
609
+ if isinstance(filter, SurfaceLIC):
610
+ # Validate surfaces names
611
+ lic = cast(SurfaceLIC, filter)
612
+ bad_ids = self._validate_surfaces_and_tags(lic._surface_names)
613
+ if len(bad_ids) != 0:
614
+ raise ValueError(f"SurfaceLIC has invalid surfaces: {bad_ids}")
582
615
 
583
616
  if isinstance(filter, Filter):
584
617
  vis_filter: vis_pb2.Filter = filter._to_proto()
@@ -623,6 +656,7 @@ class Scene:
623
656
  # processing them above
624
657
  cmap.appearance = ColorMapAppearance()
625
658
  auto_cmaps.append(cmap)
659
+
626
660
  if len(auto_cmaps) != 0:
627
661
  # These are all default contructed, so they all have the same dimentions.
628
662
  # All the coordinates are in normalized device space.
@@ -1,9 +1,9 @@
1
- # Copyright 2023-2024 Luminary Cloud, Inc. All Rights Reserved.
1
+ # Copyright 2023-2025 Luminary Cloud, Inc. All Rights Reserved.
2
2
  from __future__ import annotations
3
3
 
4
4
  import logging
5
5
  from os import PathLike
6
- from typing import Iterable, Optional, TYPE_CHECKING
6
+ from typing import Iterable, Iterator, Optional, TYPE_CHECKING
7
7
  from uuid import uuid4
8
8
 
9
9
  from luminarycloud._helpers import util
@@ -98,22 +98,26 @@ class VolumeSelection:
98
98
  """Clear the selection."""
99
99
  self.__volume_ids.clear()
100
100
 
101
- def volumes(self) -> list[Volume]:
101
+ def __iter__(self) -> Iterator[Volume]:
102
102
  """
103
- Get the volumes that are currently selected.
103
+ Return an iterator over the selected volumes.
104
104
  """
105
105
  res = self.__list_entities()
106
- return [
107
- Volume(
108
- geometry_id=self.__geometry.id,
109
- id=str(b.id),
110
- _lcn_id=str(b.lcn_id),
111
- bbox_min=Vector3(b.bbox_min.x, b.bbox_min.y, b.bbox_min.z),
112
- bbox_max=Vector3(b.bbox_max.x, b.bbox_max.y, b.bbox_max.z),
113
- )
114
- for b in res.bodies
115
- if b.id in self.__volume_ids
116
- ]
106
+ for b in res.bodies:
107
+ if b.id in self.__volume_ids:
108
+ yield Volume(
109
+ geometry_id=self.__geometry.id,
110
+ id=str(b.id),
111
+ _lcn_id=str(b.lcn_id),
112
+ bbox_min=Vector3(b.bbox_min.x, b.bbox_min.y, b.bbox_min.z),
113
+ bbox_max=Vector3(b.bbox_max.x, b.bbox_max.y, b.bbox_max.z),
114
+ )
115
+
116
+ def volumes(self) -> list[Volume]:
117
+ """
118
+ Return a list of the selected volumes.
119
+ """
120
+ return list(self)
117
121
 
118
122
  def import_cad(
119
123
  self,
@@ -205,7 +209,7 @@ class VolumeSelection:
205
209
 
206
210
  def subtract(
207
211
  self,
208
- tool_volumes: list[Volume],
212
+ tool_volumes: Iterable[Volume],
209
213
  *,
210
214
  propagate_tags: bool = False,
211
215
  feature_name: str = "Subtract",
@@ -217,7 +221,7 @@ class VolumeSelection:
217
221
 
218
222
  Parameters
219
223
  ----------
220
- tool_volumes : list[Volume]
224
+ tool_volumes : Iterable[Volume]
221
225
  The volumes to subtract from the selected volumes.
222
226
  propagate_tags : bool
223
227
  Whether to propagate the tool volume tags to the surfaces created by the subtraction.
@@ -261,7 +265,7 @@ class VolumeSelection:
261
265
 
262
266
  def chop(
263
267
  self,
264
- tool_volumes: list[Volume],
268
+ tool_volumes: Iterable[Volume],
265
269
  *,
266
270
  propagate_tags: bool = False,
267
271
  feature_name: str = "Chop",
@@ -274,7 +278,7 @@ class VolumeSelection:
274
278
 
275
279
  Parameters
276
280
  ----------
277
- tool_volumes : list[Volume]
281
+ tool_volumes : Iterable[Volume]
278
282
  The volumes to chop the selected volumes with.
279
283
  propagate_tags : bool
280
284
  Whether to propagate the tool volume tags to the surfaces created by the chop.
@@ -456,6 +460,7 @@ class VolumeSelection:
456
460
  self,
457
461
  resolution_min: Optional[float] = None,
458
462
  resolution_max: Optional[float] = None,
463
+ tool: Optional[Iterable[Volume]] = None,
459
464
  *,
460
465
  feature_name: str = "Shrinkwrap",
461
466
  ) -> None:
@@ -468,6 +473,8 @@ class VolumeSelection:
468
473
  The minimum resolution to shrinkwrap the selected volumes to.
469
474
  resolution_max : float, optional
470
475
  The maximum resolution to shrinkwrap the selected volumes to.
476
+ tool : VolumeSelection, optional
477
+ The tool volume selection to subtract from self in the shrinkwrap operation.
471
478
  feature_name : str
472
479
  The name of the feature.
473
480
  """
@@ -485,6 +492,10 @@ class VolumeSelection:
485
492
  else:
486
493
  mode = gpb.ShrinkwrapMode.AUTOMATIC
487
494
 
495
+ tool_ids = []
496
+ if tool is not None:
497
+ tool_ids = [int(v.id) for v in tool]
498
+
488
499
  self.__create_feature(
489
500
  gpb.Feature(
490
501
  feature_name=feature_name,
@@ -493,6 +504,7 @@ class VolumeSelection:
493
504
  resolution_min=(resolution_min or 0.0),
494
505
  resolution_max=(resolution_max or 0.0),
495
506
  resolution_uniform=(resolution_min or 0.0),
507
+ tool=tool_ids,
496
508
  mode=mode,
497
509
  ),
498
510
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luminarycloud
3
- Version: 0.14.0
3
+ Version: 0.15.0
4
4
  Summary: Luminary Cloud SDK
5
5
  Project-URL: Homepage, https://www.luminarycloud.com/
6
6
  Project-URL: Documentation, https://app.luminarycloud.com/docs/api/
@@ -45,6 +45,6 @@ and functionality may change significantly).
45
45
  import luminarycloud as lc
46
46
  project = lc.create_project("NACA 0012", "My first SDK project.")
47
47
  mesh = project.upload_mesh("./airfoil.lcmesh")
48
- sim_template = project.create_simulation_template("test template", "./simulation_template.json")
48
+ sim_template = project.create_simulation_template("test template", params_json_path="./simulation_template.json")
49
49
  sim = project.create_simulation(mesh.id, "My simulation", sim_template.id)
50
50
  ```