luminarycloud 0.22.3__py3-none-any.whl → 0.23.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- luminarycloud/__init__.py +9 -3
- luminarycloud/_client/client.py +1 -1
- luminarycloud/_helpers/_code_representation.py +1 -0
- luminarycloud/_helpers/_create_simulation.py +5 -1
- luminarycloud/_helpers/proto_decorator.py +46 -38
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +214 -137
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +152 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +40 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +137 -63
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +166 -6
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +68 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +24 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +94 -71
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +46 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +35 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +16 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -3
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +32 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +34 -0
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +12 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +68 -21
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +119 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +33 -0
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +10 -0
- luminarycloud/_proto/client/simulation_pb2.py +409 -348
- luminarycloud/_proto/client/simulation_pb2.pyi +188 -27
- luminarycloud/_proto/clusterconfig/clusterconfig_pb2.py +273 -0
- luminarycloud/_proto/clusterconfig/clusterconfig_pb2.pyi +808 -0
- luminarycloud/_proto/geometry/geometry_pb2.pyi +1 -1
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +68 -0
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +24 -0
- luminarycloud/enum/__init__.py +1 -0
- luminarycloud/enum/gpu_type.py +47 -7
- luminarycloud/enum/vis_enums.py +18 -0
- luminarycloud/geometry.py +81 -0
- luminarycloud/geometry_contacts.py +222 -0
- luminarycloud/meshing/mesh_generation_params.py +4 -4
- luminarycloud/meshing/sizing_strategy/__init__.py +0 -1
- luminarycloud/meshing/sizing_strategy/sizing_strategies.py +0 -20
- luminarycloud/params/geometry/shapes.py +137 -31
- luminarycloud/params/outputs/__init__.py +0 -2
- luminarycloud/params/outputs/output.py +17 -5
- luminarycloud/params/simulation/__init__.py +2 -0
- luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +1 -1
- luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
- luminarycloud/params/simulation/adaptive_mesh_refinement_.py +1 -1
- luminarycloud/params/simulation/adjoint_.py +8 -5
- luminarycloud/params/simulation/basic/gravity/gravity_off_.py +1 -1
- luminarycloud/params/simulation/basic/gravity/gravity_on_.py +1 -1
- luminarycloud/params/simulation/basic/gravity_.py +1 -1
- luminarycloud/params/simulation/body_frame_.py +1 -1
- luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +1 -1
- luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +1 -1
- luminarycloud/params/simulation/entity_relationships_.py +1 -1
- luminarycloud/params/simulation/general_.py +1 -1
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/__init__.py +2 -0
- luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/__init__.py +2 -0
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_coolprop_.py +43 -0
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_polynomial_.py +53 -0
- luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend_.py +29 -0
- luminarycloud/params/simulation/material/fluid/material_model_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
- luminarycloud/params/simulation/material/fluid/viscosity_model_.py +1 -1
- luminarycloud/params/simulation/material/material_fluid_.py +78 -2
- luminarycloud/params/simulation/material/material_solid_.py +1 -1
- luminarycloud/params/simulation/material_entity_.py +1 -1
- luminarycloud/params/simulation/monitor_plane_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +1 -1
- luminarycloud/params/simulation/motion_data/frame_transforms_.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +1 -1
- luminarycloud/params/simulation/motion_data/motion_type_.py +1 -1
- luminarycloud/params/simulation/motion_data_.py +1 -1
- luminarycloud/params/simulation/multi_physics_coupling_options_.py +1 -1
- luminarycloud/params/simulation/nonlinear_control/__init__.py +1 -0
- luminarycloud/params/simulation/nonlinear_control/nonlinear_control_system_.py +48 -0
- luminarycloud/params/simulation/nonlinear_control_.py +61 -0
- luminarycloud/params/simulation/output_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +1 -1
- luminarycloud/params/simulation/particle_group/particle_group_type_.py +1 -1
- luminarycloud/params/simulation/particle_group_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +1 -0
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +14 -1
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_initialization_per_zone_.py +48 -0
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +14 -1
- luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_auto_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +3 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +3 -3
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +5 -3
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/turbulence_.py +1 -1
- luminarycloud/params/simulation/physics/fluid_.py +1 -1
- luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +1 -1
- luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +1 -1
- luminarycloud/params/simulation/physics/heat/heat_source_.py +1 -1
- luminarycloud/params/simulation/physics/heat/initialization/__init__.py +1 -0
- luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +1 -1
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/__init__.py +1 -0
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/heat_initialization_per_zone_.py +40 -0
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +14 -1
- luminarycloud/params/simulation/physics/heat/initialization_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +1 -1
- luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +1 -1
- luminarycloud/params/simulation/physics/heat_.py +1 -1
- luminarycloud/params/simulation/physics/periodic_pair_.py +5 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +1 -1
- luminarycloud/params/simulation/physics_.py +1 -1
- luminarycloud/params/simulation/simulation_param_.py +8 -1
- luminarycloud/params/simulation/sliding_interfaces_.py +1 -1
- luminarycloud/params/simulation/surface_name_.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +1 -1
- luminarycloud/params/simulation/time/compute_statistics_.py +1 -1
- luminarycloud/params/simulation/time/time_marching/time_explicit_.py +1 -1
- luminarycloud/params/simulation/time/time_marching/time_implicit_.py +1 -1
- luminarycloud/params/simulation/time/time_marching_.py +1 -1
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +1 -1
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +1 -1
- luminarycloud/params/simulation/time/time_step_ramp_.py +1 -1
- luminarycloud/params/simulation/time_.py +1 -1
- luminarycloud/params/simulation/volume_entity_.py +1 -1
- luminarycloud/physics_ai/__init__.py +9 -0
- luminarycloud/physics_ai/architectures.py +129 -17
- luminarycloud/physics_ai/datasets.py +66 -11
- luminarycloud/physics_ai/training_jobs.py +50 -4
- luminarycloud/pipelines/__init__.py +5 -4
- luminarycloud/pipelines/api.py +148 -34
- luminarycloud/pipelines/arguments.py +8 -3
- luminarycloud/pipelines/core.py +10 -72
- luminarycloud/pipelines/stages.py +28 -25
- luminarycloud/pipelines/user_code_validation.py +122 -0
- luminarycloud/project.py +0 -14
- luminarycloud/simulation.py +42 -11
- luminarycloud/simulation_param.py +0 -62
- luminarycloud/simulation_template.py +1 -11
- luminarycloud/types/adfloat.py +48 -4
- luminarycloud/types/matrix3.py +9 -9
- luminarycloud/types/vector3.py +52 -23
- luminarycloud/vis/__init__.py +3 -0
- luminarycloud/vis/visualization.py +88 -0
- luminarycloud/volume_selection.py +29 -17
- {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.1.dist-info}/METADATA +1 -1
- {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.1.dist-info}/RECORD +257 -244
- luminarycloud/params/outputs/residual_output.py +0 -24
- /luminarycloud/params/{simulation/_lib.py → _lib.py} +0 -0
- {luminarycloud-0.22.3.dist-info → luminarycloud-0.23.1.dist-info}/WHEEL +0 -0
|
@@ -25,6 +25,7 @@ from luminarycloud.enum import (
|
|
|
25
25
|
VisQuantity,
|
|
26
26
|
QuantityType,
|
|
27
27
|
FieldAssociation,
|
|
28
|
+
ExtremaType,
|
|
28
29
|
)
|
|
29
30
|
from ..exceptions import NotFoundError
|
|
30
31
|
from ..geometry import Geometry, get_geometry
|
|
@@ -1109,6 +1110,28 @@ class RangeResult:
|
|
|
1109
1110
|
""" Name of the field. """
|
|
1110
1111
|
|
|
1111
1112
|
|
|
1113
|
+
@dc.dataclass
|
|
1114
|
+
class ExtremaResult:
|
|
1115
|
+
"""
|
|
1116
|
+
Result from an extrema query containing information about a single extremum value.
|
|
1117
|
+
|
|
1118
|
+
.. warning:: This feature is experimental and may change or be removed in the future.
|
|
1119
|
+
"""
|
|
1120
|
+
|
|
1121
|
+
value: float
|
|
1122
|
+
""" The extremum value. """
|
|
1123
|
+
local_cell_id: int
|
|
1124
|
+
""" Local cell id in the volume specified by the volume name. """
|
|
1125
|
+
approx_cell_center: Vector3
|
|
1126
|
+
""" Approximate cell center in global coordinates. """
|
|
1127
|
+
volume_id: str
|
|
1128
|
+
""" Id of the volume. """
|
|
1129
|
+
global_face_ids: List[int]
|
|
1130
|
+
""" Cell's global face ids. """
|
|
1131
|
+
connected_bounds_ids: List[str]
|
|
1132
|
+
""" Ids of any connected surfaces. """
|
|
1133
|
+
|
|
1134
|
+
|
|
1112
1135
|
def range_query(solution: Solution, field_association: FieldAssociation) -> List[RangeResult]:
|
|
1113
1136
|
"""
|
|
1114
1137
|
The range query returns the min/max values for all fields in a solution. Two
|
|
@@ -1155,6 +1178,71 @@ def range_query(solution: Solution, field_association: FieldAssociation) -> List
|
|
|
1155
1178
|
return result
|
|
1156
1179
|
|
|
1157
1180
|
|
|
1181
|
+
def extrema_query(
|
|
1182
|
+
solution: Solution,
|
|
1183
|
+
field: Field,
|
|
1184
|
+
extrema_type: ExtremaType,
|
|
1185
|
+
num_values: int = 10,
|
|
1186
|
+
) -> List[ExtremaResult]:
|
|
1187
|
+
"""
|
|
1188
|
+
The extrema query returns the top N minimum or maximum values for a specific
|
|
1189
|
+
field/component in a solution. This is useful for finding hotspots, peak values,
|
|
1190
|
+
or other extreme conditions in your simulation results.
|
|
1191
|
+
|
|
1192
|
+
.. warning:: This feature is experimental and may change or be removed in the future.
|
|
1193
|
+
|
|
1194
|
+
Parameters
|
|
1195
|
+
----------
|
|
1196
|
+
solution: Solution
|
|
1197
|
+
The solution object to query.
|
|
1198
|
+
field: Field
|
|
1199
|
+
The field (quantity and component) to query for extrema values.
|
|
1200
|
+
extrema_type: ExtremaType
|
|
1201
|
+
Whether to find minimum or maximum values.
|
|
1202
|
+
num_values: int
|
|
1203
|
+
How many extrema values to return. Default: 10
|
|
1204
|
+
|
|
1205
|
+
Returns
|
|
1206
|
+
-------
|
|
1207
|
+
List[ExtremaResult]
|
|
1208
|
+
A list of extrema results, each containing the value, location, and connectivity information.
|
|
1209
|
+
"""
|
|
1210
|
+
|
|
1211
|
+
if num_values <= 0:
|
|
1212
|
+
raise ValueError(f"num_values must be positive, got {num_values}")
|
|
1213
|
+
|
|
1214
|
+
if field.quantity == VisQuantity.NONE:
|
|
1215
|
+
raise ValueError("Field quantity cannot be NONE")
|
|
1216
|
+
|
|
1217
|
+
sim = get_simulation(solution.simulation_id)
|
|
1218
|
+
req = vis_pb2.ExtremaQueryRequest()
|
|
1219
|
+
req.entity.simulation.id = solution.simulation_id
|
|
1220
|
+
req.entity.simulation.solution_id = solution.id
|
|
1221
|
+
req.project_id = sim.project_id
|
|
1222
|
+
|
|
1223
|
+
# Use the Field's _to_proto method to properly set field with quantity and component
|
|
1224
|
+
req.field.CopyFrom(field._to_proto())
|
|
1225
|
+
|
|
1226
|
+
req.num_values = num_values
|
|
1227
|
+
req.extrema_type = extrema_type
|
|
1228
|
+
|
|
1229
|
+
res: vis_pb2.ExtremaQueryReply = get_default_client().ExtremaQuery(req)
|
|
1230
|
+
result: List[ExtremaResult] = []
|
|
1231
|
+
for e in res.extrema:
|
|
1232
|
+
extrema_result = ExtremaResult(
|
|
1233
|
+
value=e.value,
|
|
1234
|
+
local_cell_id=e.local_cell_id,
|
|
1235
|
+
approx_cell_center=Vector3(
|
|
1236
|
+
x=e.approx_cell_center.x, y=e.approx_cell_center.y, z=e.approx_cell_center.z
|
|
1237
|
+
),
|
|
1238
|
+
volume_id=e.volume_id,
|
|
1239
|
+
global_face_ids=list(e.global_face_ids),
|
|
1240
|
+
connected_bounds_ids=list(e.connected_bounds_ids),
|
|
1241
|
+
)
|
|
1242
|
+
result.append(extrema_result)
|
|
1243
|
+
return result
|
|
1244
|
+
|
|
1245
|
+
|
|
1158
1246
|
def list_renders(entity: Geometry | Mesh | Solution) -> List[RenderOutput]:
|
|
1159
1247
|
"""
|
|
1160
1248
|
Lists all previously created renders associated with a project and an entity.
|
|
@@ -12,7 +12,7 @@ from luminarycloud._proto.api.v0.luminarycloud.geometry import (
|
|
|
12
12
|
geometry_pb2 as geometrypb,
|
|
13
13
|
)
|
|
14
14
|
from luminarycloud._proto.upload import upload_pb2 as uploadpb
|
|
15
|
-
from luminarycloud.types.adfloat import _from_ad_proto, _to_ad_proto
|
|
15
|
+
from luminarycloud.types.adfloat import LcFloat, _from_ad_proto, _to_ad_proto
|
|
16
16
|
|
|
17
17
|
from ._client import get_default_client
|
|
18
18
|
from ._proto.base import base_pb2 as basepb
|
|
@@ -122,9 +122,9 @@ class VolumeSelection:
|
|
|
122
122
|
|
|
123
123
|
def import_cad(
|
|
124
124
|
self,
|
|
125
|
-
cad_file_path: PathLike,
|
|
125
|
+
cad_file_path: PathLike | str,
|
|
126
126
|
*,
|
|
127
|
-
scaling:
|
|
127
|
+
scaling: LcFloat = 1.0,
|
|
128
128
|
feature_name: str = "Import CAD",
|
|
129
129
|
) -> None:
|
|
130
130
|
"""
|
|
@@ -134,7 +134,7 @@ class VolumeSelection:
|
|
|
134
134
|
----------
|
|
135
135
|
cad_file_path : PathLike
|
|
136
136
|
The path to the CAD file to import.
|
|
137
|
-
scaling :
|
|
137
|
+
scaling : LcFloat
|
|
138
138
|
The scaling factor to apply to the CAD file.
|
|
139
139
|
feature_name : str
|
|
140
140
|
The name of the feature. This is not a tag name.
|
|
@@ -347,7 +347,7 @@ class VolumeSelection:
|
|
|
347
347
|
|
|
348
348
|
def rotate(
|
|
349
349
|
self,
|
|
350
|
-
angle:
|
|
350
|
+
angle: LcFloat,
|
|
351
351
|
axis: Vector3Like,
|
|
352
352
|
origin: Vector3Like,
|
|
353
353
|
*,
|
|
@@ -359,7 +359,7 @@ class VolumeSelection:
|
|
|
359
359
|
|
|
360
360
|
Parameters
|
|
361
361
|
----------
|
|
362
|
-
angle :
|
|
362
|
+
angle : LcFloat
|
|
363
363
|
The angle to rotate the selected volumes by, in degrees.
|
|
364
364
|
axis : Vector3Like
|
|
365
365
|
The axis to rotate the selected volumes around.
|
|
@@ -389,7 +389,7 @@ class VolumeSelection:
|
|
|
389
389
|
|
|
390
390
|
def scale(
|
|
391
391
|
self,
|
|
392
|
-
factor:
|
|
392
|
+
factor: LcFloat,
|
|
393
393
|
origin: Vector3Like,
|
|
394
394
|
*,
|
|
395
395
|
keep: bool = False,
|
|
@@ -400,7 +400,7 @@ class VolumeSelection:
|
|
|
400
400
|
|
|
401
401
|
Parameters
|
|
402
402
|
----------
|
|
403
|
-
factor :
|
|
403
|
+
factor : LcFloat
|
|
404
404
|
The scaling factor.
|
|
405
405
|
origin : Vector3Like
|
|
406
406
|
The origin to scale the selected volumes from.
|
|
@@ -620,7 +620,7 @@ class VolumeSelection:
|
|
|
620
620
|
def linear_pattern_with_vector_magnitude(
|
|
621
621
|
self,
|
|
622
622
|
vector: Vector3Like,
|
|
623
|
-
magnitude:
|
|
623
|
+
magnitude: LcFloat,
|
|
624
624
|
quantity: int,
|
|
625
625
|
symmetric: bool = False,
|
|
626
626
|
*,
|
|
@@ -634,7 +634,7 @@ class VolumeSelection:
|
|
|
634
634
|
----------
|
|
635
635
|
vector : Vector3Like
|
|
636
636
|
Direction of the vector to repeat the selected volumes along. It will be normalized.
|
|
637
|
-
magnitude :
|
|
637
|
+
magnitude : LcFloat
|
|
638
638
|
The magnitude of the vector.
|
|
639
639
|
quantity : int
|
|
640
640
|
The number of times to repeat the selected volumes.
|
|
@@ -643,16 +643,28 @@ class VolumeSelection:
|
|
|
643
643
|
feature_name : str
|
|
644
644
|
The name of the feature.
|
|
645
645
|
"""
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
646
|
+
self.__create_feature(
|
|
647
|
+
gpb.Feature(
|
|
648
|
+
feature_name=feature_name,
|
|
649
|
+
pattern=gpb.Pattern(
|
|
650
|
+
body=self.__volume_ids,
|
|
651
|
+
direction=gpb.Pattern.Direction(
|
|
652
|
+
linear_spacing=transformationpb.Translation(
|
|
653
|
+
magnitude_vector=transformationpb.MagnitudeAdVector3(
|
|
654
|
+
direction=_to_vector3_ad_proto(vector),
|
|
655
|
+
magnitude=_to_ad_proto(magnitude),
|
|
656
|
+
),
|
|
657
|
+
),
|
|
658
|
+
quantity=quantity,
|
|
659
|
+
symmetric=symmetric,
|
|
660
|
+
),
|
|
661
|
+
),
|
|
662
|
+
)
|
|
651
663
|
)
|
|
652
664
|
|
|
653
665
|
def circular_pattern(
|
|
654
666
|
self,
|
|
655
|
-
angle:
|
|
667
|
+
angle: LcFloat,
|
|
656
668
|
axis: Vector3Like,
|
|
657
669
|
origin: Vector3Like,
|
|
658
670
|
quantity: int,
|
|
@@ -666,7 +678,7 @@ class VolumeSelection:
|
|
|
666
678
|
|
|
667
679
|
Parameters
|
|
668
680
|
----------
|
|
669
|
-
angle :
|
|
681
|
+
angle : LcFloat
|
|
670
682
|
The angle of the circular arc, in degrees.
|
|
671
683
|
axis : Vector3Like
|
|
672
684
|
The axis of the circular arc.
|