luminarycloud 0.13.1__py3-none-any.whl → 0.14.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 (307) hide show
  1. luminarycloud/_helpers/download.py +12 -1
  2. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +12 -12
  3. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +5 -1
  4. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +2 -1
  5. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +6 -2
  6. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.py +14 -14
  7. luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.pyi +5 -1
  8. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +117 -95
  9. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +57 -5
  10. luminarycloud/_proto/assistant/assistant_pb2.py +172 -23
  11. luminarycloud/_proto/assistant/assistant_pb2.pyi +358 -4
  12. luminarycloud/_proto/client/simulation_pb2.py +283 -283
  13. luminarycloud/_proto/client/simulation_pb2.pyi +33 -32
  14. luminarycloud/_proto/geometry/geometry_pb2.py +46 -46
  15. luminarycloud/_proto/geometry/geometry_pb2.pyi +6 -1
  16. luminarycloud/_proto/hexmesh/hexmesh_pb2.py +138 -37
  17. luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +218 -37
  18. luminarycloud/enum/vis_enums.py +26 -11
  19. luminarycloud/params/__init__.py +1 -2
  20. luminarycloud/params/enum/_enum_wrappers.py +861 -4
  21. luminarycloud/params/outputs/output.py +1 -1
  22. luminarycloud/params/{param_wrappers/simulation_param → simulation}/__init__.py +1 -0
  23. luminarycloud/params/{param_wrappers → simulation}/_lib.py +2 -4
  24. luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement/boundary_layer_profile_.py +2 -2
  25. luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement_.py +4 -4
  26. luminarycloud/params/{param_wrappers/simulation_param → simulation}/adjoint_.py +2 -2
  27. luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/gravity_off_.py +4 -4
  28. luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/gravity_on_.py +4 -4
  29. luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity_.py +2 -2
  30. luminarycloud/params/{param_wrappers/simulation_param → simulation}/body_frame_.py +2 -2
  31. luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/volume_material_relationship_.py +2 -2
  32. luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/volume_physics_relationship_.py +2 -2
  33. luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships_.py +6 -6
  34. luminarycloud/params/{param_wrappers/simulation_param → simulation}/general_.py +8 -10
  35. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/boussinesq_off_.py +4 -4
  36. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/boussinesq_on_.py +4 -4
  37. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation_.py +2 -2
  38. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/ideal_gas_.py +4 -6
  39. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/incompressible_fluid_.py +4 -6
  40. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/incompressible_fluid_with_energy_.py +4 -6
  41. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model_.py +2 -2
  42. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +4 -4
  43. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +4 -4
  44. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +4 -4
  45. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model_.py +2 -2
  46. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/prescribed_viscosity_.py +4 -6
  47. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/sutherland_.py +4 -6
  48. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +4 -6
  49. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model_.py +2 -2
  50. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/material_fluid_.py +32 -40
  51. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/material_solid_.py +2 -2
  52. luminarycloud/params/{param_wrappers/simulation_param → simulation}/material_entity_.py +6 -10
  53. luminarycloud/params/{param_wrappers/simulation_param → simulation}/monitor_plane_.py +10 -5
  54. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/no_transform_.py +4 -6
  55. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/rotational_transform_.py +4 -6
  56. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/translational_transform_.py +4 -6
  57. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms_.py +2 -2
  58. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/constant_angular_motion_.py +4 -4
  59. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/constant_translation_motion_.py +4 -4
  60. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type_.py +2 -2
  61. luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data_.py +16 -20
  62. luminarycloud/params/{param_wrappers/simulation_param → simulation}/multi_physics_coupling_options_.py +2 -2
  63. luminarycloud/params/{param_wrappers/simulation_param → simulation}/output_.py +2 -2
  64. 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
  65. 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
  66. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +2 -2
  67. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +49 -0
  68. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_line_.py +4 -6
  69. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/probe_points_.py +4 -6
  70. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/source_points_.py +4 -6
  71. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type_.py +2 -2
  72. luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group_.py +20 -17
  73. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/adjoint_controls_fluid_.py +2 -2
  74. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/basic_fluid_.py +2 -2
  75. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/__init__.py +0 -1
  76. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +111 -0
  77. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/__init__.py +1 -0
  78. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +4 -6
  79. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +55 -0
  80. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -6
  81. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -6
  82. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +8 -6
  83. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +8 -6
  84. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +104 -0
  85. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +4 -4
  86. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +4 -4
  87. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +4 -4
  88. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +4 -4
  89. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +2 -2
  90. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet_.py +14 -14
  91. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/symmetry_.py +4 -4
  92. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +50 -0
  93. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +4 -4
  94. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +4 -4
  95. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +4 -4
  96. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/slip_.py +4 -4
  97. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +4 -4
  98. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/wall_energy_.py +2 -2
  99. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/wall_momentum_.py +2 -2
  100. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall_.py +18 -18
  101. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions_fluid_.py +9 -4
  102. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization/__init__.py +0 -1
  103. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization/fluid_existing_solution_.py +4 -6
  104. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +65 -0
  105. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +77 -0
  106. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +44 -0
  107. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization_fluid_.py +2 -2
  108. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +10 -5
  109. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +6 -6
  110. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +4 -4
  111. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -4
  112. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +4 -4
  113. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +8 -6
  114. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +6 -6
  115. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +8 -6
  116. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +2 -2
  117. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +4 -4
  118. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -4
  119. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +8 -6
  120. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model_.py +2 -2
  121. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior_.py +34 -29
  122. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/porous_behavior_.py +10 -5
  123. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +4 -4
  124. 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
  125. 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
  126. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +2 -2
  127. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +16 -16
  128. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method_.py +2 -2
  129. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +4 -4
  130. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +4 -4
  131. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method_.py +2 -2
  132. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls_fluid_.py +14 -14
  133. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +4 -4
  134. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/fds_.py +4 -4
  135. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +6 -4
  136. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +4 -4
  137. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_.py +2 -2
  138. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +4 -4
  139. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +4 -4
  140. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order_.py +2 -2
  141. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization_fluid_.py +20 -18
  142. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/ddes_.py +4 -6
  143. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +4 -6
  144. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/iddes_.py +4 -6
  145. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation_.py +2 -2
  146. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +4 -4
  147. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +4 -4
  148. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +2 -2
  149. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst_.py +10 -12
  150. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +4 -4
  151. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +4 -4
  152. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +2 -2
  153. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras_.py +10 -12
  154. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +4 -4
  155. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +4 -4
  156. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +4 -4
  157. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +4 -4
  158. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +4 -4
  159. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model_.py +2 -2
  160. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence_.py +22 -32
  161. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid_.py +60 -78
  162. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/adjoint_controls_heat_.py +2 -2
  163. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_convection_.py +4 -4
  164. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +4 -4
  165. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -4
  166. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_symmetry_.py +4 -4
  167. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_temperature_.py +4 -4
  168. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions_heat_.py +9 -4
  169. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +4 -4
  170. 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
  171. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type_.py +2 -2
  172. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source_.py +16 -11
  173. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/heat_existing_solution_.py +4 -6
  174. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/heat_prescribed_values_.py +4 -6
  175. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization_heat_.py +2 -2
  176. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +10 -10
  177. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method_.py +2 -2
  178. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls_heat_.py +6 -6
  179. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/spatial_discretization_heat_.py +2 -2
  180. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat_.py +32 -40
  181. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +4 -6
  182. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/translational_periodicity_.py +4 -6
  183. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type_.py +2 -2
  184. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair_.py +8 -10
  185. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/gauss_seidel_.py +4 -4
  186. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/krylov_amg_.py +4 -4
  187. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type_.py +2 -2
  188. luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics_.py +6 -6
  189. luminarycloud/params/{param_wrappers → simulation}/simulation_param_.py +34 -40
  190. luminarycloud/params/{param_wrappers/simulation_param → simulation}/sliding_interfaces_.py +10 -5
  191. luminarycloud/params/{param_wrappers/simulation_param → simulation}/surface_name_.py +2 -2
  192. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/compute_statistics_off_.py +4 -6
  193. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/compute_statistics_on_.py +4 -6
  194. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics_.py +2 -2
  195. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/time_explicit_.py +4 -4
  196. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/time_implicit_.py +4 -4
  197. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching_.py +2 -2
  198. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/time_step_ramp_off_.py +4 -4
  199. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/time_step_ramp_on_.py +4 -4
  200. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp_.py +2 -2
  201. luminarycloud/params/{param_wrappers/simulation_param → simulation}/time_.py +20 -30
  202. luminarycloud/params/{param_wrappers/simulation_param → simulation}/volume_entity_.py +2 -2
  203. luminarycloud/project.py +49 -18
  204. luminarycloud/reference_values.py +1 -1
  205. luminarycloud/simulation.py +13 -2
  206. luminarycloud/simulation_param.py +8 -8
  207. luminarycloud/solution.py +7 -1
  208. luminarycloud/types/vector3.py +28 -2
  209. luminarycloud/vis/__init__.py +2 -1
  210. luminarycloud/vis/display.py +57 -67
  211. luminarycloud/vis/filters.py +97 -16
  212. luminarycloud/vis/interactive_scene.py +3 -3
  213. luminarycloud/vis/visualization.py +71 -55
  214. {luminarycloud-0.13.1.dist-info → luminarycloud-0.14.0.dist-info}/METADATA +1 -1
  215. luminarycloud-0.14.0.dist-info/RECORD +466 -0
  216. luminarycloud/params/param_wrappers/__init__.py +0 -2
  217. luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk_.py +0 -51
  218. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/farfield_.py +0 -197
  219. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet_.py +0 -189
  220. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/__init__.py +0 -4
  221. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/__init__.py +0 -5
  222. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_komega_variables_.py +0 -37
  223. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_and_intensity_komega_.py +0 -33
  224. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_ratio_and_intensity_komega_.py +0 -33
  225. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega_boundary_conditions_.py +0 -25
  226. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/__init__.py +0 -3
  227. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_sa_variable_.py +0 -33
  228. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_ratio_sa_.py +0 -31
  229. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_sa_.py +0 -31
  230. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras_boundary_conditions_.py +0 -25
  231. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +0 -65
  232. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_farfield_values_.py +0 -173
  233. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_prescribed_values_.py +0 -185
  234. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/__init__.py +0 -4
  235. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/__init__.py +0 -5
  236. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_farfield_values_komega_.py +0 -30
  237. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_and_intensity_komega_.py +0 -33
  238. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_ratio_and_intensity_komega_.py +0 -33
  239. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega_initialization_.py +0 -25
  240. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/__init__.py +0 -4
  241. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_farfield_values_sa_.py +0 -30
  242. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_sa_variable_.py +0 -31
  243. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_ratio_sa_.py +0 -31
  244. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_sa_.py +0 -31
  245. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras_initialization_.py +0 -25
  246. luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence_initialization_.py +0 -69
  247. luminarycloud-0.13.1.dist-info/RECORD +0 -489
  248. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement/__init__.py +0 -0
  249. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/__init__.py +0 -0
  250. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/__init__.py +0 -0
  251. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/__init__.py +0 -0
  252. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/__init__.py +0 -0
  253. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/__init__.py +0 -0
  254. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/__init__.py +0 -0
  255. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/__init__.py +0 -0
  256. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/__init__.py +0 -0
  257. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/__init__.py +0 -0
  258. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/__init__.py +0 -0
  259. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/__init__.py +0 -0
  260. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/__init__.py +0 -0
  261. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/__init__.py +0 -0
  262. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/__init__.py +0 -0
  263. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/__init__.py +0 -0
  264. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/__init__.py +0 -0
  265. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/__init__.py +0 -0
  266. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/__init__.py +0 -0
  267. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/__init__.py +0 -0
  268. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/__init__.py +0 -0
  269. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/__init__.py +0 -0
  270. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/__init__.py +0 -0
  271. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/__init__.py +0 -0
  272. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/__init__.py +0 -0
  273. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/__init__.py +0 -0
  274. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/__init__.py +0 -0
  275. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/__init__.py +0 -0
  276. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/__init__.py +0 -0
  277. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/__init__.py +0 -0
  278. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/__init__.py +0 -0
  279. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/__init__.py +0 -0
  280. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/__init__.py +0 -0
  281. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/__init__.py +0 -0
  282. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/__init__.py +0 -0
  283. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/__init__.py +0 -0
  284. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/__init__.py +0 -0
  285. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/__init__.py +0 -0
  286. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/__init__.py +0 -0
  287. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/__init__.py +0 -0
  288. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/__init__.py +0 -0
  289. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/__init__.py +0 -0
  290. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/__init__.py +0 -0
  291. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/__init__.py +0 -0
  292. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/__init__.py +0 -0
  293. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/__init__.py +0 -0
  294. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/__init__.py +0 -0
  295. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/__init__.py +0 -0
  296. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/__init__.py +0 -0
  297. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/__init__.py +0 -0
  298. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method/__init__.py +0 -0
  299. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/__init__.py +0 -0
  300. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/__init__.py +0 -0
  301. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/__init__.py +0 -0
  302. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/__init__.py +0 -0
  303. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/__init__.py +0 -0
  304. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/__init__.py +0 -0
  305. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/__init__.py +0 -0
  306. /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/__init__.py +0 -0
  307. {luminarycloud-0.13.1.dist-info → luminarycloud-0.14.0.dist-info}/WHEEL +0 -0
