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
|
@@ -8,7 +8,7 @@ from difflib import Differ
|
|
|
8
8
|
from .enum import (
|
|
9
9
|
TableType,
|
|
10
10
|
)
|
|
11
|
-
from ._helpers.warnings import experimental
|
|
11
|
+
from ._helpers.warnings import experimental, deprecated
|
|
12
12
|
from ._client import get_default_client
|
|
13
13
|
from ._helpers._simulation_params_from_json import simulation_params_from_json_path
|
|
14
14
|
from ._helpers._timestamp_to_datetime import timestamp_to_datetime
|
|
@@ -60,8 +60,6 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
60
60
|
"Simulation template ID."
|
|
61
61
|
name: str
|
|
62
62
|
"Simulation name."
|
|
63
|
-
parameters: clientpb.SimulationParam
|
|
64
|
-
"Simulation description."
|
|
65
63
|
|
|
66
64
|
_proto: simtemplatepb.SimulationTemplate
|
|
67
65
|
|
|
@@ -77,7 +75,7 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
77
75
|
self,
|
|
78
76
|
*,
|
|
79
77
|
name: Optional[str] = None,
|
|
80
|
-
parameters: Optional[
|
|
78
|
+
parameters: Optional[SimulationParam | PathLike] = None,
|
|
81
79
|
) -> None:
|
|
82
80
|
"""
|
|
83
81
|
Update simulation template.
|
|
@@ -92,6 +90,17 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
92
90
|
changes applied by the backend (server), for example due to presets. Any differences
|
|
93
91
|
between input and result are printed on screen.
|
|
94
92
|
"""
|
|
93
|
+
return self._update(name=name, parameters=parameters)
|
|
94
|
+
|
|
95
|
+
def _update(
|
|
96
|
+
self,
|
|
97
|
+
*,
|
|
98
|
+
name: Optional[str] = None,
|
|
99
|
+
parameters: Optional[SimulationParam | clientpb.SimulationParam | PathLike] = None,
|
|
100
|
+
) -> None:
|
|
101
|
+
"""
|
|
102
|
+
Update simulation template. See `update()` for more details.
|
|
103
|
+
"""
|
|
95
104
|
req = simtemplatepb.UpdateSimulationTemplateRequest(id=self.id)
|
|
96
105
|
|
|
97
106
|
if name is not None:
|
|
@@ -110,12 +119,14 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
110
119
|
# Table references are manipulated via the simulation template, hence we need to persist
|
|
111
120
|
# them when we update the parameters.
|
|
112
121
|
param_proto.table_references.clear()
|
|
113
|
-
for k, v in self.parameters.table_references.items():
|
|
122
|
+
for k, v in self._proto.parameters.table_references.items():
|
|
114
123
|
param_proto.table_references[k].CopyFrom(v)
|
|
115
124
|
|
|
116
125
|
req.parameters.CopyFrom(param_proto)
|
|
117
126
|
|
|
118
|
-
res =
|
|
127
|
+
res: simtemplatepb.UpdateSimulationTemplateResponse = (
|
|
128
|
+
get_default_client().UpdateSimulationTemplate(req)
|
|
129
|
+
)
|
|
119
130
|
self._proto = res.simulation_template
|
|
120
131
|
|
|
121
132
|
def print_diff(
|
|
@@ -134,11 +145,11 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
134
145
|
# Show any inconsistency after the update and update the input argument.
|
|
135
146
|
if isinstance(parameters, SimulationParam):
|
|
136
147
|
old_param = deepcopy(parameters)
|
|
137
|
-
parameters._from_proto(self.parameters)
|
|
148
|
+
parameters._from_proto(self._proto.parameters)
|
|
138
149
|
print_diff(old_param, parameters)
|
|
139
150
|
elif isinstance(parameters, clientpb.SimulationParam):
|
|
140
|
-
print_diff(parameters, self.parameters)
|
|
141
|
-
parameters.CopyFrom(self.parameters)
|
|
151
|
+
print_diff(parameters, self._proto.parameters)
|
|
152
|
+
parameters.CopyFrom(self._proto.parameters)
|
|
142
153
|
|
|
143
154
|
def delete(self) -> None:
|
|
144
155
|
"""
|
|
@@ -147,12 +158,17 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
147
158
|
req = simtemplatepb.DeleteSimulationTemplateRequest(id=self.id)
|
|
148
159
|
get_default_client().DeleteSimulationTemplate(req)
|
|
149
160
|
|
|
161
|
+
def get_parameters(self) -> SimulationParam:
|
|
162
|
+
return self.get_simulation_param()
|
|
163
|
+
|
|
164
|
+
@deprecated(
|
|
165
|
+
"Use get_parameters() instead. This method will be removed in a future release.",
|
|
166
|
+
)
|
|
150
167
|
def get_simulation_param(self) -> SimulationParam:
|
|
151
168
|
"""
|
|
152
|
-
Returns the simulation parameters associated with this template
|
|
153
|
-
the parameters.
|
|
169
|
+
Returns a copy of the simulation parameters associated with this template.
|
|
154
170
|
"""
|
|
155
|
-
return SimulationParam.from_proto(self.parameters)
|
|
171
|
+
return SimulationParam.from_proto(self._proto.parameters)
|
|
156
172
|
|
|
157
173
|
def list_tables(
|
|
158
174
|
self,
|
|
@@ -172,7 +188,7 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
172
188
|
List of tables.
|
|
173
189
|
"""
|
|
174
190
|
res: list[RectilinearTable] = []
|
|
175
|
-
for id, metadata in self.parameters.table_references.items():
|
|
191
|
+
for id, metadata in self._proto.parameters.table_references.items():
|
|
176
192
|
if table_type is None or table_type.value == metadata.table_type:
|
|
177
193
|
res.append(
|
|
178
194
|
RectilinearTable(
|
|
@@ -442,6 +458,61 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
442
458
|
self.id, max_iterations, max_physical_time, max_inner_iterations, stop_on_any
|
|
443
459
|
)
|
|
444
460
|
|
|
461
|
+
def to_code(self, hide_defaults: bool = True) -> str:
|
|
462
|
+
"""
|
|
463
|
+
Returns the python code that generates an identical SimulationTemplate object.
|
|
464
|
+
By default parameters with default values are omitted, this change be changed with
|
|
465
|
+
hide_defaults=False.
|
|
466
|
+
"""
|
|
467
|
+
param_code = self.get_simulation_param().to_code(hide_defaults)
|
|
468
|
+
code, param_code = param_code.split("\n\n\n")
|
|
469
|
+
|
|
470
|
+
# Modify the header note included by SimulationParam.to_code.
|
|
471
|
+
code = code.replace("SimulationParam", "SimulationTemplate")
|
|
472
|
+
code += "\n\n\n"
|
|
473
|
+
code += '# Create a new simulation template or modify the "Setup" template.\n'
|
|
474
|
+
code += 'project = get_project("...")\n'
|
|
475
|
+
code += f"# template = project.create_simulation_template(name={self.name})\n"
|
|
476
|
+
code += "template = project.list_simulation_templates()[0]\n\n"
|
|
477
|
+
|
|
478
|
+
code += "# Define the simulation parameters.\n"
|
|
479
|
+
code += param_code
|
|
480
|
+
code += "\n# Update the simulation template with the parameters.\n"
|
|
481
|
+
code += "template.update(parameters=obj)\n\n"
|
|
482
|
+
|
|
483
|
+
code += "# Define the outputs for monitoring simulations.\n"
|
|
484
|
+
code += "# This assumes the outputs do not exist yet, to modify an exiting output use\n"
|
|
485
|
+
code += "# update_output_definition instead of create_output_definition, the former\n"
|
|
486
|
+
code += "# requires the definition ID, that is obtained from list_output_definitions.\n"
|
|
487
|
+
output_definitions = self.list_output_definitions()
|
|
488
|
+
for i, definition in enumerate(output_definitions):
|
|
489
|
+
if i == 0:
|
|
490
|
+
code += "outputs = []\n"
|
|
491
|
+
output_code = definition._to_code_helper("new_output", hide_defaults)
|
|
492
|
+
for line in output_code.split("\n"):
|
|
493
|
+
# Omit ID because we are generating for create_output_definition.
|
|
494
|
+
if line and not line.startswith("new_output.id"):
|
|
495
|
+
code += f"{line}\n"
|
|
496
|
+
code += "outputs.append(template.create_output_definition(new_output))\n\n"
|
|
497
|
+
|
|
498
|
+
code += "# Define the basic and output-based stopping conditions.\n"
|
|
499
|
+
gsc = self.get_general_stopping_conditions()
|
|
500
|
+
code += f"template.update_general_stopping_conditions({gsc.max_iterations}, "
|
|
501
|
+
code += f"{gsc.max_physical_time}, {gsc.max_inner_iterations}, {gsc.stop_on_any})\n"
|
|
502
|
+
|
|
503
|
+
for i, sc in enumerate(self.list_stopping_conditions()):
|
|
504
|
+
if i == 0:
|
|
505
|
+
code += "\n# Output-based conditions require the ID of the associated output.\n"
|
|
506
|
+
# Find the old output to use the new ID created by create_output_definition.
|
|
507
|
+
for j, od in enumerate(output_definitions):
|
|
508
|
+
if sc.output_definition_id == od.id:
|
|
509
|
+
code += f"template.create_or_update_stopping_condition(outputs[{j}].id, "
|
|
510
|
+
code += f"{sc.threshold}, {sc.start_at_iteration}, {sc.averaging_iterations}, "
|
|
511
|
+
code += f"{sc.iterations_to_consider})\n"
|
|
512
|
+
break
|
|
513
|
+
|
|
514
|
+
return code
|
|
515
|
+
|
|
445
516
|
|
|
446
517
|
def get_simulation_template(id: SimulationTemplateID) -> SimulationTemplate:
|
|
447
518
|
"""
|
luminarycloud/types/ids.py
CHANGED
|
@@ -9,3 +9,5 @@ SolutionID = NewType("SolutionID", str)
|
|
|
9
9
|
SimulationTemplateID = NewType("SimulationTemplateID", str)
|
|
10
10
|
GeometryFeatureID = NewType("GeometryFeatureID", str)
|
|
11
11
|
NamedVariableSetID = NewType("NamedVariableSetID", str)
|
|
12
|
+
PhysicsAiArchitectureID = NewType("PhysicsAiArchitectureID", str)
|
|
13
|
+
PhysicsAiModelID = NewType("PhysicsAiModelID", str)
|
luminarycloud/vis/__init__.py
CHANGED
luminarycloud/vis/display.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from .display import DisplayAttributes
|
|
2
|
-
from .filters import SurfaceStreamlines, Filter
|
|
2
|
+
from .filters import SurfaceStreamlines, Filter, SurfaceLIC
|
|
3
3
|
from .._client import get_default_client
|
|
4
4
|
from ..enum.vis_enums import EntityType, SceneMode
|
|
5
5
|
from typing import TYPE_CHECKING, cast
|
|
@@ -73,6 +73,12 @@ class InteractiveScene:
|
|
|
73
73
|
bad_ids = scene._validate_surfaces_and_tags(streamlines._surface_names)
|
|
74
74
|
if len(bad_ids) != 0:
|
|
75
75
|
raise ValueError(f"SurfaceStreamlines has invalid surfaces: {bad_ids}")
|
|
76
|
+
if isinstance(filter, SurfaceLIC):
|
|
77
|
+
# Validate surfaces names
|
|
78
|
+
lic = cast(SurfaceLIC, filter)
|
|
79
|
+
bad_ids = scene._validate_surfaces_and_tags(lic._surface_names)
|
|
80
|
+
if len(bad_ids) != 0:
|
|
81
|
+
raise ValueError(f"SurfaceStreamlines has invalid surfaces: {bad_ids}")
|
|
76
82
|
|
|
77
83
|
if isinstance(filter, Filter):
|
|
78
84
|
vis_filter: vis_pb2.Filter = filter._to_proto()
|
|
@@ -125,8 +131,7 @@ class InteractiveScene:
|
|
|
125
131
|
self.widget.reset_camera()
|
|
126
132
|
|
|
127
133
|
def set_camera(self, camera: "LookAtCamera") -> None:
|
|
128
|
-
|
|
129
|
-
self.widget.camera_pan = [0, 0]
|
|
134
|
+
self.widget.camera_pan = [camera.pan_x, camera.pan_y]
|
|
130
135
|
self.widget.camera_position = [camera.position[0], camera.position[1], camera.position[2]]
|
|
131
136
|
self.widget.camera_look_at = [camera.look_at[0], camera.look_at[1], camera.look_at[2]]
|
|
132
137
|
self.widget.camera_up = [camera.up[0], camera.up[1], camera.up[2]]
|
|
@@ -139,6 +144,10 @@ class InteractiveScene:
|
|
|
139
144
|
camera.position = self.widget.camera_position
|
|
140
145
|
camera.look_at = self.widget.camera_look_at
|
|
141
146
|
camera.up = self.widget.camera_up
|
|
147
|
+
# Immediately after creation, the widget's camera_pan is empty, so avoid going out of bounds
|
|
148
|
+
# and report 0 which is what it would be anyway
|
|
149
|
+
camera.pan_x = self.widget.camera_pan[0] if self.widget.camera_pan else 0
|
|
150
|
+
camera.pan_y = self.widget.camera_pan[1] if self.widget.camera_pan else 0
|
|
142
151
|
return camera
|
|
143
152
|
|
|
144
153
|
def set_triad_visible(self, visible: bool) -> None:
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import dataclasses as dc
|
|
2
|
+
import io
|
|
3
|
+
import json
|
|
4
|
+
import logging
|
|
5
|
+
from time import sleep, time
|
|
6
|
+
from typing import Dict, List, Tuple, cast
|
|
7
|
+
|
|
2
8
|
import luminarycloud._proto.api.v0.luminarycloud.common.common_pb2 as common_pb2
|
|
9
|
+
import requests
|
|
10
|
+
from luminarycloud.params.simulation.physics.fluid.boundary_conditions import Farfield
|
|
11
|
+
from luminarycloud.types import Vector3, Vector3Like
|
|
12
|
+
|
|
3
13
|
from .._client import get_default_client
|
|
4
|
-
from ..
|
|
5
|
-
from ..
|
|
6
|
-
from ..geometry import Geometry, get_geometry, Tag
|
|
14
|
+
from .._helpers._get_project_id import _get_project_id
|
|
15
|
+
from .._proto.api.v0.luminarycloud.vis import vis_pb2
|
|
7
16
|
from ..enum.vis_enums import *
|
|
8
|
-
from ..
|
|
17
|
+
from ..exceptions import NotFoundError
|
|
18
|
+
from ..geometry import Geometry, get_geometry
|
|
19
|
+
from ..mesh import Mesh, get_mesh, get_mesh_metadata
|
|
9
20
|
from ..simulation import get_simulation
|
|
10
|
-
from
|
|
11
|
-
from .filters import Filter, PlaneClip, Slice, BoxClip, SurfaceStreamlines
|
|
12
|
-
from luminarycloud.types import Vector3, Vector3Like
|
|
21
|
+
from ..solution import Solution
|
|
13
22
|
from ..types.vector3 import _to_vector3
|
|
14
|
-
from
|
|
15
|
-
from
|
|
23
|
+
from .display import ColorMap, ColorMapAppearance, DisplayAttributes, Field
|
|
24
|
+
from .filters import BoxClip, Filter, PlaneClip, Slice, SurfaceStreamlines, SurfaceLIC
|
|
16
25
|
from .interactive_scene import InteractiveScene
|
|
17
|
-
import io
|
|
18
|
-
import json
|
|
19
|
-
from luminarycloud._proto.client import simulation_pb2 as clientpb
|
|
20
|
-
from typing import List, Tuple, cast, Union, Dict
|
|
21
|
-
import requests
|
|
22
|
-
from time import time, sleep
|
|
23
|
-
import logging
|
|
24
|
-
import dataclasses as dc
|
|
25
26
|
|
|
26
27
|
logger = logging.getLogger(__name__)
|
|
27
28
|
|
|
@@ -87,6 +88,20 @@ class LookAtCamera:
|
|
|
87
88
|
""" The width of the output image in pixels. Default: 1024 """
|
|
88
89
|
height: int = 1024
|
|
89
90
|
""" The height of the output image in pixels. Default: 1024 """
|
|
91
|
+
pan_x: float = 0
|
|
92
|
+
"""
|
|
93
|
+
Pan the camera in the x direction (right). This is a world space value defined in
|
|
94
|
+
the camera coordinate system. Pan is not typically directly set by the user,
|
|
95
|
+
but pan is useful for reproducing camera parameters from an interactive
|
|
96
|
+
scene where pan is used (i.e., control + middle mouse).
|
|
97
|
+
"""
|
|
98
|
+
pan_y: float = 0
|
|
99
|
+
"""
|
|
100
|
+
Pan the camera in the y direction (up). This is a world space value defined in
|
|
101
|
+
the camera coordinate system. Pan is not typically directly set by the user,
|
|
102
|
+
but pan is useful for reproducing camera parameters from an interactive
|
|
103
|
+
scene where pan is used (i.e., control + middle mouse).
|
|
104
|
+
"""
|
|
90
105
|
|
|
91
106
|
|
|
92
107
|
class _InternalToken:
|
|
@@ -414,8 +429,8 @@ class Scene:
|
|
|
414
429
|
params = simulation.get_parameters()
|
|
415
430
|
for physics in params.physics:
|
|
416
431
|
if physics.fluid:
|
|
417
|
-
for bc in physics.fluid.
|
|
418
|
-
if bc
|
|
432
|
+
for bc in physics.fluid.boundary_conditions:
|
|
433
|
+
if isinstance(bc, Farfield):
|
|
419
434
|
for bc_surface in bc.surfaces:
|
|
420
435
|
self._far_field_boundary_ids.append(bc_surface)
|
|
421
436
|
|
|
@@ -547,6 +562,8 @@ class Scene:
|
|
|
547
562
|
out_camera.look_at.position.CopyFrom(_to_vector3(lookat.position)._to_proto())
|
|
548
563
|
out_camera.look_at.up.CopyFrom(_to_vector3(lookat.up)._to_proto())
|
|
549
564
|
out_camera.look_at.look_at.CopyFrom(_to_vector3(lookat.look_at)._to_proto())
|
|
565
|
+
out_camera.look_at.pan.x = lookat.pan_x
|
|
566
|
+
out_camera.look_at.pan.y = lookat.pan_y
|
|
550
567
|
elif isinstance(camera, DirectionalCamera):
|
|
551
568
|
out_camera.direction = camera.direction.value
|
|
552
569
|
if camera.zoom_in <= 0 or camera.zoom_in > 1:
|
|
@@ -589,6 +606,12 @@ class Scene:
|
|
|
589
606
|
bad_ids = self._validate_surfaces_and_tags(streamlines._surface_names)
|
|
590
607
|
if len(bad_ids) != 0:
|
|
591
608
|
raise ValueError(f"SurfaceStreamlines has invalid surfaces: {bad_ids}")
|
|
609
|
+
if isinstance(filter, SurfaceLIC):
|
|
610
|
+
# Validate surfaces names
|
|
611
|
+
lic = cast(SurfaceLIC, filter)
|
|
612
|
+
bad_ids = self._validate_surfaces_and_tags(lic._surface_names)
|
|
613
|
+
if len(bad_ids) != 0:
|
|
614
|
+
raise ValueError(f"SurfaceLIC has invalid surfaces: {bad_ids}")
|
|
592
615
|
|
|
593
616
|
if isinstance(filter, Filter):
|
|
594
617
|
vis_filter: vis_pb2.Filter = filter._to_proto()
|
|
@@ -633,6 +656,7 @@ class Scene:
|
|
|
633
656
|
# processing them above
|
|
634
657
|
cmap.appearance = ColorMapAppearance()
|
|
635
658
|
auto_cmaps.append(cmap)
|
|
659
|
+
|
|
636
660
|
if len(auto_cmaps) != 0:
|
|
637
661
|
# These are all default contructed, so they all have the same dimentions.
|
|
638
662
|
# All the coordinates are in normalized device space.
|
|
@@ -209,7 +209,7 @@ class VolumeSelection:
|
|
|
209
209
|
|
|
210
210
|
def subtract(
|
|
211
211
|
self,
|
|
212
|
-
tool_volumes:
|
|
212
|
+
tool_volumes: Iterable[Volume],
|
|
213
213
|
*,
|
|
214
214
|
propagate_tags: bool = False,
|
|
215
215
|
feature_name: str = "Subtract",
|
|
@@ -221,7 +221,7 @@ class VolumeSelection:
|
|
|
221
221
|
|
|
222
222
|
Parameters
|
|
223
223
|
----------
|
|
224
|
-
tool_volumes :
|
|
224
|
+
tool_volumes : Iterable[Volume]
|
|
225
225
|
The volumes to subtract from the selected volumes.
|
|
226
226
|
propagate_tags : bool
|
|
227
227
|
Whether to propagate the tool volume tags to the surfaces created by the subtraction.
|
|
@@ -265,7 +265,7 @@ class VolumeSelection:
|
|
|
265
265
|
|
|
266
266
|
def chop(
|
|
267
267
|
self,
|
|
268
|
-
tool_volumes:
|
|
268
|
+
tool_volumes: Iterable[Volume],
|
|
269
269
|
*,
|
|
270
270
|
propagate_tags: bool = False,
|
|
271
271
|
feature_name: str = "Chop",
|
|
@@ -278,7 +278,7 @@ class VolumeSelection:
|
|
|
278
278
|
|
|
279
279
|
Parameters
|
|
280
280
|
----------
|
|
281
|
-
tool_volumes :
|
|
281
|
+
tool_volumes : Iterable[Volume]
|
|
282
282
|
The volumes to chop the selected volumes with.
|
|
283
283
|
propagate_tags : bool
|
|
284
284
|
Whether to propagate the tool volume tags to the surfaces created by the chop.
|
|
@@ -460,7 +460,7 @@ class VolumeSelection:
|
|
|
460
460
|
self,
|
|
461
461
|
resolution_min: Optional[float] = None,
|
|
462
462
|
resolution_max: Optional[float] = None,
|
|
463
|
-
tool: Optional[
|
|
463
|
+
tool: Optional[Iterable[Volume]] = None,
|
|
464
464
|
*,
|
|
465
465
|
feature_name: str = "Shrinkwrap",
|
|
466
466
|
) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: luminarycloud
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.0
|
|
4
4
|
Summary: Luminary Cloud SDK
|
|
5
5
|
Project-URL: Homepage, https://www.luminarycloud.com/
|
|
6
6
|
Project-URL: Documentation, https://app.luminarycloud.com/docs/api/
|
|
@@ -45,6 +45,6 @@ and functionality may change significantly).
|
|
|
45
45
|
import luminarycloud as lc
|
|
46
46
|
project = lc.create_project("NACA 0012", "My first SDK project.")
|
|
47
47
|
mesh = project.upload_mesh("./airfoil.lcmesh")
|
|
48
|
-
sim_template = project.create_simulation_template("test template", "./simulation_template.json")
|
|
48
|
+
sim_template = project.create_simulation_template("test template", params_json_path="./simulation_template.json")
|
|
49
49
|
sim = project.create_simulation(mesh.id, "My simulation", sim_template.id)
|
|
50
50
|
```
|