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.
- luminarycloud/_helpers/download.py +12 -1
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +12 -12
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +5 -1
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +2 -1
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +6 -2
- luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.py +14 -14
- luminarycloud/_proto/api/v0/luminarycloud/solution/solution_pb2.pyi +5 -1
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +117 -95
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +57 -5
- luminarycloud/_proto/assistant/assistant_pb2.py +172 -23
- luminarycloud/_proto/assistant/assistant_pb2.pyi +358 -4
- luminarycloud/_proto/client/simulation_pb2.py +283 -283
- luminarycloud/_proto/client/simulation_pb2.pyi +33 -32
- luminarycloud/_proto/geometry/geometry_pb2.py +46 -46
- luminarycloud/_proto/geometry/geometry_pb2.pyi +6 -1
- luminarycloud/_proto/hexmesh/hexmesh_pb2.py +138 -37
- luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +218 -37
- luminarycloud/enum/vis_enums.py +26 -11
- luminarycloud/params/__init__.py +1 -2
- luminarycloud/params/enum/_enum_wrappers.py +861 -4
- luminarycloud/params/outputs/output.py +1 -1
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/__init__.py +1 -0
- luminarycloud/params/{param_wrappers → simulation}/_lib.py +2 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement/boundary_layer_profile_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/adjoint_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/gravity_off_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/gravity_on_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/body_frame_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/volume_material_relationship_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/volume_physics_relationship_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships_.py +6 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/general_.py +8 -10
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/boussinesq_off_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/boussinesq_on_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/ideal_gas_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/incompressible_fluid_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/incompressible_fluid_with_energy_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/prescribed_viscosity_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/sutherland_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/material_fluid_.py +32 -40
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/material_solid_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/material_entity_.py +6 -10
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/monitor_plane_.py +10 -5
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/no_transform_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/rotational_transform_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/translational_transform_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/constant_angular_motion_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/constant_translation_motion_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data_.py +16 -20
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/multi_physics_coupling_options_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/output_.py +2 -2
- 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
- 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
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +2 -2
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +49 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_line_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/probe_points_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/source_points_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group_.py +20 -17
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/adjoint_controls_fluid_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/basic_fluid_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/__init__.py +0 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +111 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/__init__.py +1 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +4 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +55 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +8 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +8 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +104 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet_.py +14 -14
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/symmetry_.py +4 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +50 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/slip_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/wall_energy_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/wall_momentum_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall_.py +18 -18
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions_fluid_.py +9 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization/__init__.py +0 -1
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization/fluid_existing_solution_.py +4 -6
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +65 -0
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +77 -0
- luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +44 -0
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/initialization_fluid_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +10 -5
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +6 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +8 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +6 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +8 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +8 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior_.py +34 -29
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/porous_behavior_.py +10 -5
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +4 -4
- 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
- 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
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +16 -16
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls_fluid_.py +14 -14
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/fds_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +6 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization_fluid_.py +20 -18
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/ddes_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/iddes_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst_.py +10 -12
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras_.py +10 -12
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence_.py +22 -32
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid_.py +60 -78
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/adjoint_controls_heat_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_convection_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_symmetry_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/heat_bc_temperature_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions_heat_.py +9 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +4 -4
- 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
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source_.py +16 -11
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/heat_existing_solution_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/heat_prescribed_values_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization_heat_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +10 -10
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls_heat_.py +6 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/spatial_discretization_heat_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat_.py +32 -40
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/translational_periodicity_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair_.py +8 -10
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/gauss_seidel_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/krylov_amg_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics_.py +6 -6
- luminarycloud/params/{param_wrappers → simulation}/simulation_param_.py +34 -40
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/sliding_interfaces_.py +10 -5
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/surface_name_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/compute_statistics_off_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/compute_statistics_on_.py +4 -6
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/time_explicit_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/time_implicit_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/time_step_ramp_off_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/time_step_ramp_on_.py +4 -4
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp_.py +2 -2
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/time_.py +20 -30
- luminarycloud/params/{param_wrappers/simulation_param → simulation}/volume_entity_.py +2 -2
- luminarycloud/project.py +49 -18
- luminarycloud/reference_values.py +1 -1
- luminarycloud/simulation.py +13 -2
- luminarycloud/simulation_param.py +8 -8
- luminarycloud/solution.py +7 -1
- luminarycloud/types/vector3.py +28 -2
- luminarycloud/vis/__init__.py +2 -1
- luminarycloud/vis/display.py +57 -67
- luminarycloud/vis/filters.py +97 -16
- luminarycloud/vis/interactive_scene.py +3 -3
- luminarycloud/vis/visualization.py +71 -55
- {luminarycloud-0.13.1.dist-info → luminarycloud-0.14.0.dist-info}/METADATA +1 -1
- luminarycloud-0.14.0.dist-info/RECORD +466 -0
- luminarycloud/params/param_wrappers/__init__.py +0 -2
- luminarycloud/params/param_wrappers/simulation_param/particle_group/particle_group_type/actuator_disk_.py +0 -51
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/farfield_.py +0 -197
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/inlet_.py +0 -189
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/__init__.py +0 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/__init__.py +0 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_komega_variables_.py +0 -37
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_and_intensity_komega_.py +0 -33
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega/bc_turbulent_viscosity_ratio_and_intensity_komega_.py +0 -33
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/komega_boundary_conditions_.py +0 -25
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/__init__.py +0 -3
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_sa_variable_.py +0 -33
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_ratio_sa_.py +0 -31
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras/bc_turbulent_viscosity_sa_.py +0 -31
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence/spalart_allmaras_boundary_conditions_.py +0 -25
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +0 -65
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_farfield_values_.py +0 -173
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/fluid_prescribed_values_.py +0 -185
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/__init__.py +0 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/__init__.py +0 -5
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_farfield_values_komega_.py +0 -30
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_and_intensity_komega_.py +0 -33
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega/init_turbulent_viscosity_ratio_and_intensity_komega_.py +0 -33
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/komega_initialization_.py +0 -25
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/__init__.py +0 -4
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_farfield_values_sa_.py +0 -30
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_sa_variable_.py +0 -31
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_ratio_sa_.py +0 -31
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras/init_turbulent_viscosity_sa_.py +0 -31
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence/spalart_allmaras_initialization_.py +0 -25
- luminarycloud/params/param_wrappers/simulation_param/physics/fluid/initialization/turbulence_initialization_.py +0 -69
- luminarycloud-0.13.1.dist-info/RECORD +0 -489
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/adaptive_mesh_refinement/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/basic/gravity/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/entity_relationships/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/boussinesq_approximation/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/material_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/thermal_conductivity_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/material/fluid/viscosity_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/frame_transforms/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/motion_data/motion_type/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/outlet/outlet_strategy/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/energy/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/boundary_conditions/wall/momentum/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/solution_controls/pseudo_time_step_method/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/spatial_discretization/convective_scheme_order/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/des_formulation/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/komega_sst/constants/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/spalart_allmaras/constants/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/fluid/turbulence/sub_grid_scale_model/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/boundary_conditions/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/heat_source/heat_source_type/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/initialization/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/heat/solution_controls/heat_relaxation_method/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/periodic_pair/periodicity_type/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/physics/solution_controls/linear_solver_type/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/compute_statistics/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_marching/__init__.py +0 -0
- /luminarycloud/params/{param_wrappers/simulation_param → simulation}/time/time_step_ramp/__init__.py +0 -0
- {luminarycloud-0.13.1.dist-info → luminarycloud-0.14.0.dist-info}/WHEEL +0 -0
luminarycloud/vis/filters.py
CHANGED
|
@@ -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,
|
|
106
|
-
solution
|
|
107
|
-
|
|
108
|
-
resuling image is available
|
|
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
|
-
|
|
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 =
|
|
133
|
-
self._project_id: str =
|
|
134
|
-
self.status: RenderStatusType =
|
|
135
|
-
self.name: str =
|
|
136
|
-
self.description: str =
|
|
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
|
-
|
|
625
|
-
|
|
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
|
|
634
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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)
|