@@ -21,38 +21,32 @@ class Plane:
21
21
 
22
22
  .. warning:: This feature is experimental and may change or be removed in the future.
23
23
 
24
- Attributes:
25
- -----------
26
- origin : Vector3
27
- A point defined on the plane. Default: [0,0,0].
28
- normal : Vector3
29
- The vector orthogonal to the plane. Default: [0,1,0]
30
24
  """
31
25
 
32
26
  origin: Vector3Like = dc.field(default_factory=lambda: Vector3(x=0, y=0, z=0))
27
+ """A point defined on the plane. Default: [0,0,0]."""
33
28
  normal: Vector3Like = dc.field(default_factory=lambda: Vector3(x=1, y=0, z=0))
29
+ """The vector orthogonal to the plane. Default: [0,1,0]"""
34
30
 
35
31
 
36
32
  @dc.dataclass
37
33
  class Box:
38
34
  """
39
35
  This class defines a box used for filter such as box clip.
36
+
40
37
  .. warning:: This feature is experimental and may change or be removed in the future.
41
38
 
42
- Attributes:
43
- -----------
44
- center: Vector3
45
- A point defined at the center of the box. Default: [0,0,0].
46
- lengths: Vector3
47
- The the legnths of each side of the box. Default: [1,1,1]
48
- angles: Vector3
49
- The rotation of the box specified in Euler angles (degrees) and applied
50
- in XYZ ordering. Default: [0,0,0]
51
39
  """
52
40
 
53
41
  center: Vector3Like = dc.field(default_factory=lambda: Vector3(x=0, y=0, z=0))
42
+ """A point defined at the center of the box. Default: [0,0,0]."""
54
43
  lengths: Vector3Like = dc.field(default_factory=lambda: Vector3(x=1, y=1, z=1))
44
+ """The the legnths of each side of the box. Default: [1,1,1]"""
55
45
  angles: Vector3Like = dc.field(default_factory=lambda: Vector3(x=0, y=0, z=0))
46
+ """
47
+ The rotation of the box specified in Euler angles (degrees) and applied
48
+ in XYZ ordering. Default: [0,0,0]
49
+ """
56
50
 
57
51
 
58
52
  class Filter(ABC):
@@ -201,7 +195,7 @@ class Isosurface(Filter):
201
195
  if len(self.isovalues) == 0:
202
196
  raise ValueError("Isosurface: isovalue must be non-empty")
203
197
 
204
- if self.field == VisQuantity.NONE:
198
+ if self.field.quantity == VisQuantity.NONE:
205
199
  raise ValueError("Isosurface: field can't be None")
206
200
 
207
201
  vis_filter = vis_pb2.Filter()
@@ -654,6 +648,8 @@ class SurfaceStreamlines(Streamlines):
654
648
  id: str
655
649
  A surface id or a tag id.
656
650
  """
