luminarycloud 0.13.1__py3-none-any.whl → 0.14.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. luminarycloud/__init__.py +3 -0
  2. luminarycloud/_client/client.py +4 -0
  3. luminarycloud/_client/logging_interceptor.py +25 -0
  4. luminarycloud/_client/tracing.py +13 -8
  5. luminarycloud/_helpers/__init__.py +1 -0
  6. luminarycloud/_helpers/download.py +28 -1
  7. luminarycloud/_helpers/named_variables.py +25 -0
  8. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.py +40 -40
  9. luminarycloud/_proto/api/v0/luminarycloud/mesh/mesh_pb2.pyi +8 -2
  10. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +182 -0
  11. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +260 -0
  12. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +204 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +75 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +12 -12
  15. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +5 -1
  16. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +2 -1
  17. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +6 -2
  18. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.py +36 -14
  19. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.pyi +37 -1
  20. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2_grpc.py +34 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2_grpc.pyi +12 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +156 -132
  23. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +65 -7
  24. luminarycloud/_proto/assistant/assistant_pb2.py +172 -23
  25. luminarycloud/_proto/assistant/assistant_pb2.pyi +358 -4
  26. luminarycloud/_proto/client/simulation_pb2.py +284 -283
  27. luminarycloud/_proto/client/simulation_pb2.pyi +37 -32
  28. luminarycloud/_proto/geometry/geometry_pb2.py +46 -46
  29. luminarycloud/_proto/geometry/geometry_pb2.pyi +6 -1
  30. luminarycloud/_proto/hexmesh/hexmesh_pb2.py +138 -37
  31. luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +218 -37
  32. luminarycloud/_proto/quantity/quantity_pb2.py +4 -4
  33. luminarycloud/enum/vis_enums.py +26 -11
  34. luminarycloud/named_variable_set.py +121 -0
  35. luminarycloud/params/__init__.py +1 -2
  36. luminarycloud/params/enum/_enum_wrappers.py +861 -4
  37. luminarycloud/params/outputs/output.py +1 -1
  38. luminarycloud/params/{param_wrappers/simulation_param → simulation}/__init__.py +1 -0
  39. luminarycloud/params/{param_wrappers → simulation}/_lib.py +2 -4
  40. luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement/boundary_layer_profile_.py +2 -2
  41. luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement_.py +4 -4
  42. luminarycloud/params/{param_wrappers/simulation_param → simulation}/adjoint_.py +2 -2
  43. luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/gravity_off_.py +4 -4
  44. luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/gravity_on_.py +4 -4
  45. luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity_.py +2 -2
  46. luminarycloud/params/{param_wrappers/simulation_param → simulation}/body_frame_.py +2 -2
  47. luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/volume_material_relationship_.py +2 -2
  48. luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/volume_physics_relationship_.py +2 -2
  49. luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships_.py +6 -6
  50. luminarycloud/params/{param_wrappers/simulation_param → simulation}/general_.py +8 -10
  51. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/boussinesq_off_.py +4 -4
  52. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/boussinesq_on_.py +4 -4
  53. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation_.py +2 -2
  54. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/ideal_gas_.py +4 -6
  55. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/incompressible_fluid_.py +4 -6
  56. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/incompressible_fluid_with_energy_.py +4 -6
  57. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model_.py +2 -2
  58. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +4 -4
  59. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +4 -4
  60. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +4 -4
  61. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model_.py +2 -2
  62. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/prescribed_viscosity_.py +4 -6
  63. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/sutherland_.py +4 -6
  64. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +4 -6
  65. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model_.py +2 -2
  66. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/material_fluid_.py +32 -40
  67. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/material_solid_.py +2 -2
  68. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material_entity_.py +6 -10
  69. luminarycloud/params/{param_wrappers/simulation_param → simulation}/monitor_plane_.py +10 -5
  70. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/no_transform_.py +4 -6
  71. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/rotational_transform_.py +4 -6
  72. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/translational_transform_.py +4 -6
  73. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms_.py +2 -2
  74. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/constant_angular_motion_.py +4 -4
  75. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/constant_translation_motion_.py +4 -4
  76. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type_.py +2 -2
  77. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data_.py +16 -20
  78. luminarycloud/params/{param_wrappers/simulation_param → simulation}/multi_physics_coupling_options_.py +2 -2
  79. luminarycloud/params/{param_wrappers/simulation_param → simulation}/output_.py +2 -2
  80. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +4 -4
  81. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +4 -4
  82. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +2 -2
  83. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +49 -0
  84. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_line_.py +4 -6
  85. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/probe_points_.py +4 -6
  86. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/source_points_.py +4 -6
  87. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type_.py +2 -2
  88. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group_.py +20 -17
  89. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/adjoint_controls_fluid_.py +2 -2
  90. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/basic_fluid_.py +2 -2
  91. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/__init__.py +0 -1
  92. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +111 -0
  93. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/__init__.py +1 -0
  94. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +4 -6
  95. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +55 -0
  96. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -6
  97. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -6
  98. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +8 -6
  99. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +8 -6
  100. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +104 -0
  101. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +4 -4
  102. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +4 -4
  103. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +4 -4
  104. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +4 -4
  105. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +2 -2
  106. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet_.py +14 -14
  107. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/symmetry_.py +4 -4
  108. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +50 -0
  109. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +4 -4
  110. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +4 -4
  111. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +4 -4
  112. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/slip_.py +4 -4
  113. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +4 -4
  114. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/wall_energy_.py +2 -2
  115. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/wall_momentum_.py +2 -2
  116. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall_.py +18 -18
  117. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions_fluid_.py +9 -4
  118. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization/__init__.py +0 -1
  119. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization/fluid_existing_solution_.py +4 -6
  120. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +65 -0
  121. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +77 -0
  122. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +44 -0
  123. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization_fluid_.py +2 -2
  124. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +10 -5
  125. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +6 -6
  126. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +4 -4
  127. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -4
  128. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +4 -4
  129. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +8 -6
  130. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +6 -6
  131. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +8 -6
  132. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +2 -2
  133. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +4 -4
  134. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -4
  135. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +8 -6
  136. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model_.py +2 -2
  137. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior_.py +34 -29
  138. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/porous_behavior_.py +10 -5
  139. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +4 -4
  140. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +4 -4
  141. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +4 -4
  142. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +2 -2
  143. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +16 -16
  144. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method_.py +2 -2
  145. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +4 -4
  146. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +4 -4
  147. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method_.py +2 -2
  148. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls_fluid_.py +14 -14
  149. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +4 -4
  150. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/fds_.py +4 -4
  151. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +6 -4
  152. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +4 -4
  153. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_.py +2 -2
  154. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +4 -4
  155. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +4 -4
  156. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order_.py +2 -2
  157. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization_fluid_.py +20 -18
  158. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/ddes_.py +4 -6
  159. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +4 -6
  160. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/iddes_.py +4 -6
  161. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation_.py +2 -2
  162. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +4 -4
  163. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +4 -4
  164. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +2 -2
  165. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst_.py +10 -12
  166. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +4 -4
  167. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +4 -4
  168. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +2 -2
  169. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras_.py +10 -12
  170. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +4 -4
  171. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +4 -4
  172. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +4 -4
  173. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +4 -4
  174. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +4 -4
  175. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model_.py +2 -2
  176. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence_.py +22 -32
  177. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid_.py +60 -78
  178. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/adjoint_controls_heat_.py +2 -2
  179. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_convection_.py +4 -4
  180. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +4 -4
  181. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -4
  182. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_symmetry_.py +4 -4
  183. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_temperature_.py +4 -4
  184. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions_heat_.py +9 -4
  185. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +4 -4
  186. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +4 -4
  187. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type_.py +2 -2
  188. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source_.py +16 -11
  189. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/heat_existing_solution_.py +4 -6
  190. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/heat_prescribed_values_.py +4 -6
  191. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization_heat_.py +2 -2
  192. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +10 -10
  193. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method_.py +2 -2
  194. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls_heat_.py +6 -6
  195. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/spatial_discretization_heat_.py +2 -2
  196. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat_.py +32 -40
  197. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +4 -6
  198. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/translational_periodicity_.py +4 -6
  199. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type_.py +2 -2
  200. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair_.py +8 -10
  201. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/gauss_seidel_.py +4 -4
  202. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/krylov_amg_.py +4 -4
  203. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type_.py +2 -2
  204. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics_.py +6 -6
  205. luminarycloud/params/{param_wrappers → simulation}/simulation_param_.py +34 -40
  206. luminarycloud/params/{param_wrappers/simulation_param → simulation}/sliding_interfaces_.py +10 -5
  207. luminarycloud/params/{param_wrappers/simulation_param → simulation}/surface_name_.py +2 -2
  208. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/compute_statistics_off_.py +4 -6
  209. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/compute_statistics_on_.py +4 -6
  210. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics_.py +2 -2
  211. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/time_explicit_.py +4 -4
  212. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/time_implicit_.py +4 -4
  213. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching_.py +2 -2
  214. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/time_step_ramp_off_.py +4 -4
  215. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/time_step_ramp_on_.py +4 -4
  216. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp_.py +2 -2
  217. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time_.py +20 -30
  218. luminarycloud/params/{param_wrappers/simulation_param → simulation}/volume_entity_.py +2 -2
  219. luminarycloud/project.py +83 -20
  220. luminarycloud/reference_values.py +1 -1
  221. luminarycloud/simulation.py +13 -2
  222. luminarycloud/simulation_param.py +94 -10
  223. luminarycloud/solution.py +24 -3
  224. luminarycloud/types/__init__.py +1 -0
  225. luminarycloud/types/adfloat.py +49 -19
  226. luminarycloud/types/ids.py +1 -0
  227. luminarycloud/types/vector3.py +28 -2
  228. luminarycloud/vis/__init__.py +2 -1
  229. luminarycloud/vis/display.py +57 -67
  230. luminarycloud/vis/filters.py +97 -16
  231. luminarycloud/vis/interactive_scene.py +40 -3
  232. luminarycloud/vis/visualization.py +84 -58
  233. luminarycloud/volume_selection.py +27 -15
  234. {luminarycloud-0.13.1.dist-info → luminarycloud-0.14.1.dist-info}/METADATA +1 -1
  235. luminarycloud-0.14.1.dist-info/RECORD +472 -0
  236. luminarycloud/params/param_wrappers/__init__.py +0 -2
  237. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk_.py +0 -51
  238. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/farfield_.py +0 -197
  239. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet_.py +0 -189
  240. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/__init__.py +0 -4
  241. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/__init__.py +0 -5
  242. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_komega_variables_.py +0 -37
  243. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_and_intensity_komega_.py +0 -33
  244. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_ratio_and_intensity_komega_.py +0 -33
  245. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega_boundary_conditions_.py +0 -25
  246. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/__init__.py +0 -3
  247. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_sa_variable_.py +0 -33
  248. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_ratio_sa_.py +0 -31
  249. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_sa_.py +0 -31
  250. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras_boundary_conditions_.py +0 -25
  251. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +0 -65
  252. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_farfield_values_.py +0 -173
  253. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_prescribed_values_.py +0 -185
  254. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/__init__.py +0 -4
  255. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/__init__.py +0 -5
  256. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_farfield_values_komega_.py +0 -30
  257. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_and_intensity_komega_.py +0 -33
  258. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_ratio_and_intensity_komega_.py +0 -33
  259. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega_initialization_.py +0 -25
  260. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/__init__.py +0 -4
  261. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_farfield_values_sa_.py +0 -30
  262. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_sa_variable_.py +0 -31
  263. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_ratio_sa_.py +0 -31
  264. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_sa_.py +0 -31
  265. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras_initialization_.py +0 -25
  266. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence_initialization_.py +0 -69
  267. luminarycloud-0.13.1.dist-info/RECORD +0 -489
  268. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement/__init__.py +0 -0
  269. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/__init__.py +0 -0
  270. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/__init__.py +0 -0
  271. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/__init__.py +0 -0
  272. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/__init__.py +0 -0
  273. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/__init__.py +0 -0
  274. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/__init__.py +0 -0
  275. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/__init__.py +0 -0
  276. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/__init__.py +0 -0
  277. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/__init__.py +0 -0
  278. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/__init__.py +0 -0
  279. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/__init__.py +0 -0
  280. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/__init__.py +0 -0
  281. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/__init__.py +0 -0
  282. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/__init__.py +0 -0
  283. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/__init__.py +0 -0
  284. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/__init__.py +0 -0
  285. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/__init__.py +0 -0
  286. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/__init__.py +0 -0
  287. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/__init__.py +0 -0
  288. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/__init__.py +0 -0
  289. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/__init__.py +0 -0
  290. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/__init__.py +0 -0
  291. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/__init__.py +0 -0
  292. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/__init__.py +0 -0
  293. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/__init__.py +0 -0
  294. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/__init__.py +0 -0
  295. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/__init__.py +0 -0
  296. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/__init__.py +0 -0
  297. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/__init__.py +0 -0
  298. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/__init__.py +0 -0
  299. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/__init__.py +0 -0
  300. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/__init__.py +0 -0
  301. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/__init__.py +0 -0
  302. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/__init__.py +0 -0
  303. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/__init__.py +0 -0
  304. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/__init__.py +0 -0
  305. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/__init__.py +0 -0
  306. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/__init__.py +0 -0
  307. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/__init__.py +0 -0
  308. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/__init__.py +0 -0
  309. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/__init__.py +0 -0
  310. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/__init__.py +0 -0
  311. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/__init__.py +0 -0
  312. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/__init__.py +0 -0
  313. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/__init__.py +0 -0
  314. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/__init__.py +0 -0
  315. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/__init__.py +0 -0
  316. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/__init__.py +0 -0
  317. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/__init__.py +0 -0
  318. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method/__init__.py +0 -0
  319. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/__init__.py +0 -0
  320. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/__init__.py +0 -0
  321. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/__init__.py +0 -0
  322. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/__init__.py +0 -0
  323. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/__init__.py +0 -0
  324. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/__init__.py +0 -0
  325. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/__init__.py +0 -0
  326. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/__init__.py +0 -0
  327. {luminarycloud-0.13.1.dist-info → luminarycloud-0.14.1.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
2
 
3
- from abc import ABCMeta
3
+ from abc import ABC, ABCMeta
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Any, Optional
6
6
  from uuid import uuid4
@@ -15,7 +15,7 @@ from luminarycloud._proto.client import simulation_pb2 as clientpb
15
15
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.param_wrappers._lib import ParamGroupWrapper, CodeRepr, create_unique_id
18
+ from luminarycloud.params.simulation._lib import ParamGroupWrapper, CodeRepr, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -1,6 +1,6 @@
1
1
  # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
2
 
3
- from abc import ABCMeta
3
+ from abc import ABC, ABCMeta
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Any, Optional
6
6
  from uuid import uuid4
@@ -15,10 +15,10 @@ from luminarycloud._proto.client import simulation_pb2 as clientpb
15
15
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.param_wrappers._lib import ParamGroupWrapper, CodeRepr, create_unique_id
18
+ from luminarycloud.params.simulation._lib import ParamGroupWrapper, CodeRepr, create_unique_id
19
19
 
20
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp_ import TimeStepRamp
21
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp_ import *
20
+ from luminarycloud.params.simulation.time.time_step_ramp_ import TimeStepRamp
21
+ from luminarycloud.params.simulation.time.time_step_ramp_ import *
22
22
 
23
23
 
24
24
  @dataclass(kw_only=True)
@@ -1,6 +1,6 @@
1
1
  # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
2
 
3
- from abc import ABCMeta
3
+ from abc import ABC, ABCMeta
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Any, Optional
6
6
  from uuid import uuid4
@@ -15,10 +15,10 @@ from luminarycloud._proto.client import simulation_pb2 as clientpb
15
15
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.param_wrappers._lib import ParamGroupWrapper, CodeRepr, create_unique_id
18
+ from luminarycloud.params.simulation._lib import ParamGroupWrapper, CodeRepr, create_unique_id
19
19
 
20
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp_ import TimeStepRamp
21
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp_ import *
20
+ from luminarycloud.params.simulation.time.time_step_ramp_ import TimeStepRamp
21
+ from luminarycloud.params.simulation.time.time_step_ramp_ import *
22
22
 
23
23
 
24
24
  @dataclass(kw_only=True)
@@ -1,6 +1,6 @@
1
1
  # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
2
 
3
- from abc import ABCMeta
3
+ from abc import ABC, ABCMeta
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Any, Optional
6
6
  from uuid import uuid4
@@ -15,7 +15,7 @@ from luminarycloud._proto.client import simulation_pb2 as clientpb
15
15
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.param_wrappers._lib import ParamGroupWrapper, CodeRepr, create_unique_id
18
+ from luminarycloud.params.simulation._lib import ParamGroupWrapper, CodeRepr, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
@@ -1,6 +1,6 @@
1
1
  # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
2
 
3
- from abc import ABCMeta
3
+ from abc import ABC, ABCMeta
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Any, Optional
6
6
  from uuid import uuid4
@@ -15,40 +15,30 @@ from luminarycloud._proto.client import simulation_pb2 as clientpb
15
15
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.param_wrappers._lib import ParamGroupWrapper, CodeRepr, create_unique_id
18
+ from luminarycloud.params.simulation._lib import ParamGroupWrapper, CodeRepr, create_unique_id
19
19
 
20
- from luminarycloud.params.param_wrappers.simulation_param.time.compute_statistics_ import (
21
- ComputeStatistics,
22
- )
23
- from luminarycloud.params.param_wrappers.simulation_param.time.compute_statistics_ import *
24
- from luminarycloud.params.param_wrappers.simulation_param.time.compute_statistics.compute_statistics_off_ import (
20
+ from luminarycloud.params.simulation.time.compute_statistics_ import ComputeStatistics
21
+ from luminarycloud.params.simulation.time.compute_statistics_ import *
22
+ from luminarycloud.params.simulation.time.compute_statistics.compute_statistics_off_ import (
25
23
  ComputeStatisticsOff,
26
24
  )
27
- from luminarycloud.params.param_wrappers.simulation_param.time.compute_statistics.compute_statistics_off_ import *
28
- from luminarycloud.params.param_wrappers.simulation_param.time.compute_statistics.compute_statistics_on_ import (
25
+ from luminarycloud.params.simulation.time.compute_statistics.compute_statistics_off_ import *
26
+ from luminarycloud.params.simulation.time.compute_statistics.compute_statistics_on_ import (
29
27
  ComputeStatisticsOn,
30
28
  )
31
- from luminarycloud.params.param_wrappers.simulation_param.time.compute_statistics.compute_statistics_on_ import *
32
- from luminarycloud.params.param_wrappers.simulation_param.time.time_marching.time_explicit_ import (
33
- TimeExplicit,
34
- )
35
- from luminarycloud.params.param_wrappers.simulation_param.time.time_marching.time_explicit_ import *
36
- from luminarycloud.params.param_wrappers.simulation_param.time.time_marching.time_implicit_ import (
37
- TimeImplicit,
38
- )
39
- from luminarycloud.params.param_wrappers.simulation_param.time.time_marching.time_implicit_ import *
40
- from luminarycloud.params.param_wrappers.simulation_param.time.time_marching_ import TimeMarching
41
- from luminarycloud.params.param_wrappers.simulation_param.time.time_marching_ import *
42
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp_ import TimeStepRamp
43
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp_ import *
44
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp.time_step_ramp_off_ import (
45
- TimeStepRampOff,
46
- )
47
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp.time_step_ramp_off_ import *
48
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp.time_step_ramp_on_ import (
49
- TimeStepRampOn,
50
- )
51
- from luminarycloud.params.param_wrappers.simulation_param.time.time_step_ramp.time_step_ramp_on_ import *
29
+ from luminarycloud.params.simulation.time.compute_statistics.compute_statistics_on_ import *
30
+ from luminarycloud.params.simulation.time.time_marching.time_explicit_ import TimeExplicit
31
+ from luminarycloud.params.simulation.time.time_marching.time_explicit_ import *
32
+ from luminarycloud.params.simulation.time.time_marching.time_implicit_ import TimeImplicit
33
+ from luminarycloud.params.simulation.time.time_marching.time_implicit_ import *
34
+ from luminarycloud.params.simulation.time.time_marching_ import TimeMarching
35
+ from luminarycloud.params.simulation.time.time_marching_ import *
36
+ from luminarycloud.params.simulation.time.time_step_ramp_ import TimeStepRamp
37
+ from luminarycloud.params.simulation.time.time_step_ramp_ import *
38
+ from luminarycloud.params.simulation.time.time_step_ramp.time_step_ramp_off_ import TimeStepRampOff
39
+ from luminarycloud.params.simulation.time.time_step_ramp.time_step_ramp_off_ import *
40
+ from luminarycloud.params.simulation.time.time_step_ramp.time_step_ramp_on_ import TimeStepRampOn
41
+ from luminarycloud.params.simulation.time.time_step_ramp.time_step_ramp_on_ import *
52
42
 
53
43
 
54
44
  @dataclass(kw_only=True)
@@ -1,6 +1,6 @@
1
1
  # Generated by generate_sdk_wrappers.py. DO NOT EDIT
2
2
 
3
- from abc import ABCMeta
3
+ from abc import ABC, ABCMeta
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Any, Optional
6
6
  from uuid import uuid4
@@ -15,7 +15,7 @@ from luminarycloud._proto.client import simulation_pb2 as clientpb
15
15
  from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
16
16
  import luminarycloud.params.enum._enum_wrappers as enum
17
17
 
18
- from luminarycloud.params.param_wrappers._lib import ParamGroupWrapper, CodeRepr, create_unique_id
18
+ from luminarycloud.params.simulation._lib import ParamGroupWrapper, CodeRepr, create_unique_id
19
19
 
20
20
 
21
21
  @dataclass(kw_only=True)
luminarycloud/project.py CHANGED
@@ -2,14 +2,18 @@
2
2
  from __future__ import annotations
3
3
 
4
4
  import re
5
+ import uuid
5
6
  from datetime import datetime
6
7
  from os import PathLike, path
7
- from typing import TYPE_CHECKING, Optional
8
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Union
9
+
10
+ import concurrent
8
11
 
9
12
  import grpc
10
13
 
11
14
  import luminarycloud as lc
12
- from luminarycloud.params.param_wrappers.simulation_param.adjoint_ import Adjoint
15
+ from luminarycloud._helpers.named_variables import _named_variables_to_proto
16
+ from luminarycloud.params.simulation.adjoint_ import Adjoint
13
17
 
14
18
  from ._client import get_default_client
15
19
  from ._helpers import (
@@ -22,18 +26,20 @@ from ._helpers import (
22
26
  upload_mesh,
23
27
  upload_table_as_json,
24
28
  )
25
- from luminarycloud._helpers import util
26
29
  from ._helpers.warnings import deprecated, experimental
27
30
  from ._proto.api.v0.luminarycloud.geometry import geometry_pb2 as geometrypb
28
31
  from ._proto.api.v0.luminarycloud.mesh import mesh_pb2 as meshpb
32
+ from ._proto.api.v0.luminarycloud.named_variable_set import (
33
+ named_variable_set_pb2 as namedvariablepb,
34
+ )
29
35
  from ._proto.api.v0.luminarycloud.project import project_pb2 as projectpb
30
36
  from ._proto.api.v0.luminarycloud.simulation import simulation_pb2 as simulationpb
31
37
  from ._proto.api.v0.luminarycloud.simulation_template import (
32
38
  simulation_template_pb2 as simtemplatepb,
33
39
  )
34
40
  from ._proto.client import simulation_pb2 as clientpb
35
- from ._proto.upload import upload_pb2 as uploadpb
36
41
  from ._proto.hexmesh import hexmesh_pb2 as hexmeshpb
42
+ from ._proto.upload import upload_pb2 as uploadpb
37
43
  from ._wrapper import ProtoWrapper, ProtoWrapperBase
38
44
  from .enum import GPUType, MeshType, TableType
39
45
  from .meshing import MeshAdaptationParams, MeshGenerationParams
@@ -44,6 +50,7 @@ from .types import MeshID, ProjectID
44
50
  if TYPE_CHECKING:
45
51
  from .geometry import Geometry
46
52
  from .mesh import Mesh
53
+ from .named_variable_set import NamedVariableSet
47
54
  from .simulation import Simulation
48
55
  from .simulation_template import SimulationTemplate
49
56
 
@@ -337,22 +344,44 @@ class Project(ProtoWrapperBase):
337
344
  return lc.Mesh(res.mesh)
338
345
  raise
339
346
 
340
- def create_hex_mesh(self, file_path: PathLike | str, params: hexmeshpb.HexMeshSpec) -> "Mesh":
347
+ def create_hex_mesh(
348
+ self,
349
+ names_to_file_paths: Dict[str, Union[PathLike[Any], str]],
350
+ params: hexmeshpb.HexMeshSpec,
351
+ ) -> "Mesh":
341
352
  """
342
353
  Creates a hex mesh. Only for internal use.
343
354
  """
344
355
  client = get_default_client()
345
- if not str(file_path).endswith(".stl"):
346
- raise ValueError("File must be a .stl file")
347
356
 
348
- file_meta = util.get_file_metadata(file_path)
349
- finish_res = upload_file(
350
- client,
351
- self.id,
352
- uploadpb.ResourceParams(geometry_params=uploadpb.GeometryParams()),
353
- file_path,
354
- )[1]
355
- params.file_url = finish_res.url
357
+ def upload_single_file(name: str, file_path: Union[PathLike[Any], str]) -> tuple[str, str]:
358
+ if not str(file_path).endswith(".stl"):
359
+ raise ValueError(f"File {file_path} must be a .stl file")
360
+ finish_res = upload_file(
361
+ client,
362
+ self.id,
363
+ uploadpb.ResourceParams(geometry_params=uploadpb.GeometryParams()),
364
+ file_path,
365
+ )[1]
366
+ return name, finish_res.url
367
+
368
+ names_to_uploaded_file_paths = {}
369
+ with concurrent.futures.ThreadPoolExecutor() as executor:
370
+ future_to_name = {
371
+ executor.submit(upload_single_file, name, file_path): name
372
+ for name, file_path in names_to_file_paths.items()
373
+ }
374
+
375
+ for future in concurrent.futures.as_completed(future_to_name):
376
+ try:
377
+ name, url = future.result()
378
+ names_to_uploaded_file_paths[name] = url
379
+ except Exception as exc:
380
+ name = future_to_name[future]
381
+ raise RuntimeError(f"Upload failed for {name}: {exc}")
382
+
383
+ for name, url in names_to_uploaded_file_paths.items():
384
+ params.names_to_file_urls[name] = url
356
385
 
357
386
  req = meshpb.CreateHexMeshRequest(project_id=self.id, hex_mesh_config=params)
358
387
 
@@ -503,7 +532,8 @@ class Project(ProtoWrapperBase):
503
532
 
504
533
  def list_simulation_templates(self) -> "list[SimulationTemplate]":
505
534
  """
506
- List all simulation templates in project.
535
+ List all simulation templates in project. The first one in the list is the "setup" template,
536
+ which is the one that is synced to the Setup tab in the UI.
507
537
  """
508
538
  req = simtemplatepb.ListSimulationTemplatesRequest(project_id=self.id)
509
539
  res = get_default_client().ListSimulationTemplates(req)
@@ -513,7 +543,7 @@ class Project(ProtoWrapperBase):
513
543
  self,
514
544
  name: str,
515
545
  *,
516
- parameters: Optional[clientpb.SimulationParam] = None,
546
+ parameters: Optional[Union[clientpb.SimulationParam, SimulationParam]] = None,
517
547
  params_json_path: Optional[PathLike | str] = None,
518
548
  ) -> "SimulationTemplate":
519
549
  """
@@ -533,15 +563,48 @@ class Project(ProtoWrapperBase):
533
563
  Path to local JSON file containing simulation params.
534
564
  """
535
565
  if params_json_path is not None:
536
- parameters = simulation_params_from_json_path(params_json_path)
537
- elif parameters is None:
566
+ param_proto = simulation_params_from_json_path(params_json_path)
567
+ elif parameters is not None:
568
+ if isinstance(parameters, SimulationParam):
569
+ param_proto = parameters._to_proto()
570
+ else:
571
+ param_proto = clientpb.SimulationParam()
572
+ param_proto.CopyFrom(parameters)
573
+ else:
538
574
  raise Exception("Either parameters or params_json_path must be set")
539
575
  req = simtemplatepb.CreateSimulationTemplateRequest(
540
- project_id=self.id, name=name, parameters=parameters
576
+ project_id=self.id, name=name, parameters=param_proto
541
577
  )
542
578
  res = get_default_client().CreateSimulationTemplate(req)
543
579
  return lc.SimulationTemplate(res.simulation_template)
544
580
 
581
+ @experimental
582
+ def create_named_variable_set(
583
+ self, name: str, named_variables: dict[str, float | str]
584
+ ) -> NamedVariableSet:
585
+ """
586
+ Create a new named variable set.
587
+
588
+ Note: This feature is experimental and may change or be removed without notice.
589
+ """
590
+ req = namedvariablepb.CreateNamedVariableSetRequest(
591
+ project_id=self.id,
592
+ name=name,
593
+ named_variables=_named_variables_to_proto(named_variables),
594
+ request_id=str(uuid.uuid4()),
595
+ )
596
+ res: namedvariablepb.CreateNamedVariableSetResponse = (
597
+ get_default_client().CreateNamedVariableSet(req)
598
+ )
599
+ return lc.NamedVariableSet(res.named_variable_set)
600
+
601
+ def list_named_variable_sets(self) -> list[NamedVariableSet]:
602
+ req = namedvariablepb.ListNamedVariableSetsRequest(project_id=self.id)
603
+ res: namedvariablepb.ListNamedVariableSetsResponse = (
604
+ get_default_client().ListNamedVariableSets(req)
605
+ )
606
+ return [lc.NamedVariableSet(n) for n in res.named_variable_sets]
607
+
545
608
 
546
609
  def create_project(
547
610
  name: str,
@@ -5,7 +5,7 @@ from ._proto.base.base_pb2 import AdFloatType
5
5
  from ._proto.output import reference_values_pb2 as refvalpb
6
6
  from .enum import ReferenceValuesType
7
7
 
8
- from .params.param_wrappers._lib import CodeRepr
8
+ from .params.simulation._lib import CodeRepr
9
9
 
10
10
 
11
11
  @dataclass(kw_only=True)
@@ -10,6 +10,7 @@ from ._proto.api.v0.luminarycloud.common import common_pb2 as commonpb
10
10
  from ._proto.api.v0.luminarycloud.simulation import simulation_pb2 as simulationpb
11
11
  from ._proto.api.v0.luminarycloud.solution import solution_pb2 as solutionpb
12
12
  from ._proto.client import simulation_pb2 as clientpb
13
+ from ._proto.quantity import quantity_options_pb2 as quantityoptspb
13
14
  from ._wrapper import ProtoWrapper, ProtoWrapperBase
14
15
  from .enum import (
15
16
  AveragingType,
@@ -19,6 +20,7 @@ from .enum import (
19
20
  SimulationStatus,
20
21
  Vector3Component,
21
22
  )
23
+ from .simulation_param import SimulationParam
22
24
  from .reference_values import ReferenceValues
23
25
  from .solution import Solution
24
26
  from .types import MeshID, ProjectID, SimulationID, Vector3Like
@@ -178,7 +180,7 @@ class Simulation(ProtoWrapperBase):
178
180
  surface_ids: list[str],
179
181
  *,
180
182
  reference_values: ReferenceValues = None,
181
- calculation_type: CalculationType = CalculationType.PER_SURFACE,
183
+ calculation_type: CalculationType = CalculationType.AGGREGATE,
182
184
  frame_id: str = "",
183
185
  force_direction: Optional[Vector3Like] = None,
184
186
  moment_center: Optional[Vector3Like] = None,
@@ -204,7 +206,7 @@ class Simulation(ProtoWrapperBase):
204
206
  reference values will be used.
205
207
  calculation_type : CalculationType, optional
206
208
  Whether the calculation should be done for all the surfaces together or each surface
207
- individually. Default is PER_SURFACE.
209
+ individually. Default is AGGREGATE.
208
210
  frame_id: str, optional
209
211
  The ID of the reference frame that this output should be
210
212
  reported in for "force" quantity types.
@@ -242,6 +244,8 @@ class Simulation(ProtoWrapperBase):
242
244
  ... with open(dl.filename, "w") as fp:
243
245
  ... fp.write(dl.read())
244
246
  """
247
+ if quantity_type._has_tag(quantityoptspb.TAG_COEFFICIENT) and reference_values is None:
248
+ print("WARNING: Quantity is a coefficient but reference values were not specified.")
245
249
  req = simulationpb.GetSimulationSurfaceQuantityOutputRequest(
246
250
  id=self.id,
247
251
  quantity_type=quantity_type.value,
@@ -288,6 +292,13 @@ class Simulation(ProtoWrapperBase):
288
292
  req = simulationpb.GetSimulationParametersRequest(id=self.id)
289
293
  return get_default_client().GetSimulationParameters(req)
290
294
 
295
+ def get_simulation_param(self) -> SimulationParam:
296
+ """
297
+ Returns the simulation parameters associated with this template to allow customization of
298
+ the parameters.
299
+ """
300
+ return SimulationParam.from_proto(self.get_parameters())
301
+
291
302
 
292
303
  def get_simulation(id: SimulationID) -> Simulation:
293
304
  """
@@ -17,24 +17,24 @@ from luminarycloud._proto.output import output_pb2 as outputpb
17
17
  from luminarycloud._proto.quantity import quantity_options_pb2 as quantityoptspb
18
18
  from luminarycloud.enum import AveragingType, QuantityType, SpaceAveragingType
19
19
  from luminarycloud.params.geometry import Volume
20
- from luminarycloud.params.param_wrappers.simulation_param import (
20
+ from luminarycloud.params.simulation import (
21
21
  EntityRelationships,
22
22
  )
23
- from luminarycloud.params.param_wrappers.simulation_param.adjoint_ import Adjoint
24
- from luminarycloud.params.param_wrappers.simulation_param.entity_relationships.volume_material_relationship_ import (
23
+ from luminarycloud.params.simulation.adjoint_ import Adjoint
24
+ from luminarycloud.params.simulation.entity_relationships.volume_material_relationship_ import (
25
25
  VolumeMaterialRelationship,
26
26
  )
27
- from luminarycloud.params.param_wrappers.simulation_param.entity_relationships.volume_physics_relationship_ import (
27
+ from luminarycloud.params.simulation.entity_relationships.volume_physics_relationship_ import (
28
28
  VolumePhysicsRelationship,
29
29
  )
30
- from luminarycloud.params.param_wrappers.simulation_param.material_entity_ import (
30
+ from luminarycloud.params.simulation.material_entity_ import (
31
31
  MaterialEntity,
32
32
  )
33
- from luminarycloud.params.param_wrappers.simulation_param.physics_ import Physics
34
- from luminarycloud.params.param_wrappers.simulation_param.volume_entity_ import (
33
+ from luminarycloud.params.simulation.physics_ import Physics
34
+ from luminarycloud.params.simulation.volume_entity_ import (
35
35
  VolumeEntity,
36
36
  )
37
- from luminarycloud.params.param_wrappers.simulation_param_ import (
37
+ from luminarycloud.params.simulation import (
38
38
  SimulationParam as _SimulationParam,
39
39
  )
40
40
  from luminarycloud.reference_values import ReferenceValues, ReferenceValuesType
@@ -79,7 +79,49 @@ class SimulationParam(_SimulationParam):
79
79
 
80
80
  def assign_material(self, material: MaterialEntity, volume: Volume | str) -> None:
81
81
  """
82
- Assigns a material entity to a volume ID.
82
+ Assigns a material entity to a volume.
83
+
84
+ This method links a material entity to a specific volume in the simulation domain.
85
+ If the volume or material entity has not been added to the simulation parameters yet,
86
+ they will be added automatically.
87
+
88
+ Parameters
89
+ ----------
90
+ material : MaterialEntity
91
+ The material entity to assign to the volume. This is typically created using
92
+ lc.params.simulation.MaterialEntity.
93
+ volume : Volume | str
94
+ The volume to assign the material to. Can be a Volume object or a string
95
+ representing the volume ID.
96
+
97
+ Examples
98
+ --------
99
+ Using volumes from list_tags():
100
+
101
+ >>> # Get the fluid volume from tags
102
+ >>> tags = geometry.list_tags()
103
+ >>> # Assume the fluid volume is tagged with "Fluid"
104
+ >>> fluid_volume_tag_name = "Fluid"
105
+ >>> fluid_tag = next(
106
+ ... (tag for tag in tags if tag.name == fluid_volume_tag_name and tag.volumes), None
107
+ ... )
108
+ >>> if fluid_tag:
109
+ ... # Assume we want to assign the material to the first volume in the tag
110
+ ... for fluid_volume in fluid_tag.volumes:
111
+ ... simulation_param.assign_material(material, fluid_volume)
112
+ >>> else:
113
+ ... raise ValueError("No fluid volume found")
114
+
115
+ Using volumes from list_entities():
116
+
117
+ >>> # Get the fluid volume from list_entities()
118
+ >>> surfaces, volumes = geometry.list_entities()
119
+ >>> if volumes:
120
+ ... # Assume we want to assign the material to the first volume in the list
121
+ ... fluid_volume_to_assign = volumes[0]
122
+ ... simulation_param.assign_material(material, fluid_volume_to_assign)
123
+ >>> else:
124
+ ... raise ValueError("No fluid volume found")
83
125
  """
84
126
  volume_identifier = EntityIdentifier()
85
127
  if isinstance(volume, str):
@@ -112,7 +154,49 @@ class SimulationParam(_SimulationParam):
112
154
 
113
155
  def assign_physics(self, physics: Physics, volume: Volume | str) -> None:
114
156
  """
115
- Assigns a physics entity to a volume ID.
157
+ Assigns a physics entity to a volume.
158
+
159
+ This method links a physics entity to a specific volume in the simulation domain.
160
+ If the volume or physics entity has not been added to the simulation parameters yet,
161
+ they will be added automatically.
162
+
163
+ Parameters
164
+ ----------
165
+ physics : Physics
166
+ The physics entity to assign to the volume. This is typically created using
167
+ lc.params.simulation.Physics.
168
+ volume : Volume | str
169
+ The volume to assign the physics to. Can be a Volume object or a string
170
+ representing the volume ID.
171
+
172
+ Examples
173
+ --------
174
+ Using volumes from list_tags():
175
+
176
+ >>> # Get the fluid volume from tags
177
+ >>> tags = geometry.list_tags()
178
+ >>> # Assume the fluid volume is tagged with "Fluid"
179
+ >>> fluid_volume_tag_name = "Fluid"
180
+ >>> fluid_tag = next(
181
+ ... (tag for tag in tags if tag.name == fluid_volume_tag_name and tag.volumes), None
182
+ ... )
183
+ >>> if fluid_tag:
184
+ ... # Assume we want to assign the physics to the first volume in the tag
185
+ ... for fluid_volume in fluid_tag.volumes:
186
+ ... simulation_param.assign_physics(physics, fluid_volume)
187
+ >>> else:
188
+ ... raise ValueError("No fluid volume found")
189
+
190
+ Using volumes from list_entities():
191
+
192
+ >>> # Get the fluid volume from list_entities()
193
+ >>> surfaces, volumes = geometry.list_entities()
194
+ >>> if volumes:
195
+ ... # Assume we want to assign the physics to the first volume in the list
196
+ ... fluid_volume_to_assign = volumes[0]
197
+ ... simulation_param.assign_physics(physics, fluid_volume_to_assign)
198
+ >>> else:
199
+ ... raise ValueError("No fluid volume found")
116
200
  """
117
201
  if isinstance(volume, str):
118
202
  volume_identifier = EntityIdentifier(id=volume)
luminarycloud/solution.py CHANGED
@@ -6,11 +6,13 @@ from os import PathLike
6
6
  import luminarycloud as lc
7
7
 
8
8
  from ._client import get_default_client
9
+ from ._helpers.warnings import experimental
9
10
  from ._helpers.download import (
10
11
  download_surface_solution,
11
12
  download_volume_solution,
12
13
  download_surface_deformation_template,
13
14
  download_surface_sensitivity_data,
15
+ download_parameter_sensitivity_data,
14
16
  )
15
17
  from ._helpers.file_chunk_stream import FileChunkStream
16
18
  from ._proto.api.v0.luminarycloud.solution import solution_pb2 as solutionpb
@@ -79,12 +81,17 @@ class Solution(ProtoWrapperBase):
79
81
  mode="r|gz",
80
82
  )
81
83
 
82
- def download_volume_data(self) -> tarfile.TarFile:
84
+ def download_volume_data(self, single_precision: bool = False) -> tarfile.TarFile:
83
85
  """
84
86
  Download volume solution for a completed steady simulation as a gzipped tarball containing .vtu & .vtp files.
85
87
 
86
88
  The output may be broken up into multiple .vtu files for large simulations.
87
89
 
90
+ Parameters
91
+ ----------
92
+ single_precision : bool
93
+ If True, outputs floating point fields in single precision. Defaults to False.
94
+
88
95
  Returns
89
96
  -------
90
97
  tarfile.Tarfile
@@ -108,6 +115,7 @@ class Solution(ProtoWrapperBase):
108
115
  stream = download_volume_solution(
109
116
  get_default_client(),
110
117
  self.id,
118
+ single_precision=single_precision,
111
119
  )
112
120
  return tarfile.open(
113
121
  name=stream.filename,
@@ -125,7 +133,7 @@ class Solution(ProtoWrapperBase):
125
133
  Project.set_surface_deformation to create simulations with volume mesh morphing.
126
134
  """
127
135
  stream = download_surface_deformation_template(get_default_client(), self.id)
128
- return _handle_surface_data_stream(stream, dst)
136
+ _handle_surface_data_stream(stream, dst)
129
137
 
130
138
  def download_surface_sensitivity_data(self, dst: Optional[PathLike] = None) -> None:
131
139
  """
@@ -136,4 +144,17 @@ class Solution(ProtoWrapperBase):
136
144
  The IDs of the sensitivity data are consistent with the node IDs of the surface deformation.
137
145
  """
138
146
  stream = download_surface_sensitivity_data(get_default_client(), self.id)
139
- return _handle_surface_data_stream(stream, dst)
147
+ _handle_surface_data_stream(stream, dst)
148
+
149
+ @experimental
150
+ def download_parameter_sensitivity_data(self, dst: Optional[PathLike] = None) -> None:
151
+ """
152
+ Download the parameter sensitivity data associated with an adjoint solution into the
153
+ destination file or into a default-named file. The data consists of parameter names and
154
+ sensitivity values (d "adjoint output" / d "SimulationParam parameter").
155
+
156
+ NOTE: This is a very experimental feature, likely to change in the future in favor of
157
+ including the sensitivities in a SimulationParam object directly.
158
+ """
159
+ stream = download_parameter_sensitivity_data(get_default_client(), self.id)
160
+ _handle_surface_data_stream(stream, dst)
@@ -6,6 +6,7 @@ from .ids import (
6
6
  SolutionID as SolutionID,
7
7
  SimulationTemplateID as SimulationTemplateID,
8
8
  GeometryFeatureID as GeometryFeatureID,
9
+ NamedVariableSetID as NamedVariableSetID,
9
10
  )
10
11
 
11
12
  from .adfloat import (