luminarycloud 0.22.2__py3-none-any.whl → 0.23.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 +9 -3
- luminarycloud/_client/client.py +1 -1
- luminarycloud/_client/retry_interceptor.py +13 -2
- 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/named_variable_set/named_variable_set_pb2.py +25 -3
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +30 -0
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +34 -0
- luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +12 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +155 -59
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +252 -22
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +102 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +36 -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 +405 -346
- luminarycloud/_proto/client/simulation_pb2.pyi +175 -21
- 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/lcstatus/details/geometry/geometry_pb2.py +256 -0
- luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.pyi +472 -0
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +102 -0
- luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +36 -0
- luminarycloud/_proto/quantity/quantity_pb2.pyi +1 -1
- luminarycloud/enum/__init__.py +1 -0
- luminarycloud/enum/gpu_type.py +42 -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 +1 -1
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
- 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 +1 -1
- 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 +17 -0
- luminarycloud/physics_ai/architectures.py +130 -18
- luminarycloud/physics_ai/datasets.py +301 -0
- luminarycloud/physics_ai/training_jobs.py +50 -4
- luminarycloud/pipelines/__init__.py +16 -4
- luminarycloud/pipelines/api.py +192 -17
- luminarycloud/pipelines/arguments.py +8 -3
- luminarycloud/pipelines/core.py +296 -45
- luminarycloud/pipelines/flowables.py +138 -0
- luminarycloud/pipelines/stages.py +34 -55
- 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.2.dist-info → luminarycloud-0.23.0.dist-info}/METADATA +1 -1
- {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/RECORD +266 -249
- luminarycloud/params/outputs/residual_output.py +0 -24
- /luminarycloud/params/{simulation/_lib.py → _lib.py} +0 -0
- {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/WHEEL +0 -0
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.physics.solution_controls.linear_solver_type_ import (
|
|
21
21
|
LinearSolverType,
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.physics.fluid_ import Fluid
|
|
21
21
|
from luminarycloud.params.simulation.physics.fluid_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.adaptive_mesh_refinement_ import AdaptiveMeshRefinement
|
|
21
21
|
from luminarycloud.params.simulation.adaptive_mesh_refinement_ import *
|
|
@@ -37,6 +37,8 @@ from luminarycloud.params.simulation.multi_physics_coupling_options_ import (
|
|
|
37
37
|
MultiPhysicsCouplingOptions,
|
|
38
38
|
)
|
|
39
39
|
from luminarycloud.params.simulation.multi_physics_coupling_options_ import *
|
|
40
|
+
from luminarycloud.params.simulation.nonlinear_control_ import NonlinearControl
|
|
41
|
+
from luminarycloud.params.simulation.nonlinear_control_ import *
|
|
40
42
|
from luminarycloud.params.simulation.output_ import Output
|
|
41
43
|
from luminarycloud.params.simulation.output_ import *
|
|
42
44
|
from luminarycloud.params.simulation.particle_group_ import ParticleGroup
|
|
@@ -65,6 +67,8 @@ class SimulationParam(CodeRepr, ParamGroupWrapper[clientpb.SimulationParam]):
|
|
|
65
67
|
"Basic parameters used by a solution."
|
|
66
68
|
adjoint: Adjoint = field(default_factory=Adjoint)
|
|
67
69
|
"Settings for adjoint sensitivity analysis."
|
|
70
|
+
nonlinear_control: NonlinearControl = field(default_factory=NonlinearControl)
|
|
71
|
+
"Determine input values such that target output values are met."
|
|
68
72
|
time: Time = field(default_factory=Time)
|
|
69
73
|
"Time parameters used by a transient solution (required if flow_behavior = transient)."
|
|
70
74
|
motion_data: list[MotionData] = field(default_factory=list)
|
|
@@ -104,6 +108,8 @@ class SimulationParam(CodeRepr, ParamGroupWrapper[clientpb.SimulationParam]):
|
|
|
104
108
|
_proto.general.CopyFrom(self.basic._to_proto())
|
|
105
109
|
if self.adjoint is not None:
|
|
106
110
|
_proto.adjoint.CopyFrom(self.adjoint._to_proto())
|
|
111
|
+
if self.nonlinear_control is not None:
|
|
112
|
+
_proto.nonlinear_control.CopyFrom(self.nonlinear_control._to_proto())
|
|
107
113
|
if self.time is not None:
|
|
108
114
|
_proto.time.CopyFrom(self.time._to_proto())
|
|
109
115
|
if self.motion_data is not None:
|
|
@@ -139,6 +145,7 @@ class SimulationParam(CodeRepr, ParamGroupWrapper[clientpb.SimulationParam]):
|
|
|
139
145
|
self.volume_entity = [VolumeEntity.from_proto(v) for v in proto.volume_entity]
|
|
140
146
|
self.basic = General.from_proto(proto.general)
|
|
141
147
|
self.adjoint = Adjoint.from_proto(proto.adjoint)
|
|
148
|
+
self.nonlinear_control = NonlinearControl.from_proto(proto.nonlinear_control)
|
|
142
149
|
self.time = Time.from_proto(proto.time)
|
|
143
150
|
self.motion_data = [MotionData.from_proto(v) for v in proto.motion_data]
|
|
144
151
|
self.particle_group = [ParticleGroup.from_proto(v) for v in proto.particle_group]
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.compute_statistics_ import ComputeStatistics
|
|
21
21
|
from luminarycloud.params.simulation.time.compute_statistics_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.compute_statistics_ import ComputeStatistics
|
|
21
21
|
from luminarycloud.params.simulation.time.compute_statistics_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.time_marching_ import TimeMarching
|
|
21
21
|
from luminarycloud.params.simulation.time.time_marching_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.time_marching_ import TimeMarching
|
|
21
21
|
from luminarycloud.params.simulation.time.time_marching_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.time_step_ramp_ import TimeStepRamp
|
|
21
21
|
from luminarycloud.params.simulation.time.time_step_ramp_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.time_step_ramp_ import TimeStepRamp
|
|
21
21
|
from luminarycloud.params.simulation.time.time_step_ramp_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.time.compute_statistics_ import ComputeStatistics
|
|
21
21
|
from luminarycloud.params.simulation.time.compute_statistics_ import *
|
|
@@ -15,7 +15,7 @@ from luminarycloud._proto.client.entity_pb2 import EntityIdentifier
|
|
|
15
15
|
from luminarycloud._helpers import CodeRepr
|
|
16
16
|
import luminarycloud.params.enum._enum_wrappers as enum
|
|
17
17
|
|
|
18
|
-
from luminarycloud.params.
|
|
18
|
+
from luminarycloud.params._lib import ParamGroupWrapper, create_unique_id
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@dataclass(kw_only=True)
|
|
@@ -2,6 +2,8 @@ from .architectures import (
|
|
|
2
2
|
list_architectures as list_architectures,
|
|
3
3
|
PhysicsAiArchitecture as PhysicsAiArchitecture,
|
|
4
4
|
PhysicsAiArchitectureVersion as PhysicsAiArchitectureVersion,
|
|
5
|
+
ModelOutputs as ModelOutputs,
|
|
6
|
+
InputParameter as InputParameter,
|
|
5
7
|
)
|
|
6
8
|
from .models import (
|
|
7
9
|
list_pretrained_models as list_pretrained_models,
|
|
@@ -19,3 +21,18 @@ from .inference import (
|
|
|
19
21
|
VisualizationExport as VisualizationExport,
|
|
20
22
|
NumericResult as NumericResult,
|
|
21
23
|
)
|
|
24
|
+
|
|
25
|
+
from .datasets import (
|
|
26
|
+
create_dataset as create_dataset,
|
|
27
|
+
list_datasets as list_datasets,
|
|
28
|
+
DatasetCaseInput as DatasetCaseInput,
|
|
29
|
+
ExportConfig as ExportConfig,
|
|
30
|
+
PhysicsAiDataset as PhysicsAiDataset,
|
|
31
|
+
ParameterDefinition as ParameterDefinition,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
from .training_jobs import (
|
|
35
|
+
get_training_job as get_training_job,
|
|
36
|
+
list_training_jobs as list_training_jobs,
|
|
37
|
+
PhysicsAiTrainingJob as PhysicsAiTrainingJob,
|
|
38
|
+
)
|
|
@@ -1,16 +1,68 @@
|
|
|
1
1
|
# Copyright 2025 Luminary Cloud, Inc. All Rights Reserved.
|
|
2
|
-
|
|
2
|
+
import copy
|
|
3
|
+
from dataclasses import dataclass, field
|
|
3
4
|
import json
|
|
4
5
|
|
|
5
6
|
from .._client import get_default_client
|
|
6
7
|
from .._proto.api.v0.luminarycloud.physics_ai import physics_ai_pb2 as physaipb
|
|
8
|
+
from .._proto.quantity import quantity_pb2 as quantitypb
|
|
7
9
|
from .._wrapper import ProtoWrapper, ProtoWrapperBase
|
|
8
10
|
from ..types.ids import PhysicsAiArchitectureID, PhysicsAiArchitectureVersionID
|
|
9
11
|
from ..enum.physics_ai_lifecycle_state import PhysicsAiLifecycleState
|
|
12
|
+
from ..enum.quantity_type import QuantityType
|
|
10
13
|
|
|
11
14
|
from .training_jobs import PhysicsAiTrainingJob
|
|
12
15
|
|
|
13
16
|
|
|
17
|
+
@dataclass
|
|
18
|
+
class ModelOutputs:
|
|
19
|
+
"""
|
|
20
|
+
Defines the output variables for the model.
|
|
21
|
+
|
|
22
|
+
Parameters
|
|
23
|
+
----------
|
|
24
|
+
surface : list[QuantityType], optional
|
|
25
|
+
Surface outputs to predict (e.g., PRESSURE, WALL_SHEAR_STRESS)
|
|
26
|
+
volume : list[QuantityType], optional
|
|
27
|
+
Volume outputs to predict (e.g., VELOCITY, PRESSURE)
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
surface: list[QuantityType] | None = None
|
|
31
|
+
volume: list[QuantityType] | None = None
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@dataclass
|
|
35
|
+
class InputParameter:
|
|
36
|
+
"""
|
|
37
|
+
Defines an input parameter for the model with reference values for normalization.
|
|
38
|
+
|
|
39
|
+
Type is inherited from the dataset's ParameterSchema, so only the name and
|
|
40
|
+
optional reference values need to be specified here.
|
|
41
|
+
|
|
42
|
+
Parameters
|
|
43
|
+
----------
|
|
44
|
+
name : str
|
|
45
|
+
Parameter name (must exist in the dataset's ParameterSchema)
|
|
46
|
+
reference : list[float], optional
|
|
47
|
+
Reference value(s) for normalization. If not provided, falls back to
|
|
48
|
+
the default_reference from the dataset's ParameterSchema. For scalars,
|
|
49
|
+
a single-element list. For vectors, the number of elements must match
|
|
50
|
+
the dimension from the schema.
|
|
51
|
+
|
|
52
|
+
Examples
|
|
53
|
+
--------
|
|
54
|
+
>>> # Use schema defaults (no reference specified)
|
|
55
|
+
>>> air_density = InputParameter(name="air_density")
|
|
56
|
+
>>> # Override with custom reference values
|
|
57
|
+
>>> velocity = InputParameter(name="inlet_velocity", reference=[30.0, 0.0, 0.0])
|
|
58
|
+
>>> # Scalar parameter with explicit reference
|
|
59
|
+
>>> stream_velocity = InputParameter(name="stream_velocity", reference=[148.28])
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
name: str
|
|
63
|
+
reference: list[float] = field(default_factory=list)
|
|
64
|
+
|
|
65
|
+
|
|
14
66
|
@ProtoWrapper(physaipb.PhysicsAiArchitectureVersion)
|
|
15
67
|
class PhysicsAiArchitectureVersion(ProtoWrapperBase):
|
|
16
68
|
"""
|
|
@@ -26,34 +78,91 @@ class PhysicsAiArchitectureVersion(ProtoWrapperBase):
|
|
|
26
78
|
lifecycle_state: PhysicsAiLifecycleState
|
|
27
79
|
_proto: physaipb.PhysicsAiArchitectureVersion
|
|
28
80
|
|
|
29
|
-
def get_training_description(self,
|
|
30
|
-
if
|
|
31
|
-
return
|
|
81
|
+
def get_training_description(self, _internal: dict | None) -> str:
|
|
82
|
+
if _internal and _internal.get("description"):
|
|
83
|
+
return _internal["description"]
|
|
32
84
|
|
|
33
85
|
desc = f"Training job for architecture {self.name}"
|
|
34
|
-
if
|
|
35
|
-
desc += f" with custom args: {
|
|
86
|
+
if _internal and _internal.get("custom_args"):
|
|
87
|
+
desc += f" with custom args: {_internal['custom_args']}"
|
|
36
88
|
return desc
|
|
37
89
|
|
|
38
|
-
def train(
|
|
90
|
+
def train(
|
|
91
|
+
self,
|
|
92
|
+
dataset_id: str | None = None,
|
|
93
|
+
outputs: ModelOutputs | None = None,
|
|
94
|
+
inputs: list[InputParameter] | None = None,
|
|
95
|
+
_internal: dict | None = None,
|
|
96
|
+
) -> PhysicsAiTrainingJob:
|
|
39
97
|
"""
|
|
40
98
|
Submit a training job for this architecture version.
|
|
41
99
|
|
|
42
100
|
Parameters
|
|
43
101
|
----------
|
|
44
|
-
|
|
45
|
-
|
|
102
|
+
dataset_id : str, optional
|
|
103
|
+
ID of a managed dataset to train on. If provided, uses session-based
|
|
104
|
+
GCS authentication.
|
|
105
|
+
outputs : ModelOutputs, optional
|
|
106
|
+
Output variables for the model (surface and/or volume quantities).
|
|
107
|
+
inputs : list[InputParameter], optional
|
|
108
|
+
Input parameters for the model with reference values for normalization.
|
|
109
|
+
Parameter names must exist in the dataset's ParameterSchema.
|
|
110
|
+
_internal : dict, optional
|
|
111
|
+
Internal configuration (resources, priority_class, custom_args, etc.).
|
|
112
|
+
This is for internal use only and may change without notice.
|
|
46
113
|
|
|
47
114
|
Returns
|
|
48
115
|
-------
|
|
49
116
|
PhysicsAiTrainingJob
|
|
50
117
|
The submitted training job object
|
|
51
|
-
"""
|
|
52
118
|
|
|
119
|
+
Examples
|
|
120
|
+
--------
|
|
121
|
+
>>> from luminarycloud.enum.quantity_type import QuantityType
|
|
122
|
+
>>> from luminarycloud.physics_ai.architectures import ModelOutputs, InputParameter
|
|
123
|
+
>>>
|
|
124
|
+
>>> job = arch_version.train(
|
|
125
|
+
... dataset_id="dataset-abc123",
|
|
126
|
+
... outputs=ModelOutputs(
|
|
127
|
+
... surface=[QuantityType.PRESSURE_TIME_AVERAGE, QuantityType.WALL_SHEAR_STRESS_TIME_AVERAGE],
|
|
128
|
+
... volume=[QuantityType.VELOCITY_TIME_AVERAGE],
|
|
129
|
+
... ),
|
|
130
|
+
... inputs=[
|
|
131
|
+
... InputParameter(name="stream_velocity", reference=[148.28]),
|
|
132
|
+
... InputParameter(name="air_density", reference=[0.38]),
|
|
133
|
+
... ],
|
|
134
|
+
... )
|
|
135
|
+
"""
|
|
136
|
+
# Build typed proto fields for outputs
|
|
137
|
+
surface_outputs: list[quantitypb.QuantityType] = []
|
|
138
|
+
volume_outputs: list[quantitypb.QuantityType] = []
|
|
139
|
+
|
|
140
|
+
if outputs:
|
|
141
|
+
if outputs.surface:
|
|
142
|
+
surface_outputs = [quantitypb.QuantityType.Value(q.name) for q in outputs.surface]
|
|
143
|
+
if outputs.volume:
|
|
144
|
+
volume_outputs = [quantitypb.QuantityType.Value(q.name) for q in outputs.volume]
|
|
145
|
+
|
|
146
|
+
# Build typed proto fields for input parameters
|
|
147
|
+
# Type is inherited from the dataset's ParameterSchema at HydraConfig generation time
|
|
148
|
+
input_parameters: list[physaipb.TrainingInputParameter] = []
|
|
149
|
+
if inputs:
|
|
150
|
+
for param in inputs:
|
|
151
|
+
input_parameters.append(
|
|
152
|
+
physaipb.TrainingInputParameter(
|
|
153
|
+
name=param.name,
|
|
154
|
+
reference=param.reference,
|
|
155
|
+
)
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
# Build training_config JSON for internal fields only (resources, priority_class, etc.)
|
|
159
|
+
config: dict = copy.deepcopy(_internal) if _internal else {}
|
|
160
|
+
|
|
161
|
+
# Apply defaults for _internal fields
|
|
53
162
|
if "custom_args" not in config:
|
|
54
163
|
config["custom_args"] = ""
|
|
55
164
|
if "priority_class" not in config:
|
|
56
|
-
config["priority_class"] = "
|
|
165
|
+
config["priority_class"] = "internal-training-job-priority"
|
|
57
166
|
if "resources" not in config:
|
|
58
167
|
config["resources"] = {}
|
|
59
168
|
if "process_cpus" not in config["resources"]:
|
|
@@ -66,14 +175,17 @@ class PhysicsAiArchitectureVersion(ProtoWrapperBase):
|
|
|
66
175
|
config["mode"] = "full"
|
|
67
176
|
|
|
68
177
|
training_config_json = json.dumps(config, indent=2)
|
|
69
|
-
|
|
178
|
+
|
|
70
179
|
req = physaipb.SubmitTrainingJobRequest(
|
|
71
180
|
architecture_version_id=self.id,
|
|
72
|
-
training_description=self.get_training_description(
|
|
73
|
-
external_dataset_uri=external_dataset_uri,
|
|
181
|
+
training_description=self.get_training_description(_internal),
|
|
74
182
|
training_config=training_config_json,
|
|
75
183
|
initialization_type=physaipb.MODEL_INITIALIZATION_TYPE_RANDOM,
|
|
76
184
|
base_model_version_id="",
|
|
185
|
+
dataset_id=dataset_id if dataset_id else "",
|
|
186
|
+
surface_outputs=surface_outputs,
|
|
187
|
+
volume_outputs=volume_outputs,
|
|
188
|
+
input_parameters=input_parameters,
|
|
77
189
|
)
|
|
78
190
|
|
|
79
191
|
response = get_default_client().SubmitTrainingJob(req)
|
|
@@ -92,10 +204,10 @@ class PhysicsAiArchitecture(ProtoWrapperBase):
|
|
|
92
204
|
id: PhysicsAiArchitectureID
|
|
93
205
|
name: str
|
|
94
206
|
description: str
|
|
95
|
-
versions:
|
|
207
|
+
versions: list[PhysicsAiArchitectureVersion]
|
|
96
208
|
_proto: physaipb.PhysicsAiArchitecture
|
|
97
209
|
|
|
98
|
-
def get_latest_version(self) ->
|
|
210
|
+
def get_latest_version(self) -> PhysicsAiArchitectureVersion | None:
|
|
99
211
|
"""
|
|
100
212
|
Get the latest version of this architecture based on name.
|
|
101
213
|
|
|
@@ -107,10 +219,10 @@ class PhysicsAiArchitecture(ProtoWrapperBase):
|
|
|
107
219
|
"""
|
|
108
220
|
if not self.versions:
|
|
109
221
|
return None
|
|
110
|
-
return self.versions[0]
|
|
222
|
+
return self.versions[0]
|
|
111
223
|
|
|
112
224
|
|
|
113
|
-
def list_architectures() ->
|
|
225
|
+
def list_architectures() -> list[PhysicsAiArchitecture]:
|
|
114
226
|
"""
|
|
115
227
|
List available Physics AI architectures for model training.
|
|
116
228
|
|