651
+ if not isinstance(id, str):
652
+ raise TypeError(f"Expected 'str', got {type(id).__name__}")
657
653
  self._surface_names.append(id)
658
654
 
659
655
  def _surfaces(self) -> List[str]:
@@ -700,3 +696,88 @@ class SurfaceStreamlines(Streamlines):
700
696
  vis_filter.streamlines.surface.surface_names.append(id)
701
697
  vis_filter.streamlines.field.quantity_typ = self.field.quantity.value
702
698
  return vis_filter
699
+
700
+
701
+ class SurfaceLIC(Filter):
702
+ """
703
+ A Surface Line Integral Convolution (LIC) filter is used to depict the flow
704
+ direction and structure of vector fields (such as velocity) on surfaces. It
705
+ enhances the perception of complex flow patterns by convolving noise
706
+ textures along streamlines, making it easier to visually interpret the
707
+ behavior of fluid flow on boundaries or surfaces in a simulation.
708
+
709
+ The input is a list of surfaces. If none are specified, all are used. The
710
+ surface LIC outputs grey scale colors on the specified surfaces. When the
711
+ display attributes quantity is not None, the field colors are blended with
712
+ the grey scale colors.
713
+
714
+ Note: surface LIC computes on the same surfaces of the solution. If the surfaces in
715
+ the global display attributes are not hidden, the surface LIC will not be visible since
716
+ the existing surfaces are occluding it.
717
+
718
+ .. warning:: This feature is experimental and may change or be removed in the future.
719
+
720
+ Attributes:
721
+ -----------
722
+ field: Field
723
+ Specifies the field used to advect particles for the surface LIC.
724
+ Default: WALL_SHEER_STRESS
725
+ contrast: float
726
+ Contrast controls the contrast of the resuting surface LIC. Valid values
727
+ are in the [0.2, 3.0] range. Lower values means less contrast and
728
+ higher values mean more contrast. Default: 1
729
+ """
730
+
731
+ def __init__(self, name: str) -> None:
732
+ super().__init__(generate_id("surface-lic-"))
733
+ self.name = name
734
+ self.contrast: float = 1.0
735
+ self._surface_names: List[str] = []
736
+ self.field: Field = Field()
737
+ self.field.quantity = VisQuantity.WALL_SHEAR_STRESS
738
+
739
+ def add_surface(self, id: str) -> None:
740
+ """
741
+ Add a surface to generate compute the surface LIC on. Adding no
742
+ surfaces indicates that all surfaces will be used.
743
+
744
+ Parameters
745
+ ----------
746
+ id: str
747
+ A surface id or a tag id.
748
+ """
749
+ if not isinstance(id, str):
750
+ raise TypeError(f"Expected 'str', got {type(id).__name__}")
751
+ self._surface_names.append(id)
752
+
753
+ def _surfaces(self) -> List[str]:
754
+ """
755
+ Returns the current list of surfaces.
756
+ """
757
+ return self._surface_names
758
+
759
+ def _to_proto(self) -> vis_pb2.Filter:
760
+ vis_filter = vis_pb2.Filter()
761
+ vis_filter.id = self.id
762
+ vis_filter.name = self.name
763
+ # Prevent common mistakes that cause confusion. The only current option
764
+ # is to be on a surface, so no velocity.
765
+ if not isinstance(self.field, Field):
766
+ raise TypeError(f"Expected 'Field', got {type(self.field).__name__}")
767
+ if self.field.quantity == VisQuantity.VELOCITY:
768
+ raise ValueError("SurfaceLIC: velocity is 0 on surfaces and will produce no data")
769
+ if not isinstance(self.contrast, (int, float)):
770
+ raise TypeError(f"Expected 'int or float', got {type(self.contrast).__name__}")
771
+ if self.contrast < 0.2 or self.contrast > 3.0:
772
+ raise ValueError("SurfaceLIC: contrast must be between 0.2 and 3.0")
773
+
774
+ for id in self._surface_names:
775
+ vis_filter.surface_lic.geometry.surface_names.append(id)
776
+ if len(self._surface_names) == 0:
777
+ # we need to make sure that the geometry is populated.
778
+ geometry = vis_pb2.SurfaceLICGeomtery()
779
+ vis_filter.surface_lic.geometry.CopyFrom(geometry)
780
+
781
+ vis_filter.surface_lic.field.quantity_typ = self.field.quantity.value
782
+ vis_filter.surface_lic.contrast = self.contrast
783
+ return vis_filter
@@ -1,7 +1,7 @@
1
1
  from .display import DisplayAttributes
