luminarycloud 0.14.1__py3-none-any.whl → 0.15.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- luminarycloud/__init__.py +5 -1
- luminarycloud/_client/client.py +5 -0
- luminarycloud/_helpers/__init__.py +1 -0
- luminarycloud/_helpers/_code_representation.py +135 -0
- luminarycloud/_helpers/_simulation_params_from_json.py +5 -1
- luminarycloud/_helpers/upload.py +31 -11
- luminarycloud/_helpers/warnings/deprecated.py +8 -10
- luminarycloud/_helpers/warnings/experimental.py +4 -4
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +135 -110
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +82 -10
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +34 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +12 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +94 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +145 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +104 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +42 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -25
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +10 -3
- luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +162 -0
- luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +254 -0
- luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.py +203 -0
- luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2_grpc.pyi +74 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +155 -141
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +24 -2
- luminarycloud/_proto/cad/boolean_pb2.py +8 -8
- luminarycloud/_proto/cad/boolean_pb2.pyi +34 -4
- luminarycloud/_proto/client/simulation_pb2.py +303 -294
- luminarycloud/_proto/client/simulation_pb2.pyi +26 -1
- luminarycloud/_proto/geometry/geometry_pb2.py +58 -58
- luminarycloud/_proto/geometry/geometry_pb2.pyi +58 -11
- luminarycloud/_proto/hexmesh/hexmesh_pb2.py +42 -42
- luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +2 -2
- luminarycloud/_proto/output/reference_values_pb2.py +5 -5
- luminarycloud/_proto/parametricworker/parametricworker_pb2.py +31 -31
- luminarycloud/_proto/parametricworker/parametricworker_pb2.pyi +6 -4
- luminarycloud/_proto/table/table_pb2.py +9 -8
- luminarycloud/_proto/table/table_pb2.pyi +7 -1
- luminarycloud/enum/__init__.py +2 -0
- luminarycloud/enum/geometry_status.py +28 -0
- luminarycloud/geometry.py +64 -32
- luminarycloud/geometry_version.py +2 -2
- luminarycloud/mesh.py +11 -4
- luminarycloud/meshing/__init__.py +1 -0
- luminarycloud/meshing/metadata/__init__.py +6 -0
- luminarycloud/meshing/metadata/mesh_metadata.py +57 -0
- luminarycloud/outputs/output_definitions.py +11 -10
- luminarycloud/params/enum/_enum_wrappers.py +77 -968
- luminarycloud/params/outputs/output.py +2 -1
- luminarycloud/params/simulation/__init__.py +16 -16
- luminarycloud/params/simulation/_lib.py +1 -67
- luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +3 -2
- luminarycloud/params/simulation/adaptive_mesh_refinement_.py +3 -2
- luminarycloud/params/simulation/adjoint_.py +4 -3
- luminarycloud/params/simulation/basic/gravity/gravity_off_.py +3 -2
- luminarycloud/params/simulation/basic/gravity/gravity_on_.py +3 -2
- luminarycloud/params/simulation/basic/gravity_.py +3 -2
- luminarycloud/params/simulation/body_frame_.py +3 -2
- luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +7 -6
- luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +7 -6
- luminarycloud/params/simulation/entity_relationships_.py +3 -2
- luminarycloud/params/simulation/general_.py +4 -3
- luminarycloud/params/simulation/material/fluid/__init__.py +4 -4
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +3 -2
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +3 -2
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +3 -2
- luminarycloud/params/simulation/material/fluid/material_model/__init__.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +3 -2
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +3 -2
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +3 -2
- luminarycloud/params/simulation/material/fluid/material_model_.py +3 -2
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/__init__.py +2 -2
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +3 -2
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +3 -2
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +4 -3
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +3 -2
- luminarycloud/params/simulation/material/fluid/viscosity_model/__init__.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +3 -2
- luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +3 -2
- luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +4 -3
- luminarycloud/params/simulation/material/fluid/viscosity_model_.py +3 -2
- luminarycloud/params/simulation/material/material_fluid_.py +7 -6
- luminarycloud/params/simulation/material/material_solid_.py +4 -3
- luminarycloud/params/simulation/material_entity_.py +9 -8
- luminarycloud/params/simulation/monitor_plane_.py +5 -4
- luminarycloud/params/simulation/motion_data/__init__.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/__init__.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +5 -4
- luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +5 -4
- luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +5 -4
- luminarycloud/params/simulation/motion_data/frame_transforms_.py +3 -2
- luminarycloud/params/simulation/motion_data/motion_type/__init__.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +5 -4
- luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +5 -4
- luminarycloud/params/simulation/motion_data/motion_type_.py +3 -2
- luminarycloud/params/simulation/motion_data_.py +6 -5
- luminarycloud/params/simulation/multi_physics_coupling_options_.py +3 -2
- luminarycloud/params/simulation/output_.py +3 -2
- luminarycloud/params/simulation/particle_group/particle_group_type/__init__.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +4 -3
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +4 -3
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +3 -2
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +7 -6
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +3 -2
- luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +5 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +5 -4
- luminarycloud/params/simulation/particle_group/particle_group_type_.py +3 -2
- luminarycloud/params/simulation/particle_group_.py +4 -3
- luminarycloud/params/simulation/physics/__init__.py +3 -3
- luminarycloud/params/simulation/physics/fluid/__init__.py +9 -9
- luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/__init__.py +5 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/__init__.py +3 -3
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +7 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +6 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +6 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +8 -7
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +6 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +7 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +2 -2
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +8 -7
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/__init__.py +2 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +8 -7
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -3
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +9 -8
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +4 -3
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -3
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +7 -6
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +5 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/__init__.py +2 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/__init__.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +6 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +6 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/__init__.py +2 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +3 -2
- luminarycloud/params/simulation/physics/fluid/turbulence_.py +6 -5
- luminarycloud/params/simulation/physics/fluid_.py +12 -13
- luminarycloud/params/simulation/physics/heat/__init__.py +4 -4
- luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +3 -2
- luminarycloud/params/simulation/physics/heat/boundary_conditions/__init__.py +2 -2
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +5 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +5 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +5 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +5 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +5 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +5 -4
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/__init__.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +3 -2
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +4 -3
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +3 -2
- luminarycloud/params/simulation/physics/heat/heat_source_.py +6 -5
- luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +5 -4
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +5 -4
- luminarycloud/params/simulation/physics/heat/initialization_heat_.py +3 -2
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +4 -3
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +3 -2
- luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +4 -3
- luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +3 -2
- luminarycloud/params/simulation/physics/heat_.py +9 -8
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/__init__.py +1 -1
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +3 -2
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/translational_periodicity_.py +3 -2
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type_.py +3 -2
- luminarycloud/params/simulation/physics/periodic_pair_.py +4 -3
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/__init__.py +1 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +3 -2
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +9 -8
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +3 -2
- luminarycloud/params/simulation/physics_.py +7 -6
- luminarycloud/params/simulation/simulation_param_.py +12 -13
- luminarycloud/params/simulation/sliding_interfaces_.py +8 -7
- luminarycloud/params/simulation/surface_name_.py +3 -2
- luminarycloud/params/simulation/time/__init__.py +2 -2
- luminarycloud/params/simulation/time/compute_statistics/__init__.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +3 -2
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +3 -2
- luminarycloud/params/simulation/time/compute_statistics_.py +3 -2
- luminarycloud/params/simulation/time/time_marching/time_explicit_.py +3 -2
- luminarycloud/params/simulation/time/time_marching/time_implicit_.py +3 -2
- luminarycloud/params/simulation/time/time_marching_.py +3 -2
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +3 -2
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +3 -2
- luminarycloud/params/simulation/time/time_step_ramp_.py +3 -2
- luminarycloud/params/simulation/time_.py +6 -5
- luminarycloud/params/simulation/volume_entity_.py +5 -4
- luminarycloud/physics_ai/__init__.py +8 -0
- luminarycloud/physics_ai/architectures.py +38 -0
- luminarycloud/physics_ai/models.py +42 -0
- luminarycloud/project.py +39 -19
- luminarycloud/reference_values.py +20 -3
- luminarycloud/simulation.py +8 -3
- luminarycloud/simulation_param.py +50 -27
- luminarycloud/simulation_template.py +84 -13
- luminarycloud/types/ids.py +2 -0
- luminarycloud/vis/__init__.py +0 -3
- luminarycloud/vis/display.py +1 -0
- luminarycloud/vis/interactive_scene.py +12 -3
- luminarycloud/vis/visualization.py +44 -20
- luminarycloud/volume_selection.py +5 -5
- {luminarycloud-0.14.1.dist-info → luminarycloud-0.15.0.dist-info}/METADATA +2 -2
- {luminarycloud-0.14.1.dist-info → luminarycloud-0.15.0.dist-info}/RECORD +276 -261
- {luminarycloud-0.14.1.dist-info → luminarycloud-0.15.0.dist-info}/WHEEL +0 -0
|
@@ -17,7 +17,7 @@ from luminarycloud._proto.base import base_pb2 as proto_dot_base_dot_base__pb2
|
|
|
17
17
|
from luminarycloud._proto.options import options_pb2 as proto_dot_options_dot_options__pb2
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#proto/output/reference_values.proto\x12\x15luminary.proto.output\x1a\x15proto/base/base.proto\x1a\x1bproto/options/options.proto\"\
|
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#proto/output/reference_values.proto\x12\x15luminary.proto.output\x1a\x15proto/base/base.proto\x1a\x1bproto/options/options.proto\"\xcc\x07\n\x0fReferenceValues\x12G\n\x14reference_value_type\x18\x01 \x01(\x0e\x32).luminary.proto.output.ReferenceValueType\x12g\n\x08\x61rea_ref\x18\x02 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB3\xb8\xb2\x19\n\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12j\n\nlength_ref\x18\x03 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB4\xb8\xb2\x19\x80P\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12#\n\x1buse_aero_moment_ref_lengths\x18\x07 \x01(\x08\x12p\n\x10length_ref_pitch\x18\x08 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB4\xb8\xb2\x19\x80P\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12o\n\x0flength_ref_roll\x18\t \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB4\xb8\xb2\x19\x80P\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12n\n\x0elength_ref_yaw\x18\n \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB4\xb8\xb2\x19\x80P\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12\x64\n\x05p_ref\x18\x04 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB3\xb8\xb2\x19\x02\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\xd0\xbc\xf8@\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12W\n\x05t_ref\x18\x05 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB&\xb8\xb2\x19\x03\x82\xb2\x19\x0b\n\t\tfffff\x02r@\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01\x12\x64\n\x05v_ref\x18\x06 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeB3\xb8\xb2\x19\x05\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x8a\xb2\x19\t\t\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xb2\x19\t\x11\x00\x00\x00 _\xa0\x02\x42\x8a\xb2\x19\x02\x18\x01*q\n\x12ReferenceValueType\x12\x1c\n\x18REFERENCE_VALUES_INVALID\x10\x00\x12\x1e\n\x1aREFERENCE_PRESCRIBE_VALUES\x10\x01\x12\x1d\n\x19REFERENCE_FARFIELD_VALUES\x10\x02\x42%Z#luminarycloud.com/core/proto/outputb\x06proto3')
|
|
21
21
|
|
|
22
22
|
_REFERENCEVALUETYPE = DESCRIPTOR.enum_types_by_name['ReferenceValueType']
|
|
23
23
|
ReferenceValueType = enum_type_wrapper.EnumTypeWrapper(_REFERENCEVALUETYPE)
|
|
@@ -51,11 +51,11 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
51
51
|
_REFERENCEVALUES.fields_by_name['p_ref']._options = None
|
|
52
52
|
_REFERENCEVALUES.fields_by_name['p_ref']._serialized_options = b'\270\262\031\002\202\262\031\013\n\t\t\000\000\000\000\320\274\370@\212\262\031\t\t\000\000\000\000\000\000\000\000\212\262\031\t\021\000\000\000 _\240\002B\212\262\031\002\030\001'
|
|
53
53
|
_REFERENCEVALUES.fields_by_name['t_ref']._options = None
|
|
54
|
-
_REFERENCEVALUES.fields_by_name['t_ref']._serialized_options = b'\270\262\031\003\202\262\031\013\n\t\tfffff\002r@\212\262\031\t\
|
|
54
|
+
_REFERENCEVALUES.fields_by_name['t_ref']._serialized_options = b'\270\262\031\003\202\262\031\013\n\t\tfffff\002r@\212\262\031\t\021\000\000\000 _\240\002B\212\262\031\002\030\001'
|
|
55
55
|
_REFERENCEVALUES.fields_by_name['v_ref']._options = None
|
|
56
56
|
_REFERENCEVALUES.fields_by_name['v_ref']._serialized_options = b'\270\262\031\005\202\262\031\013\n\t\t\000\000\000\000\000\000\360?\212\262\031\t\t\000\000\000\000\000\000\000\000\212\262\031\t\021\000\000\000 _\240\002B\212\262\031\002\030\001'
|
|
57
|
-
_REFERENCEVALUETYPE._serialized_start=
|
|
58
|
-
_REFERENCEVALUETYPE._serialized_end=
|
|
57
|
+
_REFERENCEVALUETYPE._serialized_start=1089
|
|
58
|
+
_REFERENCEVALUETYPE._serialized_end=1202
|
|
59
59
|
_REFERENCEVALUES._serialized_start=115
|
|
60
|
-
_REFERENCEVALUES._serialized_end=
|
|
60
|
+
_REFERENCEVALUES._serialized_end=1087
|
|
61
61
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -15,12 +15,12 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
from luminarycloud._proto.base import base_pb2 as proto_dot_base_dot_base__pb2
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-proto/parametricworker/parametricworker.proto\x12\x1fluminary.proto.parametricworker\x1a\x15proto/base/base.proto\"\
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-proto/parametricworker/parametricworker.proto\x12\x1fluminary.proto.parametricworker\x1a\x15proto/base/base.proto\"\xa4\x02\n\tParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\x05owner\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x45\n\x05\x66loat\x18\x04 \x01(\x0b\x32\x34.luminary.proto.parametricworker.Parameter.FloatTypeH\x00\x1ar\n\tFloatType\x12\x31\n\x07\x61\x64_type\x18\x01 \x01(\x0b\x32 .luminary.proto.base.AdFloatType\x12\x10\n\x03min\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x03 \x01(\x01H\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x06\n\x04typeB\x08\n\x06_ownerB\x0e\n\x0c_description\"\x1b\n\x0bOpenRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x0b\n\tOpenReply\"\x16\n\x14GetParametersRequest\"T\n\x12GetParametersReply\x12>\n\nparameters\x18\x01 \x03(\x0b\x32*.luminary.proto.parametricworker.Parameter\"Y\n\x17UpdateParametersRequest\x12>\n\nparameters\x18\x01 \x03(\x0b\x32*.luminary.proto.parametricworker.Parameter\"\x17\n\x15UpdateParametersReply\"\x1c\n\rExportRequest\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x1b\n\x0b\x45xportReply\x12\x0c\n\x04path\x18\x01 \x01(\t\"\x11\n\x0fShutdownRequest\"\x0f\n\rShutdownReply2\xce\x04\n\x10ParametricWorker\x12`\n\x04Open\x12,.luminary.proto.parametricworker.OpenRequest\x1a*.luminary.proto.parametricworker.OpenReply\x12{\n\rGetParameters\x12\x35.luminary.proto.parametricworker.GetParametersRequest\x1a\x33.luminary.proto.parametricworker.GetParametersReply\x12\x84\x01\n\x10UpdateParameters\x12\x38.luminary.proto.parametricworker.UpdateParametersRequest\x1a\x36.luminary.proto.parametricworker.UpdateParametersReply\x12\x66\n\x06\x45xport\x12..luminary.proto.parametricworker.ExportRequest\x1a,.luminary.proto.parametricworker.ExportReply\x12l\n\x08Shutdown\x12\x30.luminary.proto.parametricworker.ShutdownRequest\x1a..luminary.proto.parametricworker.ShutdownReplyB/Z-luminarycloud.com/core/proto/parametricworkerb\x06proto3')
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
_PARAMETER = DESCRIPTOR.message_types_by_name['Parameter']
|
|
23
|
-
|
|
23
|
+
_PARAMETER_FLOATTYPE = _PARAMETER.nested_types_by_name['FloatType']
|
|
24
24
|
_OPENREQUEST = DESCRIPTOR.message_types_by_name['OpenRequest']
|
|
25
25
|
_OPENREPLY = DESCRIPTOR.message_types_by_name['OpenReply']
|
|
26
26
|
_GETPARAMETERSREQUEST = DESCRIPTOR.message_types_by_name['GetParametersRequest']
|
|
@@ -33,10 +33,10 @@ _SHUTDOWNREQUEST = DESCRIPTOR.message_types_by_name['ShutdownRequest']
|
|
|
33
33
|
_SHUTDOWNREPLY = DESCRIPTOR.message_types_by_name['ShutdownReply']
|
|
34
34
|
Parameter = _reflection.GeneratedProtocolMessageType('Parameter', (_message.Message,), {
|
|
35
35
|
|
|
36
|
-
'
|
|
37
|
-
'DESCRIPTOR' :
|
|
36
|
+
'FloatType' : _reflection.GeneratedProtocolMessageType('FloatType', (_message.Message,), {
|
|
37
|
+
'DESCRIPTOR' : _PARAMETER_FLOATTYPE,
|
|
38
38
|
'__module__' : 'proto.parametricworker.parametricworker_pb2'
|
|
39
|
-
# @@protoc_insertion_point(class_scope:luminary.proto.parametricworker.Parameter.
|
|
39
|
+
# @@protoc_insertion_point(class_scope:luminary.proto.parametricworker.Parameter.FloatType)
|
|
40
40
|
})
|
|
41
41
|
,
|
|
42
42
|
'DESCRIPTOR' : _PARAMETER,
|
|
@@ -44,7 +44,7 @@ Parameter = _reflection.GeneratedProtocolMessageType('Parameter', (_message.Mess
|
|
|
44
44
|
# @@protoc_insertion_point(class_scope:luminary.proto.parametricworker.Parameter)
|
|
45
45
|
})
|
|
46
46
|
_sym_db.RegisterMessage(Parameter)
|
|
47
|
-
_sym_db.RegisterMessage(Parameter.
|
|
47
|
+
_sym_db.RegisterMessage(Parameter.FloatType)
|
|
48
48
|
|
|
49
49
|
OpenRequest = _reflection.GeneratedProtocolMessageType('OpenRequest', (_message.Message,), {
|
|
50
50
|
'DESCRIPTOR' : _OPENREQUEST,
|
|
@@ -122,29 +122,29 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
122
122
|
DESCRIPTOR._options = None
|
|
123
123
|
DESCRIPTOR._serialized_options = b'Z-luminarycloud.com/core/proto/parametricworker'
|
|
124
124
|
_PARAMETER._serialized_start=106
|
|
125
|
-
_PARAMETER._serialized_end=
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
_OPENREQUEST._serialized_start=
|
|
129
|
-
_OPENREQUEST._serialized_end=
|
|
130
|
-
_OPENREPLY._serialized_start=
|
|
131
|
-
_OPENREPLY._serialized_end=
|
|
132
|
-
_GETPARAMETERSREQUEST._serialized_start=
|
|
133
|
-
_GETPARAMETERSREQUEST._serialized_end=
|
|
134
|
-
_GETPARAMETERSREPLY._serialized_start=
|
|
135
|
-
_GETPARAMETERSREPLY._serialized_end=
|
|
136
|
-
_UPDATEPARAMETERSREQUEST._serialized_start=
|
|
137
|
-
_UPDATEPARAMETERSREQUEST._serialized_end=
|
|
138
|
-
_UPDATEPARAMETERSREPLY._serialized_start=
|
|
139
|
-
_UPDATEPARAMETERSREPLY._serialized_end=
|
|
140
|
-
_EXPORTREQUEST._serialized_start=
|
|
141
|
-
_EXPORTREQUEST._serialized_end=
|
|
142
|
-
_EXPORTREPLY._serialized_start=
|
|
143
|
-
_EXPORTREPLY._serialized_end=
|
|
144
|
-
_SHUTDOWNREQUEST._serialized_start=
|
|
145
|
-
_SHUTDOWNREQUEST._serialized_end=
|
|
146
|
-
_SHUTDOWNREPLY._serialized_start=
|
|
147
|
-
_SHUTDOWNREPLY._serialized_end=
|
|
148
|
-
_PARAMETRICWORKER._serialized_start=
|
|
149
|
-
_PARAMETRICWORKER._serialized_end=
|
|
125
|
+
_PARAMETER._serialized_end=398
|
|
126
|
+
_PARAMETER_FLOATTYPE._serialized_start=250
|
|
127
|
+
_PARAMETER_FLOATTYPE._serialized_end=364
|
|
128
|
+
_OPENREQUEST._serialized_start=400
|
|
129
|
+
_OPENREQUEST._serialized_end=427
|
|
130
|
+
_OPENREPLY._serialized_start=429
|
|
131
|
+
_OPENREPLY._serialized_end=440
|
|
132
|
+
_GETPARAMETERSREQUEST._serialized_start=442
|
|
133
|
+
_GETPARAMETERSREQUEST._serialized_end=464
|
|
134
|
+
_GETPARAMETERSREPLY._serialized_start=466
|
|
135
|
+
_GETPARAMETERSREPLY._serialized_end=550
|
|
136
|
+
_UPDATEPARAMETERSREQUEST._serialized_start=552
|
|
137
|
+
_UPDATEPARAMETERSREQUEST._serialized_end=641
|
|
138
|
+
_UPDATEPARAMETERSREPLY._serialized_start=643
|
|
139
|
+
_UPDATEPARAMETERSREPLY._serialized_end=666
|
|
140
|
+
_EXPORTREQUEST._serialized_start=668
|
|
141
|
+
_EXPORTREQUEST._serialized_end=696
|
|
142
|
+
_EXPORTREPLY._serialized_start=698
|
|
143
|
+
_EXPORTREPLY._serialized_end=725
|
|
144
|
+
_SHUTDOWNREQUEST._serialized_start=727
|
|
145
|
+
_SHUTDOWNREQUEST._serialized_end=744
|
|
146
|
+
_SHUTDOWNREPLY._serialized_start=746
|
|
147
|
+
_SHUTDOWNREPLY._serialized_end=761
|
|
148
|
+
_PARAMETRICWORKER._serialized_start=764
|
|
149
|
+
_PARAMETRICWORKER._serialized_end=1354
|
|
150
150
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -23,7 +23,7 @@ class Parameter(google.protobuf.message.Message):
|
|
|
23
23
|
|
|
24
24
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class FloatType(google.protobuf.message.Message):
|
|
27
27
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
28
28
|
|
|
29
29
|
AD_TYPE_FIELD_NUMBER: builtins.int
|
|
@@ -54,18 +54,20 @@ class Parameter(google.protobuf.message.Message):
|
|
|
54
54
|
name: builtins.str
|
|
55
55
|
"""Name of the parameter."""
|
|
56
56
|
owner: builtins.str
|
|
57
|
-
"""Owner of the parameter, e.g., object/mesh in Blender.
|
|
57
|
+
"""Owner of the parameter, e.g., object/mesh in Blender.
|
|
58
|
+
Required for Blender.
|
|
59
|
+
"""
|
|
58
60
|
description: builtins.str
|
|
59
61
|
"""Description of the parameter."""
|
|
60
62
|
@property
|
|
61
|
-
def float(self) -> global___Parameter.
|
|
63
|
+
def float(self) -> global___Parameter.FloatType: ...
|
|
62
64
|
def __init__(
|
|
63
65
|
self,
|
|
64
66
|
*,
|
|
65
67
|
name: builtins.str = ...,
|
|
66
68
|
owner: builtins.str | None = ...,
|
|
67
69
|
description: builtins.str | None = ...,
|
|
68
|
-
float: global___Parameter.
|
|
70
|
+
float: global___Parameter.FloatType | None = ...,
|
|
69
71
|
) -> None: ...
|
|
70
72
|
def HasField(self, field_name: typing_extensions.Literal["_description", b"_description", "_owner", b"_owner", "description", b"description", "float", b"float", "owner", b"owner", "type", b"type"]) -> builtins.bool: ...
|
|
71
73
|
def ClearField(self, field_name: typing_extensions.Literal["_description", b"_description", "_owner", b"_owner", "description", b"description", "float", b"float", "name", b"name", "owner", b"owner", "type", b"type"]) -> None: ...
|
|
@@ -17,7 +17,7 @@ from luminarycloud._proto.base import base_pb2 as proto_dot_base_dot_base__pb2
|
|
|
17
17
|
from luminarycloud._proto.quantity import quantity_pb2 as proto_dot_quantity_dot_quantity__pb2
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17proto/table/table.proto\x12\x14luminary.proto.table\x1a\x15proto/base/base.proto\x1a\x1dproto/quantity/quantity.proto\"\xca\x01\n\x10RectilinearTable\x12\x30\n\x08metadata\x18\x01 \x01(\x0b\x32\x1e.luminary.proto.table.Metadata\x12,\n\x06header\x18\x02 \x01(\x0b\x32\x1c.luminary.proto.table.Header\x12(\n\x04\x61xis\x18\x03 \x03(\x0b\x32\x1a.luminary.proto.table.Axis\x12,\n\x06record\x18\x04 \x03(\x0b\x32\x1c.luminary.proto.table.Record\"\x8c\x01\n\x04\x41xis\x12\x39\n\ncoordinate\x18\x01 \x03(\x0b\x32%.luminary.proto.table.Axis.Coordinate\x1aI\n\nCoordinate\x12\x33\n\x07\x61\x64\x66loat\x18\x01 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeH\x00\x42\x06\n\x04type\"\xd8\x01\n\x06Record\x12\x31\n\x05\x65ntry\x18\x01 \x03(\x0b\x32\".luminary.proto.table.Record.Entry\x1a\x9a\x01\n\x05\x45ntry\x12\x33\n\x07\x61\x64\x66loat\x18\x01 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeH\x00\x12\x10\n\x06string\x18\x02 \x01(\tH\x00\x12\x39\n\x05\x65mpty\x18\x03 \x01(\x0b\x32(.luminary.proto.table.Record.Entry.EmptyH\x00\x1a\x07\n\x05\x45mptyB\x06\n\x04type\"\
|
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17proto/table/table.proto\x12\x14luminary.proto.table\x1a\x15proto/base/base.proto\x1a\x1dproto/quantity/quantity.proto\"\xca\x01\n\x10RectilinearTable\x12\x30\n\x08metadata\x18\x01 \x01(\x0b\x32\x1e.luminary.proto.table.Metadata\x12,\n\x06header\x18\x02 \x01(\x0b\x32\x1c.luminary.proto.table.Header\x12(\n\x04\x61xis\x18\x03 \x03(\x0b\x32\x1a.luminary.proto.table.Axis\x12,\n\x06record\x18\x04 \x03(\x0b\x32\x1c.luminary.proto.table.Record\"\x8c\x01\n\x04\x41xis\x12\x39\n\ncoordinate\x18\x01 \x03(\x0b\x32%.luminary.proto.table.Axis.Coordinate\x1aI\n\nCoordinate\x12\x33\n\x07\x61\x64\x66loat\x18\x01 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeH\x00\x42\x06\n\x04type\"\xd8\x01\n\x06Record\x12\x31\n\x05\x65ntry\x18\x01 \x03(\x0b\x32\".luminary.proto.table.Record.Entry\x1a\x9a\x01\n\x05\x45ntry\x12\x33\n\x07\x61\x64\x66loat\x18\x01 \x01(\x0b\x32 .luminary.proto.base.AdFloatTypeH\x00\x12\x10\n\x06string\x18\x02 \x01(\tH\x00\x12\x39\n\x05\x65mpty\x18\x03 \x01(\x0b\x32(.luminary.proto.table.Record.Entry.EmptyH\x00\x1a\x07\n\x05\x45mptyB\x06\n\x04type\"\x95\x02\n\x06Header\x12\x36\n\naxis_label\x18\x01 \x03(\x0b\x32\".luminary.proto.table.Header.Label\x12\x38\n\x0crecord_label\x18\x02 \x03(\x0b\x32\".luminary.proto.table.Header.Label\x12\x1d\n\x15\x61llow_missing_entries\x18\x04 \x01(\x08\x12\x1e\n\x16skip_header_validation\x18\x05 \x01(\x08\x1aZ\n\x05Label\x12\x39\n\x08quantity\x18\x01 \x01(\x0e\x32%.luminary.proto.quantity.QuantityTypeH\x00\x12\x0e\n\x04name\x18\x02 \x01(\tH\x00\x42\x06\n\x04type\"g\n\x08Metadata\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x33\n\ntable_type\x18\x02 \x01(\x0e\x32\x1f.luminary.proto.table.TableType\x12\x19\n\x11uploaded_filename\x18\x03 \x01(\t*\xcd\x01\n\tTableType\x12\x0b\n\x07INVALID\x10\x00\x12\x12\n\x0eMONITOR_POINTS\x10\x01\x12\x17\n\x13RADIAL_DISTRIBUTION\x10\x02\x12\x12\n\x0e\x42LADE_GEOMETRY\x10\x03\x12\x17\n\x13\x41IRFOIL_PERFORMANCE\x10\x04\x12\x0e\n\nPROFILE_BC\x10\x05\x12\r\n\tFAN_CURVE\x10\x06\x12\x15\n\x11\x43USTOM_SAMPLE_DOE\x10\x07\x12\x10\n\x0cTEMP_VARYING\x10\x08\x12\x11\n\rPROFILE_BC_2D\x10\tB$Z\"luminarycloud.com/core/proto/tableb\x06proto3')
|
|
21
21
|
|
|
22
22
|
_TABLETYPE = DESCRIPTOR.enum_types_by_name['TableType']
|
|
23
23
|
TableType = enum_type_wrapper.EnumTypeWrapper(_TABLETYPE)
|
|
@@ -30,6 +30,7 @@ PROFILE_BC = 5
|
|
|
30
30
|
FAN_CURVE = 6
|
|
31
31
|
CUSTOM_SAMPLE_DOE = 7
|
|
32
32
|
TEMP_VARYING = 8
|
|
33
|
+
PROFILE_BC_2D = 9
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
_RECTILINEARTABLE = DESCRIPTOR.message_types_by_name['RectilinearTable']
|
|
@@ -112,8 +113,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
112
113
|
|
|
113
114
|
DESCRIPTOR._options = None
|
|
114
115
|
DESCRIPTOR._serialized_options = b'Z\"luminarycloud.com/core/proto/table'
|
|
115
|
-
_TABLETYPE._serialized_start=
|
|
116
|
-
_TABLETYPE._serialized_end=
|
|
116
|
+
_TABLETYPE._serialized_start=1056
|
|
117
|
+
_TABLETYPE._serialized_end=1261
|
|
117
118
|
_RECTILINEARTABLE._serialized_start=104
|
|
118
119
|
_RECTILINEARTABLE._serialized_end=306
|
|
119
120
|
_AXIS._serialized_start=309
|
|
@@ -127,9 +128,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
127
128
|
_RECORD_ENTRY_EMPTY._serialized_start=653
|
|
128
129
|
_RECORD_ENTRY_EMPTY._serialized_end=660
|
|
129
130
|
_HEADER._serialized_start=671
|
|
130
|
-
_HEADER._serialized_end=
|
|
131
|
-
_HEADER_LABEL._serialized_start=
|
|
132
|
-
_HEADER_LABEL._serialized_end=
|
|
133
|
-
_METADATA._serialized_start=
|
|
134
|
-
_METADATA._serialized_end=
|
|
131
|
+
_HEADER._serialized_end=948
|
|
132
|
+
_HEADER_LABEL._serialized_start=858
|
|
133
|
+
_HEADER_LABEL._serialized_end=948
|
|
134
|
+
_METADATA._serialized_start=950
|
|
135
|
+
_METADATA._serialized_end=1053
|
|
135
136
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -35,6 +35,7 @@ class _TableTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._Enum
|
|
|
35
35
|
FAN_CURVE: _TableType.ValueType # 6
|
|
36
36
|
CUSTOM_SAMPLE_DOE: _TableType.ValueType # 7
|
|
37
37
|
TEMP_VARYING: _TableType.ValueType # 8
|
|
38
|
+
PROFILE_BC_2D: _TableType.ValueType # 9
|
|
38
39
|
|
|
39
40
|
class TableType(_TableType, metaclass=_TableTypeEnumTypeWrapper):
|
|
40
41
|
"""These table types are written to gcs by the frontend.
|
|
@@ -50,6 +51,7 @@ PROFILE_BC: TableType.ValueType # 5
|
|
|
50
51
|
FAN_CURVE: TableType.ValueType # 6
|
|
51
52
|
CUSTOM_SAMPLE_DOE: TableType.ValueType # 7
|
|
52
53
|
TEMP_VARYING: TableType.ValueType # 8
|
|
54
|
+
PROFILE_BC_2D: TableType.ValueType # 9
|
|
53
55
|
global___TableType = TableType
|
|
54
56
|
|
|
55
57
|
class RectilinearTable(google.protobuf.message.Message):
|
|
@@ -198,19 +200,23 @@ class Header(google.protobuf.message.Message):
|
|
|
198
200
|
AXIS_LABEL_FIELD_NUMBER: builtins.int
|
|
199
201
|
RECORD_LABEL_FIELD_NUMBER: builtins.int
|
|
200
202
|
ALLOW_MISSING_ENTRIES_FIELD_NUMBER: builtins.int
|
|
203
|
+
SKIP_HEADER_VALIDATION_FIELD_NUMBER: builtins.int
|
|
201
204
|
@property
|
|
202
205
|
def axis_label(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Header.Label]: ...
|
|
203
206
|
@property
|
|
204
207
|
def record_label(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Header.Label]: ...
|
|
205
208
|
allow_missing_entries: builtins.bool
|
|
209
|
+
skip_header_validation: builtins.bool
|
|
210
|
+
"""If true, skips validation of the header (in c++)."""
|
|
206
211
|
def __init__(
|
|
207
212
|
self,
|
|
208
213
|
*,
|
|
209
214
|
axis_label: collections.abc.Iterable[global___Header.Label] | None = ...,
|
|
210
215
|
record_label: collections.abc.Iterable[global___Header.Label] | None = ...,
|
|
211
216
|
allow_missing_entries: builtins.bool = ...,
|
|
217
|
+
skip_header_validation: builtins.bool = ...,
|
|
212
218
|
) -> None: ...
|
|
213
|
-
def ClearField(self, field_name: typing_extensions.Literal["allow_missing_entries", b"allow_missing_entries", "axis_label", b"axis_label", "record_label", b"record_label"]) -> None: ...
|
|
219
|
+
def ClearField(self, field_name: typing_extensions.Literal["allow_missing_entries", b"allow_missing_entries", "axis_label", b"axis_label", "record_label", b"record_label", "skip_header_validation", b"skip_header_validation"]) -> None: ...
|
|
214
220
|
|
|
215
221
|
global___Header = Header
|
|
216
222
|
|
luminarycloud/enum/__init__.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
from .averaging_type import AveragingType
|
|
3
3
|
from .calculation_type import CalculationType
|
|
4
4
|
from .force_direction_type import ForceDirectionType
|
|
5
|
+
from .geometry_status import GeometryStatus
|
|
5
6
|
from .gpu_type import GPUType
|
|
6
7
|
from .mesh_status import MeshStatus
|
|
7
8
|
from .mesh_type import MeshType
|
|
@@ -24,5 +25,6 @@ from .vis_enums import (
|
|
|
24
25
|
RenderStatusType,
|
|
25
26
|
Representation,
|
|
26
27
|
VisQuantity,
|
|
28
|
+
SurfaceStreamlineMode,
|
|
27
29
|
)
|
|
28
30
|
from .volume_reduction_type import VolumeReductionType
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Copyright 2023-2024 Luminary Cloud, Inc. All Rights Reserved.
|
|
2
|
+
from enum import IntEnum
|
|
3
|
+
from .._proto.api.v0.luminarycloud.geometry import geometry_pb2
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class GeometryStatus(IntEnum):
|
|
7
|
+
"""
|
|
8
|
+
Represents the status of a geometry.
|
|
9
|
+
|
|
10
|
+
Attributes
|
|
11
|
+
----------
|
|
12
|
+
UNKNOWN
|
|
13
|
+
Status is unknown.
|
|
14
|
+
IMPORTING
|
|
15
|
+
Geometry is still being processed.
|
|
16
|
+
NEEDS_CHECK
|
|
17
|
+
Geometry was created but has not yet been checked.
|
|
18
|
+
FAILED_CHECK
|
|
19
|
+
Geometry is not well-formed and cannot be used.
|
|
20
|
+
READY
|
|
21
|
+
Geometry is ready to use.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
UNKNOWN = geometry_pb2.Geometry.UNKNOWN
|
|
25
|
+
IMPORTING = geometry_pb2.Geometry.IMPORTING
|
|
26
|
+
NEEDS_CHECK = geometry_pb2.Geometry.NEEDS_CHECK
|
|
27
|
+
FAILED_CHECK = geometry_pb2.Geometry.FAILED_CHECK
|
|
28
|
+
READY = geometry_pb2.Geometry.READY
|
luminarycloud/geometry.py
CHANGED
|
@@ -5,8 +5,9 @@ from datetime import datetime
|
|
|
5
5
|
import random
|
|
6
6
|
from uuid import uuid4
|
|
7
7
|
import time
|
|
8
|
+
from typing import Sequence
|
|
8
9
|
|
|
9
|
-
from typing_extensions import TYPE_CHECKING
|
|
10
|
+
from typing_extensions import TYPE_CHECKING
|
|
10
11
|
|
|
11
12
|
import luminarycloud as lc
|
|
12
13
|
|
|
@@ -14,7 +15,7 @@ from ._client import get_default_client
|
|
|
14
15
|
from ._helpers._timestamp_to_datetime import timestamp_to_datetime
|
|
15
16
|
from ._proto.api.v0.luminarycloud.geometry import geometry_pb2 as geometrypb
|
|
16
17
|
from ._proto.geometry import geometry_pb2 as gpb
|
|
17
|
-
|
|
18
|
+
from .enum import GeometryStatus
|
|
18
19
|
from .params.geometry import Surface, Volume
|
|
19
20
|
from .tag import Tag
|
|
20
21
|
from ._wrapper import ProtoWrapper, ProtoWrapperBase
|
|
@@ -37,6 +38,8 @@ class Geometry(ProtoWrapperBase):
|
|
|
37
38
|
"Geometry ID."
|
|
38
39
|
name: str
|
|
39
40
|
"Geometry name."
|
|
41
|
+
status: GeometryStatus
|
|
42
|
+
"The status of the geometry."
|
|
40
43
|
|
|
41
44
|
_proto: geometrypb.Geometry
|
|
42
45
|
|
|
@@ -47,29 +50,18 @@ class Geometry(ProtoWrapperBase):
|
|
|
47
50
|
"""
|
|
48
51
|
return timestamp_to_datetime(self._proto.create_time)
|
|
49
52
|
|
|
50
|
-
|
|
53
|
+
@property
|
|
54
|
+
def update_time(self) -> datetime:
|
|
51
55
|
"""
|
|
52
|
-
|
|
56
|
+
The time the geometry was last updated.
|
|
53
57
|
"""
|
|
54
|
-
return
|
|
58
|
+
return timestamp_to_datetime(self._proto.update_time)
|
|
55
59
|
|
|
56
|
-
def
|
|
60
|
+
def project(self) -> "Project":
|
|
57
61
|
"""
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Parameters
|
|
61
|
-
----------
|
|
62
|
-
modification : Modification
|
|
63
|
-
The modification to apply to the geometry. If the modification type is
|
|
64
|
-
`MODIFICATION_TYPE_CREATE_FEATURE`, and the feature is a `farfield`, the
|
|
65
|
-
geometry will be automatically subtracted from the farfield.
|
|
62
|
+
Get the project this geometry belongs to.
|
|
66
63
|
"""
|
|
67
|
-
|
|
68
|
-
geometry_id=self.id,
|
|
69
|
-
modification=modification,
|
|
70
|
-
request_id=str(uuid4()),
|
|
71
|
-
)
|
|
72
|
-
get_default_client().ModifyGeometry(req)
|
|
64
|
+
return lc.get_project(ProjectID(self._proto.project_id))
|
|
73
65
|
|
|
74
66
|
def copy(self, name: str = "") -> "Geometry":
|
|
75
67
|
"""
|
|
@@ -136,7 +128,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
136
128
|
create_proto.half_sphere.CopyFrom(shape._to_proto()) # type: ignore
|
|
137
129
|
else:
|
|
138
130
|
raise TypeError(f"Unsupported shape for farfield: {type(shape)}")
|
|
139
|
-
self.
|
|
131
|
+
self._modify(
|
|
140
132
|
modification=gpb.Modification(
|
|
141
133
|
mod_type=gpb.Modification.MODIFICATION_TYPE_CREATE_FEATURE,
|
|
142
134
|
feature=gpb.Feature(
|
|
@@ -153,8 +145,21 @@ class Geometry(ProtoWrapperBase):
|
|
|
153
145
|
def undo(self) -> None:
|
|
154
146
|
"""
|
|
155
147
|
Undo the last modification to the geometry.
|
|
156
|
-
|
|
157
|
-
|
|
148
|
+
|
|
149
|
+
Examples
|
|
150
|
+
--------
|
|
151
|
+
>>> # Initialize create a farfield
|
|
152
|
+
>>> geometry.add_farfield(
|
|
153
|
+
... lc.params.geometry.shapes.Sphere(radius=2.0, center=Vector3(0.0, 0.0, 0.0))
|
|
154
|
+
... )
|
|
155
|
+
>>> # Undo the last modification
|
|
156
|
+
>>> geometry.undo()
|
|
157
|
+
>>> # Re-create a bigger farfield with a different center
|
|
158
|
+
>>> geometry.add_farfield(
|
|
159
|
+
... lc.params.geometry.shapes.Sphere(radius=3.0, center=Vector3(1.0, 1.0, 1.0))
|
|
160
|
+
... )
|
|
161
|
+
"""
|
|
162
|
+
self._modify(
|
|
158
163
|
modification=gpb.Modification(
|
|
159
164
|
mod_type=gpb.Modification.MODIFICATION_TYPE_UNDO,
|
|
160
165
|
)
|
|
@@ -164,7 +169,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
164
169
|
"""
|
|
165
170
|
Redo the last modification to the geometry.
|
|
166
171
|
"""
|
|
167
|
-
self.
|
|
172
|
+
self._modify(
|
|
168
173
|
modification=gpb.Modification(
|
|
169
174
|
mod_type=gpb.Modification.MODIFICATION_TYPE_REDO,
|
|
170
175
|
)
|
|
@@ -181,7 +186,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
181
186
|
new_name : str
|
|
182
187
|
The new name for the feature.
|
|
183
188
|
"""
|
|
184
|
-
self.
|
|
189
|
+
self._modify(
|
|
185
190
|
modification=gpb.Modification(
|
|
186
191
|
mod_type=gpb.Modification.MODIFICATION_TYPE_RENAME_FEATURE,
|
|
187
192
|
feature=gpb.Feature(
|
|
@@ -200,7 +205,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
200
205
|
feature_id : str
|
|
201
206
|
The ID of the feature to delete.
|
|
202
207
|
"""
|
|
203
|
-
self.
|
|
208
|
+
self._modify(
|
|
204
209
|
modification=gpb.Modification(
|
|
205
210
|
mod_type=gpb.Modification.MODIFICATION_TYPE_DELETE_FEATURE,
|
|
206
211
|
feature=gpb.Feature(
|
|
@@ -218,7 +223,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
218
223
|
tag_names : list[str]
|
|
219
224
|
The names of the tags to delete.
|
|
220
225
|
"""
|
|
221
|
-
self.
|
|
226
|
+
self._modify(
|
|
222
227
|
modification=gpb.Modification(
|
|
223
228
|
mod_type=gpb.Modification.MODIFICATION_TYPE_DELETE_TAGS,
|
|
224
229
|
delete_tags=gpb.DeleteTags(
|
|
@@ -265,6 +270,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
265
270
|
)
|
|
266
271
|
)
|
|
267
272
|
if res.finished:
|
|
273
|
+
self.refresh()
|
|
268
274
|
return res.ok, list(res.issues)
|
|
269
275
|
jitter = random.uniform(0.5, 1.5)
|
|
270
276
|
time.sleep(2 + jitter)
|
|
@@ -314,7 +320,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
314
320
|
new_name : str
|
|
315
321
|
The new name for the tag.
|
|
316
322
|
"""
|
|
317
|
-
self.
|
|
323
|
+
self._modify(
|
|
318
324
|
modification=gpb.Modification(
|
|
319
325
|
mod_type=gpb.Modification.MODIFICATION_TYPE_RENAME_TAG,
|
|
320
326
|
rename_tag=gpb.RenameTag(
|
|
@@ -346,7 +352,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
346
352
|
else:
|
|
347
353
|
raise TypeError("entities must be of type Volume or Surface")
|
|
348
354
|
|
|
349
|
-
self.
|
|
355
|
+
self._modify(
|
|
350
356
|
modification=gpb.Modification(
|
|
351
357
|
mod_type=gpb.Modification.MODIFICATION_TYPE_DELETE_TAG,
|
|
352
358
|
delete_tag=gpb.DeleteTag(
|
|
@@ -377,7 +383,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
377
383
|
else:
|
|
378
384
|
raise TypeError("entities must be of type Volume or Surface")
|
|
379
385
|
|
|
380
|
-
self.
|
|
386
|
+
self._modify(
|
|
381
387
|
modification=gpb.Modification(
|
|
382
388
|
mod_type=gpb.Modification.MODIFICATION_TYPE_UPDATE_TAG,
|
|
383
389
|
create_or_update_tag=gpb.CreateOrUpdateTag(
|
|
@@ -439,7 +445,25 @@ class Geometry(ProtoWrapperBase):
|
|
|
439
445
|
]
|
|
440
446
|
return surfaces, volumes
|
|
441
447
|
|
|
442
|
-
def
|
|
448
|
+
def _modify(self, modification: gpb.Modification) -> None:
|
|
449
|
+
"""
|
|
450
|
+
Apply a modification to the geometry.
|
|
451
|
+
|
|
452
|
+
Parameters
|
|
453
|
+
----------
|
|
454
|
+
modification : Modification
|
|
455
|
+
The modification to apply to the geometry. If the modification type is
|
|
456
|
+
`MODIFICATION_TYPE_CREATE_FEATURE`, and the feature is a `farfield`, the
|
|
457
|
+
geometry will be automatically subtracted from the farfield.
|
|
458
|
+
"""
|
|
459
|
+
req = geometrypb.ModifyGeometryRequest(
|
|
460
|
+
geometry_id=self.id,
|
|
461
|
+
modification=modification,
|
|
462
|
+
request_id=str(uuid4()),
|
|
463
|
+
)
|
|
464
|
+
get_default_client().ModifyGeometry(req)
|
|
465
|
+
|
|
466
|
+
def _list_features(
|
|
443
467
|
self,
|
|
444
468
|
) -> list[gpb.Feature]:
|
|
445
469
|
"""
|
|
@@ -458,7 +482,7 @@ class Geometry(ProtoWrapperBase):
|
|
|
458
482
|
)
|
|
459
483
|
return list(res.features)
|
|
460
484
|
|
|
461
|
-
def
|
|
485
|
+
def _list_feature_issues(
|
|
462
486
|
self,
|
|
463
487
|
) -> list[gpb.FeatureIssues]:
|
|
464
488
|
"""
|
|
@@ -478,6 +502,14 @@ class Geometry(ProtoWrapperBase):
|
|
|
478
502
|
)
|
|
479
503
|
return list(res.features_issues)
|
|
480
504
|
|
|
505
|
+
def refresh(self) -> None:
|
|
506
|
+
"""
|
|
507
|
+
Refresh the geometry status.
|
|
508
|
+
"""
|
|
509
|
+
req = geometrypb.GetGeometryRequest(geometry_id=self.id)
|
|
510
|
+
res: geometrypb.GetGeometryResponse = get_default_client().GetGeometry(req)
|
|
511
|
+
self._proto = res.geometry
|
|
512
|
+
|
|
481
513
|
|
|
482
514
|
def get_geometry(id: str) -> Geometry:
|
|
483
515
|
"""
|
|
@@ -87,7 +87,7 @@ class GeometryVersion(ProtoWrapperBase):
|
|
|
87
87
|
]
|
|
88
88
|
return surfaces, volumes
|
|
89
89
|
|
|
90
|
-
def
|
|
90
|
+
def _list_features(
|
|
91
91
|
self,
|
|
92
92
|
) -> list[gpb.Feature]:
|
|
93
93
|
"""
|
|
@@ -106,7 +106,7 @@ class GeometryVersion(ProtoWrapperBase):
|
|
|
106
106
|
)
|
|
107
107
|
return list(res.features)
|
|
108
108
|
|
|
109
|
-
def
|
|
109
|
+
def _list_feature_issues(
|
|
110
110
|
self,
|
|
111
111
|
) -> list[gpb.FeatureIssues]:
|
|
112
112
|
"""
|
luminarycloud/mesh.py
CHANGED
|
@@ -11,8 +11,9 @@ from ._helpers._wait_for_mesh import wait_for_mesh
|
|
|
11
11
|
from ._proto.api.v0.luminarycloud.mesh import mesh_pb2 as meshpb
|
|
12
12
|
from ._wrapper import ProtoWrapper, ProtoWrapperBase
|
|
13
13
|
from .enum import MeshStatus
|
|
14
|
-
from .types import MeshID, ProjectID
|
|
15
14
|
from .geometry_version import GeometryVersion, get_geometry_version
|
|
15
|
+
from .meshing.metadata import MeshMetadata
|
|
16
|
+
from .types import MeshID, ProjectID
|
|
16
17
|
|
|
17
18
|
if TYPE_CHECKING:
|
|
18
19
|
from .project import Project
|
|
@@ -122,6 +123,12 @@ class Mesh(ProtoWrapperBase):
|
|
|
122
123
|
)
|
|
123
124
|
get_default_client().DeleteMesh(req)
|
|
124
125
|
|
|
126
|
+
def get_metadata(self) -> MeshMetadata:
|
|
127
|
+
"""
|
|
128
|
+
Get the metadata for this mesh.
|
|
129
|
+
"""
|
|
130
|
+
return get_mesh_metadata(self.id)
|
|
131
|
+
|
|
125
132
|
|
|
126
133
|
def get_mesh(id: MeshID) -> Mesh:
|
|
127
134
|
"""
|
|
@@ -137,9 +144,9 @@ def get_mesh(id: MeshID) -> Mesh:
|
|
|
137
144
|
return Mesh(res.mesh)
|
|
138
145
|
|
|
139
146
|
|
|
140
|
-
def get_mesh_metadata(id: MeshID) ->
|
|
147
|
+
def get_mesh_metadata(id: MeshID) -> MeshMetadata:
|
|
141
148
|
"""
|
|
142
|
-
Returns the mesh metadata
|
|
149
|
+
Returns the mesh metadata for the mesh with the given ID.
|
|
143
150
|
|
|
144
151
|
Parameters
|
|
145
152
|
----------
|
|
@@ -149,4 +156,4 @@ def get_mesh_metadata(id: MeshID) -> meshpb.MeshMetadata:
|
|
|
149
156
|
res: meshpb.GetMeshMetadataResponse = get_default_client().GetMeshMetadata(
|
|
150
157
|
meshpb.GetMeshMetadataRequest(id=id)
|
|
151
158
|
)
|
|
152
|
-
return res.mesh_metadata
|
|
159
|
+
return MeshMetadata(res.mesh_metadata)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from ..._proto.api.v0.luminarycloud.mesh import mesh_pb2 as meshpb
|
|
2
|
+
from ..._wrapper import ProtoWrapper, ProtoWrapperBase
|
|
3
|
+
from ...types import Vector3
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@ProtoWrapper(meshpb.MeshMetadata.MeshStats)
|
|
7
|
+
class MeshStats(ProtoWrapperBase):
|
|
8
|
+
"""Contains stats about a part of a mesh."""
|
|
9
|
+
|
|
10
|
+
n_points: int
|
|
11
|
+
"The number of points."
|
|
12
|
+
n_faces: int
|
|
13
|
+
"The number of faces."
|
|
14
|
+
n_cvs: int
|
|
15
|
+
"The number of control volumes."
|
|
16
|
+
min_coord: Vector3
|
|
17
|
+
"The minimum coordinate."
|
|
18
|
+
max_coord: Vector3
|
|
19
|
+
"The maximum coordinate."
|
|
20
|
+
|
|
21
|
+
_proto: meshpb.MeshMetadata.MeshStats
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@ProtoWrapper(meshpb.MeshMetadata.Boundary)
|
|
25
|
+
class BoundaryMetadata(ProtoWrapperBase):
|
|
26
|
+
"""Represents a Mesh object."""
|
|
27
|
+
|
|
28
|
+
name: str
|
|
29
|
+
"The name of this mesh boundary."
|
|
30
|
+
stats: MeshStats
|
|
31
|
+
"The stats for this mesh boundary."
|
|
32
|
+
|
|
33
|
+
_proto: meshpb.MeshMetadata.Boundary
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@ProtoWrapper(meshpb.MeshMetadata.Zone)
|
|
37
|
+
class ZoneMetadata(ProtoWrapperBase):
|
|
38
|
+
"""Contains info about a zone in a mesh."""
|
|
39
|
+
|
|
40
|
+
name: str
|
|
41
|
+
"The name of this mesh zone."
|
|
42
|
+
stats: MeshStats
|
|
43
|
+
"The stats for this mesh zone."
|
|
44
|
+
boundaries: list[BoundaryMetadata]
|
|
45
|
+
"The boundaries in this mesh zone."
|
|
46
|
+
|
|
47
|
+
_proto: meshpb.MeshMetadata.Zone
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@ProtoWrapper(meshpb.MeshMetadata)
|
|
51
|
+
class MeshMetadata(ProtoWrapperBase):
|
|
52
|
+
"""Contains info about a Mesh."""
|
|
53
|
+
|
|
54
|
+
zones: list[ZoneMetadata]
|
|
55
|
+
"The zones in this mesh."
|
|
56
|
+
|
|
57
|
+
_proto: meshpb.MeshMetadata
|