luminarycloud 0.22.2__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 (267) hide show
  1. luminarycloud/__init__.py +9 -3
  2. luminarycloud/_client/client.py +1 -1
  3. luminarycloud/_client/retry_interceptor.py +13 -2
  4. luminarycloud/_helpers/_code_representation.py +1 -0
  5. luminarycloud/_helpers/_create_simulation.py +5 -1
  6. luminarycloud/_helpers/proto_decorator.py +46 -38
  7. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +214 -137
  8. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +152 -0
  9. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
  10. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +40 -0
  11. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +25 -3
  12. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +30 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +34 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +12 -0
  15. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +155 -59
  16. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +252 -22
  17. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +102 -0
  18. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +36 -0
  19. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +94 -71
  20. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +46 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +35 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +16 -0
  23. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -3
  24. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +32 -0
  25. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +34 -0
  26. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +12 -0
  27. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +68 -21
  28. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +119 -0
  29. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +33 -0
  30. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +10 -0
  31. luminarycloud/_proto/client/simulation_pb2.py +405 -346
  32. luminarycloud/_proto/client/simulation_pb2.pyi +175 -21
  33. luminarycloud/_proto/clusterconfig/clusterconfig_pb2.py +273 -0
  34. luminarycloud/_proto/clusterconfig/clusterconfig_pb2.pyi +808 -0
  35. luminarycloud/_proto/geometry/geometry_pb2.pyi +1 -1
  36. luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.py +256 -0
  37. luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.pyi +472 -0
  38. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
  39. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +102 -0
  40. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +36 -0
  41. luminarycloud/_proto/quantity/quantity_pb2.pyi +1 -1
  42. luminarycloud/enum/__init__.py +1 -0
  43. luminarycloud/enum/gpu_type.py +42 -7
  44. luminarycloud/enum/vis_enums.py +18 -0
  45. luminarycloud/geometry.py +81 -0
  46. luminarycloud/geometry_contacts.py +222 -0
  47. luminarycloud/meshing/mesh_generation_params.py +4 -4
  48. luminarycloud/meshing/sizing_strategy/__init__.py +0 -1
  49. luminarycloud/meshing/sizing_strategy/sizing_strategies.py +0 -20
  50. luminarycloud/params/geometry/shapes.py +137 -31
  51. luminarycloud/params/outputs/__init__.py +0 -2
  52. luminarycloud/params/outputs/output.py +17 -5
  53. luminarycloud/params/simulation/__init__.py +2 -0
  54. luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +1 -1
  55. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
  56. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +1 -1
  57. luminarycloud/params/simulation/adjoint_.py +8 -5
  58. luminarycloud/params/simulation/basic/gravity/gravity_off_.py +1 -1
  59. luminarycloud/params/simulation/basic/gravity/gravity_on_.py +1 -1
  60. luminarycloud/params/simulation/basic/gravity_.py +1 -1
  61. luminarycloud/params/simulation/body_frame_.py +1 -1
  62. luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +1 -1
  63. luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +1 -1
  64. luminarycloud/params/simulation/entity_relationships_.py +1 -1
  65. luminarycloud/params/simulation/general_.py +1 -1
  66. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
  67. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
  68. luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +1 -1
  69. luminarycloud/params/simulation/material/fluid/material_model/__init__.py +2 -0
  70. luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +1 -1
  71. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +1 -1
  72. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
  73. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/__init__.py +2 -0
  74. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_coolprop_.py +43 -0
  75. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_polynomial_.py +53 -0
  76. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend_.py +29 -0
  77. luminarycloud/params/simulation/material/fluid/material_model_.py +1 -1
  78. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
  79. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
  80. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
  81. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +1 -1
  82. luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
  83. luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +1 -1
  84. luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
  85. luminarycloud/params/simulation/material/fluid/viscosity_model_.py +1 -1
  86. luminarycloud/params/simulation/material/material_fluid_.py +78 -2
  87. luminarycloud/params/simulation/material/material_solid_.py +1 -1
  88. luminarycloud/params/simulation/material_entity_.py +1 -1
  89. luminarycloud/params/simulation/monitor_plane_.py +1 -1
  90. luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +1 -1
  91. luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +1 -1
  92. luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +1 -1
  93. luminarycloud/params/simulation/motion_data/frame_transforms_.py +1 -1
  94. luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +1 -1
  95. luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +1 -1
  96. luminarycloud/params/simulation/motion_data/motion_type_.py +1 -1
  97. luminarycloud/params/simulation/motion_data_.py +1 -1
  98. luminarycloud/params/simulation/multi_physics_coupling_options_.py +1 -1
  99. luminarycloud/params/simulation/nonlinear_control/__init__.py +1 -0
  100. luminarycloud/params/simulation/nonlinear_control/nonlinear_control_system_.py +48 -0
  101. luminarycloud/params/simulation/nonlinear_control_.py +61 -0
  102. luminarycloud/params/simulation/output_.py +1 -1
  103. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +1 -1
  104. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +1 -1
  105. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +1 -1
  106. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +1 -1
  107. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +1 -1
  108. luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +1 -1
  109. luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +1 -1
  110. luminarycloud/params/simulation/particle_group/particle_group_type_.py +1 -1
  111. luminarycloud/params/simulation/particle_group_.py +1 -1
  112. luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +1 -1
  113. luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +1 -1
  114. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +1 -1
  115. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +1 -1
  116. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +1 -1
  117. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +1 -1
  118. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +1 -1
  119. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +1 -1
  120. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +1 -1
  121. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +1 -1
  122. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
  123. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
  124. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
  125. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
  126. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +1 -1
  127. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +1 -1
  128. luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +1 -1
  129. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +1 -1
  130. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
  131. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
  132. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
  133. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
  134. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
  135. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +1 -1
  136. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +1 -1
  137. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +1 -1
  138. luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +1 -1
  139. luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +1 -0
  140. luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +1 -1
  141. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +14 -1
  142. luminarycloud/params/simulation/physics/fluid/initialization/fluid_initialization_per_zone_.py +48 -0
  143. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +14 -1
  144. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +1 -1
  145. luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +1 -1
  146. luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +1 -1
  147. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
  148. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
  149. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
  150. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
  151. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
  152. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
  153. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
  154. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +1 -1
  155. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
  156. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
  157. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
  158. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +1 -1
  159. luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +1 -1
  160. luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +1 -1
  161. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
  162. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_auto_.py +1 -1
  163. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
  164. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
  165. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +1 -1
  166. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
  167. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +1 -1
  168. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
  169. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
  170. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +1 -1
  171. luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +1 -1
  172. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
  173. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +1 -1
  174. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
  175. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
  176. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +1 -1
  177. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
  178. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
  179. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +1 -1
  180. luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +1 -1
  181. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
  182. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
  183. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
  184. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +1 -1
  185. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
  186. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
  187. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +1 -1
  188. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +1 -1
  189. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
  190. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
  191. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +1 -1
  192. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +1 -1
  193. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
  194. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
  195. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
  196. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
  197. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
  198. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +1 -1
  199. luminarycloud/params/simulation/physics/fluid/turbulence_.py +1 -1
  200. luminarycloud/params/simulation/physics/fluid_.py +1 -1
  201. luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +1 -1
  202. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +1 -1
  203. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +1 -1
  204. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +1 -1
  205. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +1 -1
  206. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +1 -1
  207. luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +1 -1
  208. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
  209. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
  210. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +1 -1
  211. luminarycloud/params/simulation/physics/heat/heat_source_.py +1 -1
  212. luminarycloud/params/simulation/physics/heat/initialization/__init__.py +1 -0
  213. luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +1 -1
  214. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/__init__.py +1 -0
  215. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/heat_initialization_per_zone_.py +40 -0
  216. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +14 -1
  217. luminarycloud/params/simulation/physics/heat/initialization_heat_.py +1 -1
  218. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
  219. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +1 -1
  220. luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +1 -1
  221. luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +1 -1
  222. luminarycloud/params/simulation/physics/heat_.py +1 -1
  223. luminarycloud/params/simulation/physics/periodic_pair_.py +5 -1
  224. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
  225. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
  226. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +1 -1
  227. luminarycloud/params/simulation/physics_.py +1 -1
  228. luminarycloud/params/simulation/simulation_param_.py +8 -1
  229. luminarycloud/params/simulation/sliding_interfaces_.py +1 -1
  230. luminarycloud/params/simulation/surface_name_.py +1 -1
  231. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +1 -1
  232. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +1 -1
  233. luminarycloud/params/simulation/time/compute_statistics_.py +1 -1
  234. luminarycloud/params/simulation/time/time_marching/time_explicit_.py +1 -1
  235. luminarycloud/params/simulation/time/time_marching/time_implicit_.py +1 -1
  236. luminarycloud/params/simulation/time/time_marching_.py +1 -1
  237. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +1 -1
  238. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +1 -1
  239. luminarycloud/params/simulation/time/time_step_ramp_.py +1 -1
  240. luminarycloud/params/simulation/time_.py +1 -1
  241. luminarycloud/params/simulation/volume_entity_.py +1 -1
  242. luminarycloud/physics_ai/__init__.py +17 -0
  243. luminarycloud/physics_ai/architectures.py +130 -18
  244. luminarycloud/physics_ai/datasets.py +301 -0
  245. luminarycloud/physics_ai/training_jobs.py +50 -4
  246. luminarycloud/pipelines/__init__.py +16 -4
  247. luminarycloud/pipelines/api.py +192 -17
  248. luminarycloud/pipelines/arguments.py +8 -3
  249. luminarycloud/pipelines/core.py +296 -45
  250. luminarycloud/pipelines/flowables.py +138 -0
  251. luminarycloud/pipelines/stages.py +34 -55
  252. luminarycloud/pipelines/user_code_validation.py +122 -0
  253. luminarycloud/project.py +0 -14
  254. luminarycloud/simulation.py +42 -11
  255. luminarycloud/simulation_param.py +0 -62
  256. luminarycloud/simulation_template.py +1 -11
  257. luminarycloud/types/adfloat.py +48 -4
  258. luminarycloud/types/matrix3.py +9 -9
  259. luminarycloud/types/vector3.py +52 -23
  260. luminarycloud/vis/__init__.py +3 -0
  261. luminarycloud/vis/visualization.py +88 -0
  262. luminarycloud/volume_selection.py +29 -17
  263. {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/METADATA +1 -1
  264. {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/RECORD +266 -249
  265. luminarycloud/params/outputs/residual_output.py +0 -24
  266. /luminarycloud/params/{simulation/_lib.py → _lib.py} +0 -0
  267. {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/WHEEL +0 -0
@@ -15,6 +15,11 @@ class PhysicsAiTrainingServiceStub:
15
15
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.CreateDatasetResponse,
16
16
  ]
17
17
  """Create a Physics AI dataset"""
18
+ ListDatasets: grpc.UnaryUnaryMultiCallable[
19
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsRequest,
20
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsResponse,
21
+ ]
22
+ """List Physics AI datasets for the current user"""
18
23
  SubmitTrainingJob: grpc.UnaryUnaryMultiCallable[
19
24
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.SubmitTrainingJobRequest,
20
25
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.SubmitTrainingJobResponse,
@@ -25,6 +30,16 @@ class PhysicsAiTrainingServiceStub:
25
30
  luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.CancelTrainingJobResponse,
26
31
  ]
27
32
  """Cancel a physics AI training job"""
33
+ GetTrainingJob: grpc.UnaryUnaryMultiCallable[
34
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.GetTrainingJobRequest,
35
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.GetTrainingJobResponse,
36
+ ]
37
+ """Get a physics AI training job by ID"""
38
+ ListTrainingJobs: grpc.UnaryUnaryMultiCallable[
39
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListTrainingJobsRequest,
40
+ luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListTrainingJobsResponse,
41
+ ]
42
+ """List physics AI training jobs for the current user"""
28
43
 
29
44
  class PhysicsAiTrainingServiceServicer(metaclass=abc.ABCMeta):
30
45
  """PhysicsAiTrainingService provides training functionality for Physics AI"""
@@ -37,6 +52,13 @@ class PhysicsAiTrainingServiceServicer(metaclass=abc.ABCMeta):
37
52
  ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.CreateDatasetResponse:
38
53
  """Create a Physics AI dataset"""
39
54
  @abc.abstractmethod
55
+ def ListDatasets(
56
+ self,
57
+ request: luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsRequest,
58
+ context: grpc.ServicerContext,
59
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListDatasetsResponse:
60
+ """List Physics AI datasets for the current user"""
61
+ @abc.abstractmethod
40
62
  def SubmitTrainingJob(
41
63
  self,
42
64
  request: luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.SubmitTrainingJobRequest,
@@ -50,5 +72,19 @@ class PhysicsAiTrainingServiceServicer(metaclass=abc.ABCMeta):
50
72
  context: grpc.ServicerContext,
51
73
  ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.CancelTrainingJobResponse:
52
74
  """Cancel a physics AI training job"""
75
+ @abc.abstractmethod
76
+ def GetTrainingJob(
77
+ self,
78
+ request: luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.GetTrainingJobRequest,
79
+ context: grpc.ServicerContext,
80
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.GetTrainingJobResponse:
81
+ """Get a physics AI training job by ID"""
82
+ @abc.abstractmethod
83
+ def ListTrainingJobs(
84
+ self,
85
+ request: luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListTrainingJobsRequest,
86
+ context: grpc.ServicerContext,
87
+ ) -> luminarycloud._proto.api.v0.luminarycloud.physics_ai.physics_ai_pb2.ListTrainingJobsResponse:
88
+ """List physics AI training jobs for the current user"""
53
89
 
54
90
  def add_PhysicsAiTrainingServiceServicer_to_server(servicer: PhysicsAiTrainingServiceServicer, server: grpc.Server) -> None: ...
@@ -1,7 +1,7 @@
1
1
  """
2
2
  @generated by mypy-protobuf. Do not edit manually!
3
3
  isort:skip_file
4
- Copyright 2025 Luminary Cloud, Inc. All Rights Reserved.
4
+ Copyright 2025-2026 Luminary Cloud, Inc. All Rights Reserved.
5
5
  Generated by quantities.py. DO NOT EDIT
6
6
  """
7
7
  import builtins
@@ -23,6 +23,7 @@ from .vis_enums import (
23
23
  CameraProjection,
24
24
  ColorMapPreset,
25
25
  EntityType,
26
+ ExtremaType,
26
27
  FieldAssociation,
27
28
  FieldComponent,
28
29
  RenderStatusType,
@@ -1,14 +1,49 @@
1
- from enum import IntEnum
1
+ from enum import StrEnum
2
2
  from .._proto.api.v0.luminarycloud.simulation import simulation_pb2 as simulationpb
3
+ from .._proto.clusterconfig import clusterconfig_pb2 as clusterconfigpb
3
4
 
4
5
 
5
- class GPUType(IntEnum):
6
+ class GPUType(StrEnum):
6
7
  """
7
8
  Represents a GPU type.
8
9
  """
9
10
 
10
- UNSPECIFIED = simulationpb.SimulationOptions.GPU_TYPE_UNSPECIFIED
11
- V100 = simulationpb.SimulationOptions.GPU_TYPE_V100
12
- A100 = simulationpb.SimulationOptions.GPU_TYPE_A100
13
- T4 = simulationpb.SimulationOptions.GPU_TYPE_T4
14
- H100 = simulationpb.SimulationOptions.GPU_TYPE_H100
11
+ UNSPECIFIED = "unspecified"
12
+ CPU = "cpu"
13
+ T4 = "t4"
14
+ V100 = "v100"
15
+ A100 = "a100"
16
+ A100_80 = "a100_80"
17
+ H100 = "h100"
18
+
19
+ def _to_sim_options_gpu_type(self) -> int:
20
+ if self == GPUType.UNSPECIFIED:
21
+ return simulationpb.SimulationOptions.GPU_TYPE_UNSPECIFIED
22
+ elif self == GPUType.T4:
23
+ return simulationpb.SimulationOptions.GPU_TYPE_T4
24
+ elif self == GPUType.V100:
25
+ return simulationpb.SimulationOptions.GPU_TYPE_V100
26
+ elif self == GPUType.A100:
27
+ return simulationpb.SimulationOptions.GPU_TYPE_A100
28
+ elif self == GPUType.H100:
29
+ return simulationpb.SimulationOptions.GPU_TYPE_H100
30
+ else:
31
+ raise ValueError(f"Invalid GPU type: {self.value}")
32
+
33
+ def _to_clusterconfig_gpu_type(self) -> int:
34
+ if self == GPUType.UNSPECIFIED:
35
+ return clusterconfigpb.GPUType.UNSPECIFIED
36
+ elif self == GPUType.CPU:
37
+ return clusterconfigpb.GPUType.CPU
38
+ elif self == GPUType.T4:
39
+ return clusterconfigpb.GPUType.T4
40
+ elif self == GPUType.V100:
41
+ return clusterconfigpb.GPUType.V100
42
+ elif self == GPUType.A100:
43
+ return clusterconfigpb.GPUType.A100
44
+ elif self == GPUType.A100_80:
45
+ return clusterconfigpb.GPUType.A100_80
46
+ elif self == GPUType.H100:
47
+ return clusterconfigpb.GPUType.H100
48
+ else:
49
+ raise ValueError(f"Invalid GPU type: {self.value}")
@@ -332,3 +332,21 @@ class FieldAssociation(IntEnum):
332
332
 
333
333
  POINTS = 0
334
334
  CELLS = 1
335
+
336
+
337
+ class ExtremaType(IntEnum):
338
+ """
339
+ An enum to specify whether to find minimum or maximum values in an extrema query.
340
+
341
+ .. warning:: This feature is experimental and may change or be removed in the future.
342
+
343
+ Attributes
344
+ ----------
345
+ MIN
346
+ Find the minimum values.
347
+ MAX
348
+ Find the maximum values.
349
+ """
350
+
351
+ MIN = vis_pb2.EXTREMA_TYPE_MIN
352
+ MAX = vis_pb2.EXTREMA_TYPE_MAX
luminarycloud/geometry.py CHANGED
@@ -10,6 +10,8 @@ from typing import Union, Sequence
10
10
  from typing_extensions import TYPE_CHECKING
11
11
 
12
12
  import luminarycloud as lc
13
+ from luminarycloud.exceptions import NotFoundError
14
+ from luminarycloud.geometry_contacts import get_geometry_contacts
13
15
 
14
16
  from ._client import get_default_client
15
17
  from ._helpers._timestamp_to_datetime import timestamp_to_datetime
@@ -30,6 +32,7 @@ from .named_variable_set import NamedVariableSet, get_named_variable_set
30
32
  if TYPE_CHECKING:
31
33
  from .project import Project
32
34
  from .geometry_version import GeometryVersion, GeometryVersionIterator
35
+ from .geometry_contacts import GeometryContacts
33
36
 
34
37
 
35
38
  @ProtoWrapper(geometrypb.Geometry)
@@ -681,6 +684,84 @@ class Geometry(ProtoWrapperBase):
681
684
  res: geometrypb.GetGeometryResponse = get_default_client().GetGeometry(req)
682
685
  self._proto = res.geometry
683
686
 
687
+ def compute_contacts(self) -> "GeometryContacts":
688
+ """
689
+ Compute geometry contacts for this geometry.
690
+
691
+ This initiates an asynchronous computation to identify contact surfaces
692
+ between bodies in the geometry. Returns a GeometryContacts object immediately,
693
+ which can be used to wait for completion or check status.
694
+
695
+ Returns
696
+ -------
697
+ GeometryContacts
698
+ The contacts object. Initially found=False. Use .wait() to block until
699
+ computation completes, or .refresh() to check current status.
700
+
701
+ Examples
702
+ --------
703
+ >>> geometry = lc.get_geometry("geo-123")
704
+ >>> contacts = geometry.compute_contacts()
705
+ >>> contacts.wait() # Block until computation completes
706
+ >>> if not contacts.operation_error:
707
+ ... for contact in contacts.contacts:
708
+ ... print(f"Contact {contact.id}: faces {contact.side_a} vs {contact.side_b}")
709
+
710
+ Or poll asynchronously:
711
+ >>> contacts = geometry.compute_contacts()
712
+ >>> # Do other work...
713
+ >>> contacts.refresh()
714
+ >>> if contacts.found and not contacts.operation_error:
715
+ ... print(f"Found {len(contacts.contacts)} contacts")
716
+ """
717
+
718
+ latest_geometry_version = self.latest_version()
719
+
720
+ req = geometrypb.StartComputeGeometryContactsRequest(
721
+ geometry_id=self.id,
722
+ geometry_version_id=latest_geometry_version.id,
723
+ project_id=self.project_id,
724
+ )
725
+ get_default_client().StartComputeGeometryContacts(req)
726
+
727
+ # Return the GeometryContacts object immediately (found=False initially)
728
+ contacts = get_geometry_contacts(self.id, latest_geometry_version.id, self.project_id)
729
+ return contacts
730
+
731
+ def get_contacts(self) -> "GeometryContacts | None":
732
+ """
733
+ Get the computed contacts for this geometry, if available.
734
+
735
+ Returns None if contacts have not been computed yet or not found.
736
+
737
+ Returns
738
+ -------
739
+ GeometryContacts | None
740
+ The computed contacts, or None if not found.
741
+
742
+ Raises
743
+ ------
744
+ RpcError
745
+ If there is an error communicating with the API (other than NotFoundError).
746
+
747
+ Examples
748
+ --------
749
+ >>> geometry = lc.get_geometry("geo-123")
750
+ >>> contacts = geometry.get_contacts()
751
+ >>> if contacts and contacts.found and not contacts.operation_error:
752
+ ... print(f"Found {len(contacts.contacts)} contacts")
753
+ """
754
+ latest_geometry_version = self.latest_version()
755
+
756
+ try:
757
+ contacts = get_geometry_contacts(self.id, latest_geometry_version.id, self.project_id)
758
+ if contacts.found:
759
+ return contacts
760
+ return None
761
+ except NotFoundError:
762
+ # Contacts haven't been computed yet
763
+ return None
764
+
684
765
  def to_code(self) -> str:
685
766
  """
686
767
  Returns the python code that creates (from scratch) an identical geometry.
@@ -0,0 +1,222 @@
1
+ # Copyright 2026 Luminary Cloud, Inc. All Rights Reserved.
2
+ from __future__ import annotations
3
+
4
+ import logging
5
+ from time import sleep, time
6
+ from typing import TYPE_CHECKING
7
+
8
+ import luminarycloud as lc
9
+ from luminarycloud.exceptions import SDKException, Timeout
10
+
11
+ from ._client import get_default_client
12
+ from ._proto.api.v0.luminarycloud.geometry import geometry_pb2 as geometrypb
13
+ from ._wrapper import ProtoWrapperBase
14
+
15
+ if TYPE_CHECKING:
16
+ from .geometry import Geometry
17
+
18
+ logger = logging.getLogger(__name__)
19
+
20
+
21
+ class GeometryContactsError(SDKException):
22
+ """Raised when geometry contacts computation fails."""
23
+
24
+ pass
25
+
26
+
27
+ def wait_for_geometry_contacts(
28
+ geometry_id: str,
29
+ geometry_version_id: str,
30
+ project_id: str,
31
+ *,
32
+ interval_seconds: float = 2,
33
+ timeout_seconds: float = float("inf"),
34
+ ) -> GeometryContacts:
35
+ """
36
+ Waits for geometry contacts computation to complete.
37
+
38
+ Polls the GetGeometryContacts RPC until the computation is found
39
+ and either succeeds or fails.
40
+
41
+ Parameters
42
+ ----------
43
+ geometry_id: str
44
+ The geometry ID
45
+ geometry_version_id: str
46
+ The geometry version ID
47
+ project_id: str
48
+ The project ID
49
+ interval_seconds: float
50
+ Number of seconds between polls. Default is 2 seconds.
51
+ timeout_seconds: float
52
+ Number of seconds before the operation times out.
53
+ Default is infinity.
54
+
55
+ Returns
56
+ -------
57
+ GeometryContacts
58
+ The computed geometry contacts.
59
+
60
+ Raises
61
+ ------
62
+ Timeout
63
+ If the operation times out before completion.
64
+ """
65
+ deadline = time() + timeout_seconds
66
+ while True:
67
+ if time() >= deadline:
68
+ raise Timeout("Timed out waiting for geometry contacts to be computed.")
69
+
70
+ response = get_geometry_contacts(geometry_id, geometry_version_id, project_id)
71
+
72
+ if response.found:
73
+ if response.operation_error:
74
+ raise GeometryContactsError(
75
+ f"Geometry contacts computation failed with error. Issues: {response.issues}"
76
+ )
77
+ return response
78
+
79
+ # not yet found/complete, continue polling
80
+ sleep(max(0, min(interval_seconds, deadline - time())))
81
+
82
+
83
+ class Contact:
84
+ """Represents a single contact between two surfaces."""
85
+
86
+ def __init__(self, id: str, side_a: list[str], side_b: list[str]):
87
+ self.id = id
88
+ self.side_a = side_a
89
+ self.side_b = side_b
90
+
91
+ def __repr__(self) -> str:
92
+ return f"Contact(id={self.id}, " f"side_a={self.side_a}, " f"side_b={self.side_b})"
93
+
94
+
95
+ class GeometryContacts(ProtoWrapperBase):
96
+ _proto: "geometrypb.GetGeometryContactsResponse"
97
+
98
+ def __init__(self, proto: "geometrypb.GetGeometryContactsResponse"):
99
+ self._proto = proto
100
+ self.geometry_id: str = ""
101
+ self.geometry_version_id: str = ""
102
+ self.project_id: str = ""
103
+
104
+ @property
105
+ def found(self) -> bool:
106
+ """Whether the contacts computation was found."""
107
+ return self._proto.contacts.found
108
+
109
+ @property
110
+ def operation_error(self) -> bool:
111
+ """Whether the contacts computation encountered an error."""
112
+ return self._proto.contacts.operation_error
113
+
114
+ @property
115
+ def contacts(self) -> list[Contact]:
116
+ """List of computed contacts."""
117
+ return [
118
+ Contact(
119
+ id=c.id,
120
+ side_a=list(c.side_a),
121
+ side_b=list(c.side_b),
122
+ )
123
+ for c in self._proto.contacts.contacts
124
+ ]
125
+
126
+ @property
127
+ def issues(self) -> list:
128
+ """List of issues/warnings from the computation."""
129
+ return list(self._proto.contacts.issues)
130
+
131
+ def geometry(self) -> "Geometry":
132
+ """Get the geometry these contacts are for."""
133
+ return lc.get_geometry(self.geometry_id)
134
+
135
+ def refresh(self) -> "GeometryContacts":
136
+ """
137
+ Sync the GeometryContacts object with the backend.
138
+
139
+ Returns
140
+ -------
141
+ GeometryContacts
142
+ Updated contacts consistent with the backend.
143
+ """
144
+ self._proto = get_geometry_contacts(
145
+ self.geometry_id, self.geometry_version_id, self.project_id
146
+ )._proto
147
+ return self
148
+
149
+ def wait(
150
+ self,
151
+ *,
152
+ interval_seconds: float = 2,
153
+ timeout_seconds: float = float("inf"),
154
+ ) -> bool:
155
+ """
156
+ Wait until the geometry contacts computation has either completed or failed.
157
+
158
+ Mutates self with the final status and results.
159
+
160
+ Parameters
161
+ ----------
162
+ interval_seconds : float, optional
163
+ Number of seconds between polls. Default is 2 seconds.
164
+ timeout_seconds : float, optional
165
+ Number of seconds before timeout.
166
+
167
+ Returns
168
+ -------
169
+ bool
170
+ True if computation completed without error, False if operation_error is True.
171
+ """
172
+ computed_contacts = wait_for_geometry_contacts(
173
+ self.geometry_id,
174
+ self.geometry_version_id,
175
+ self.project_id,
176
+ interval_seconds=interval_seconds,
177
+ timeout_seconds=timeout_seconds,
178
+ )
179
+ # Update self with the final results
180
+ self._proto = computed_contacts._proto
181
+ return self.operation_error is False
182
+
183
+
184
+ def get_geometry_contacts(
185
+ geometry_id: str,
186
+ geometry_version_id: str,
187
+ project_id: str,
188
+ ) -> GeometryContacts:
189
+ """
190
+ Get computed contacts for a specific geometry version.
191
+
192
+ Parameters
193
+ ----------
194
+ geometry_id : str
195
+ The geometry ID
196
+ geometry_version_id : str
197
+ The geometry version ID
198
+ project_id : str
199
+ The project ID
200
+
201
+ Returns
202
+ -------
203
+ GeometryContacts
204
+ The contacts information (may indicate not found if not yet computed)
205
+
206
+ Examples
207
+ --------
208
+ >>> contacts = lc.get_geometry_contacts("geo-123", "gv-456")
209
+ >>> if contacts.found:
210
+ ... print(f"Found {len(contacts.contacts)} contacts")
211
+ """
212
+ req = geometrypb.GetGeometryContactsRequest(
213
+ geometry_id=geometry_id,
214
+ geometry_version_id=geometry_version_id,
215
+ project_id=project_id,
216
+ )
217
+ res = get_default_client().GetGeometryContacts(req)
218
+ contacts = GeometryContacts(res)
219
+ contacts.geometry_id = geometry_id
220
+ contacts.geometry_version_id = geometry_version_id
221
+ contacts.project_id = project_id
222
+ return contacts
@@ -15,7 +15,7 @@ from ..params.geometry import (
15
15
  Volume,
16
16
  )
17
17
  from ..types import Vector3
18
- from .sizing_strategy import MaxCount, Minimal, MinimalCount, SizingStrategy, TargetCount
18
+ from .sizing_strategy import MaxCount, Minimal, SizingStrategy, TargetCount
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -108,7 +108,7 @@ class RefinementRegion:
108
108
  proto.h_limit = self.h_limit
109
109
  if isinstance(self.shape, Sphere):
110
110
  proto.sphere.center_float.CopyFrom(self.shape.center._to_base_proto())
111
- proto.sphere.radius_float = self.shape.radius
111
+ proto.sphere.radius_float = float(self.shape.radius)
112
112
  elif isinstance(self.shape, SphereShell):
113
113
  proto.sphere_shell.center.CopyFrom(self.shape.center._to_base_proto())
114
114
  proto.sphere_shell.radius = self.shape.radius
@@ -125,7 +125,7 @@ class RefinementRegion:
125
125
  elif isinstance(self.shape, Cylinder):
126
126
  proto.cylinder.start_float.CopyFrom(self.shape.start._to_base_proto())
127
127
  proto.cylinder.end_float.CopyFrom(self.shape.end._to_base_proto())
128
- proto.cylinder.radius_float = self.shape.radius
128
+ proto.cylinder.radius_float = float(self.shape.radius)
129
129
  elif isinstance(self.shape, AnnularCylinder):
130
130
  proto.annular_cylinder.start.CopyFrom(self.shape.start._to_base_proto())
131
131
  proto.annular_cylinder.end.CopyFrom(self.shape.end._to_base_proto())
@@ -178,7 +178,7 @@ class MeshGenerationParams:
178
178
  )
179
179
  )
180
180
 
181
- if isinstance(self.sizing_strategy, (MinimalCount, Minimal)):
181
+ if isinstance(self.sizing_strategy, Minimal):
182
182
  proto.mesh_complexity_params.type = (
183
183
  meshpb.MeshGenerationParams.MeshComplexityParams.ComplexityType.MIN
184
184
  )
@@ -1,6 +1,5 @@
1
1
  from .sizing_strategies import (
2
2
  SizingStrategy,
3
- MinimalCount,
4
3
  Minimal,
5
4
  TargetCount,
6
5
  MaxCount,
@@ -1,7 +1,5 @@
1
1
  from dataclasses import dataclass
2
2
 
3
- from luminarycloud._helpers.warnings.deprecated import deprecated
4
-
5
3
 
6
4
  @dataclass
7
5
  class SizingStrategy:
@@ -10,24 +8,6 @@ class SizingStrategy:
10
8
  pass
11
9
 
12
10
 
13
- @deprecated(
14
- "Use luminarycloud.meshing.sizing_strategy.Minimal instead.",
15
- "0.10.2",
16
- )
17
- @dataclass
18
- class MinimalCount(SizingStrategy):
19
- """
20
- Minimal sizing strategy parameters.
21
-
22
- If this is used, all other meshing parameters are ignored.
23
-
24
- .. deprecated:: 0.10.2
25
- Use [`Minimal()`](#luminarycloud.meshing.sizing_strategy.Minimal) instead.
26
- """
27
-
28
- pass
29
-
30
-
31
11
  @dataclass
32
12
  class Minimal(SizingStrategy):
33
13
  """