2
2
  from .filters import SurfaceStreamlines, Filter
3
3
  from .._client import get_default_client
4
- from ..enum.vis_enums import EntityType
4
+ from ..enum.vis_enums import EntityType, SceneMode
5
5
  from typing import TYPE_CHECKING, cast
6
6
 
7
7
  from .._proto.api.v0.luminarycloud.vis import vis_pb2
@@ -25,10 +25,10 @@ class InteractiveScene:
25
25
 
26
26
  # Using the type causes a circular import error, not sure on best way to resolve.
27
27
  # I do want to keep this in a separate file
28
- def __init__(self, scene: "Scene") -> None:
28
+ def __init__(self, scene: "Scene", mode: SceneMode) -> None:
29
29
  if not lcj:
30
30
  raise ImportError("InteractiveScene requires luminarycloud[jupyter] to be installed")
31
- self.widget = lcj.LCVisWidget()
31
+ self.widget = lcj.LCVisWidget(scene_mode=mode)
32
32
  self.set_scene(scene)
33
33
 
34
34
  def _ipython_display_(self) -> None:
@@ -39,29 +39,20 @@ class DirectionalCamera:
39
39
 
40
40
  .. warning:: This feature is experimental and may change or be removed in the future.
41
41
 
42
- Attributes:
43
- -----------
44
- name : str
45
- A user defined name for the camera.
46
- direction : CameraDirection
47
- The orientation of the camera. Default: X_POSITIVE
48
- projection : CameraProjection
49
- The type of projection used for the camera. Default: ORTHOGRAPHIC
50
- label: str
51
- A user defined label to help distinguish between multiple images.
52
- Default: ""
53
- width: int
54
- The width of the output image in pixels. Default: 1024
55
- height: int
56
- The height of the output image in pixels. Default: 1024
57
42
  """
58
43
 
59
44
  name: str = "default directional camera"
45
+ """ A user defined name for the camera. """
60
46
  direction: CameraDirection = CameraDirection.X_POSITIVE
47
+ """ The orientation of the camera. Default: X_POSITIVE """
61
48
  projection: CameraProjection = CameraProjection.ORTHOGRAPHIC
49
+ """ The type of projection used for the camera. Default: ORTHOGRAPHIC """
62
50
  label: str = ""
51
+ """A user defined label to help distinguish between multiple images."""
63
52
  width: int = 1024
53
+ """The width of the output image in pixels. Default: 1024"""
64
54
  height: int = 1024
55
+ """The height of the output image in pixels. Default: 1024"""
65
56
 
66
57
 
67
58
  @dc.dataclass
@@ -73,39 +64,39 @@ class LookAtCamera:
73
64
 
74
65
  .. warning:: This feature is experimental and may change or be removed in the future.
75
66
 
76
- Attributes:
77
- -----------
78
- look_at: Vector3
79
- The point the camera is looking at. Default (0,0,0)
80
- position: Vector3
81
- The position of the camera. Default (0,1,0)
82
- up: Vector3
83
- The up vector for the camera. Default (0,0,1)
84
- projection : CameraProjection
85
- The type of projection used for the camera. Default: ORTHOGRAPHIC
86
- label: str
87
- A user defined label to help distinguish between multiple images. Default: ""
88
- width: int
89
- The width of the output image in pixels. Default: 1024
90
- height: int
91
- The height of the output image in pixels. Default: 1024
92
67
  """
93
68
 
94
69
  look_at: Vector3Like = dc.field(default_factory=lambda: Vector3(x=0, y=0, z=0))
70
+ """ The point the camera is looking at. Default (0,0,0) """
95
71
  position: Vector3Like = dc.field(default_factory=lambda: Vector3(x=0, y=1, z=0))
72
+ """ The position of the camera. Default (0,1,0) """
96
73
  up: Vector3Like = dc.field(default_factory=lambda: Vector3(x=0, y=0, z=1))
74
+ """ The up vector for the camera. Default (0,0,1) """
97
75
  projection: CameraProjection = CameraProjection.ORTHOGRAPHIC
76
+ """ The type of projection used for the camera. Default: ORTHOGRAPHIC """
98
77
  label: str = ""
78
+ """ A user defined label to help distinguish between multiple images. Default: "" """
99
79
  width: int = 1024
80
+ """ The width of the output image in pixels. Default: 1024 """
100
81
  height: int = 1024
82
+ """ The height of the output image in pixels. Default: 1024 """
83
+
84
+
85
+ class _InternalToken:
86
+ """Marker class to control instantiation access for RenderOutput."""
87
+
88
+ pass
101
89
 
102
90
 
103
91
  class RenderOutput:
104
92
  """
105
- The render output represents the request to render images from a geometry, mesh or
106
- solution. The operation exectutes asyncronously, so the caller must check
107
- the status of the image extract. If the status is completed, then the
108
- resuling image is available for download.
93
+ The render output represents the request to render images from a geometry,
94
+ mesh or solution, and is contructed by the Scene class. The operation
95
+ exectutes asyncronously, so the caller must check the status of the image
96
+ extract. If the status is completed, then the resuling image is available
97
+ for download.
98
+
99
+ .. warning:: This class should not be directly instantiated by users.
109
100
 
110
101
  .. warning:: This feature is experimental and may change or be removed in the future.
111
102
 
@@ -125,17 +116,27 @@ class RenderOutput:
125
116
  Internal flag to track if the extract has been deleted.
126
117
  """
127
118
 
128
- def __init__(
129
- self, extract_id: str, project_id: str, name: str, desciption: str, status: RenderStatusType
130
- ):
119
+ def __init__(self, factory_token: _InternalToken):
120
+ if not isinstance(factory_token, _InternalToken):
121
+ raise ValueError("This class can only be constructed through the Scene class")
122
+
131
123
  # TODO(matt): We could make all of these read only.
132
- self._extract_id: str = extract_id
133
- self._project_id: str = project_id
134
- self.status: RenderStatusType = status
135
- self.name: str = name
136
- self.description: str = desciption
124
+ self._extract_id: str = ""
125
+ self._project_id: str = ""
126
+ self.status: RenderStatusType = RenderStatusType.INVALID
127
+ self.name: str = ""
128
+ self.description: str = ""
137
129
  self._deleted = False
138
130
 
131
+ def _set_data(
132
+ self, extract_id: str, project_id: str, name: str, desciption: str, status: RenderStatusType
133
+ ) -> None:
134
+ self._extract_id = extract_id
135
+ self._project_id = project_id
136
+ self.status = status
137
+ self.name = name
138
+ self.description = desciption
139
+
139
140
  def __repr__(self) -> str:
140
141
  return f"RenderOutput(Id: {self._extract_id} status: {self.status})"
141
142
 
@@ -311,6 +312,10 @@ class Scene:
311
312
  annotations for all fields used in global and filter display attributes.
312
313
  When False, only color maps explicitly added by the user appear in the
313
314
  images. Default: True
315
+ supersampling: int
316
+ Supersampling controls anti-aliasing in output images. A value of 1 means no supersampling.
317
+ A value of 2 means we internally render at 2x the image resolution and downsample the image
318
+ to the requested resolution. Valid values are between 1 and 8. Default: 2
314
319
  """
315
320
 
316
321
  def __init__(self, entity: Geometry | Mesh | Solution):
@@ -318,6 +323,7 @@ class Scene:
318
323
  self.axes_grid_visible: bool = True
319
324
  self.background_color: Vector3 = Vector3(x=0, y=0, z=0)
320
325
  self.auto_color_map_annotations = True
326
+ self.supersampling: int = 2
321
327
  # Global display attrs
322
328
  self.global_display_attrs = DisplayAttributes()
323
329
  self._filters: List[Filter] = []
@@ -621,8 +627,9 @@ class Scene:
621
627
  # These are all default contructed, so they all have the same dimentions.
622
628
  # All the coordinates are in normalized device space.
623
629
  assert auto_cmaps[0].appearance != None
624
- width = auto_cmaps[0].appearance.width
625
- height = auto_cmaps[0].appearance.height
630
+ appearance = cast(ColorMapAppearance, auto_cmaps[0].appearance)
631
+ width = appearance.width
632
+ height = appearance.height
626
633
  x_padding = 0.05
627
634
  y_padding = 0.05
628
635
  # Placing them on the right side.
@@ -630,8 +637,9 @@ class Scene:
630
637
  lower_left_y = 1.0 - height - y_padding
631
638
  for cmap in auto_cmaps:
632
639
  assert cmap.appearance != None
633
- cmap.appearance.lower_left_x = lower_left_x
634
- cmap.appearance.lower_left_y = lower_left_y
640
+ cmap_appearance = cast(ColorMapAppearance, cmap.appearance)
641
+ cmap_appearance.lower_left_x = lower_left_x
642
+ cmap_appearance.lower_left_y = lower_left_y
635
643
  lower_left_y = lower_left_y - height - y_padding
636
644
  if lower_left_y < 0:
637
645
  lower_left_y = 0
@@ -654,6 +662,12 @@ class Scene:
654
662
  req.spec.background_properties.color.b = bg_color.z
655
663
  req.spec.background_properties.color.a = 1
656
664
 
665
+ if not isinstance(self.supersampling, int):
666
+ raise TypeError(f"Expected 'int', got {type(self.supersampling).__name__}")
667
+ if self.supersampling < 1 or self.supersampling > 8:
668
+ raise ValueError(f"Supersampling value is not in the range [1,8]: {self.supersampling}")
669
+ req.spec.supersampling_ratio = self.supersampling
670
+
657
671
  req.project_id = self._project_id
658
672
  if self._entity_type == EntityType.SIMULATION:
659
673
  req.spec.entity_type.simulation.id = self._solution.simulation_id
@@ -682,22 +696,24 @@ class Scene:
682
696
  req: vis_pb2.CreateExtractRequest = self._create_request(name=name, description=description)
683
697
  res: vis_pb2.CreateExtractResponse = get_default_client().CreateExtract(req)
684
698
  logger.info("Successfully submitted 'render_images' request")
685
- return RenderOutput(
699
+ render_output = RenderOutput(_InternalToken())
700
+ render_output._set_data(
686
701
  extract_id=res.extract.extract_id,
687
702
  project_id=self._project_id,
688
703
  name=name,
689
704
  desciption=description,
690
705
  status=RenderStatusType(res.extract.status),
691
706
  )
707
+ return render_output
692
708
 
693
- def interact(self) -> InteractiveScene:
709
+ def interact(self, scene_mode: SceneMode = SceneMode.SIDE_PANEL) -> InteractiveScene:
694
710
  """
695
711
  Start an interactive display of the scene, when running inside LuminaryCloud's
696
712
  AI Notebook environment or Jupyter Lab. The returned object must be displayed
697
713
  in the notebook to display the interactive visualization. This requires that
698
714
  the luminarycloud package was installed with the optional jupyter feature.
699
715
  """
700
- self._interactive_scene = InteractiveScene(self)
716
+ self._interactive_scene = InteractiveScene(self, mode=scene_mode)
701
717
  return self._interactive_scene
702
718
 
703
719
 
@@ -719,14 +735,15 @@ def get_render(project_id: str, extract_id: str) -> RenderOutput:
719
735
  req.extract_id = extract_id
720
736
  req.project_id = project_id
721
737
  res: vis_pb2.GetExtractResponse = get_default_client().GetExtract(req)
722
- output = RenderOutput(
738
+ render_output = RenderOutput(_InternalToken())
739
+ render_output._set_data(
723
740
  extract_id=extract_id,
724
741
  project_id=project_id,
725
742
  name=res.extract.name,
726
743
  desciption=res.extract.description,
727
744
  status=RenderStatusType(res.extract.status),
728
745
  )
729
- return output
746
+ return render_output
730
747
 
731
748
 
732
749
  def list_quantities(solution: Solution) -> List[VisQuantity]:
@@ -807,15 +824,14 @@ def list_renders(entity: Geometry | Mesh | Solution) -> List[RenderOutput]:
807
824
 
808
825
  results: List[RenderOutput] = []
809
826
  for extract in res.extracts:
810
- result = RenderOutput(
827
+ result = RenderOutput(_InternalToken())
828
+ result._set_data(
811
829
  extract_id=extract.extract_id,
812
830
  project_id=extract.project_id,
813
831
  name=extract.name,
814
832
  desciption=extract.description,
815
833
  status=RenderStatusType(extract.status),
816
834
  )
817
-
818
- # TODO(matt): the List extracts request is giving us nil for the status.
819
835
  # This need to be fixed on the backend, but manually refreshing works for now.
820
836
  result.refresh()
821
837
  results.append(result)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luminarycloud
3
- Version: 0.13.1
3
+ Version: 0.14.0
4
4
  Summary: Luminary Cloud SDK
5
5
  Project-URL: Homepage, https://www.luminarycloud.com/
6
6
  Project-URL: Documentation, https://app.luminarycloud.com/docs/api/