luminarycloud 0.15.2__py3-none-any.whl → 0.15.4__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 +1 -0
- luminarycloud/_helpers/_code_representation.py +44 -19
- luminarycloud/_helpers/_create_simulation.py +2 -0
- luminarycloud/_helpers/_entity_identifier.py +6 -0
- luminarycloud/_helpers/named_variables.py +6 -15
- luminarycloud/_helpers/warnings/experimental.py +6 -2
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +103 -81
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +37 -1
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +33 -0
- luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +10 -0
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +45 -15
- luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +104 -22
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +46 -46
- luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +7 -1
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +12 -12
- luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +10 -2
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +221 -143
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +154 -7
- 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/assistant/assistant_pb2.py +92 -71
- luminarycloud/_proto/assistant/assistant_pb2.pyi +58 -11
- luminarycloud/_proto/assistant/assistant_pb2_grpc.py +47 -13
- luminarycloud/_proto/assistant/assistant_pb2_grpc.pyi +18 -6
- luminarycloud/_proto/client/simulation_pb2.py +373 -324
- luminarycloud/_proto/client/simulation_pb2.pyi +123 -3
- luminarycloud/_proto/fvm/solver_results_pb2.py +25 -11
- luminarycloud/_proto/fvm/solver_results_pb2.pyi +24 -1
- luminarycloud/_proto/geometry/geometry_pb2.py +64 -63
- luminarycloud/_proto/geometry/geometry_pb2.pyi +11 -3
- luminarycloud/_proto/hexmesh/hexmesh_pb2.py +18 -14
- luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +14 -4
- luminarycloud/_proto/named_variable_set/named_variable_set_pb2.py +49 -0
- luminarycloud/_proto/named_variable_set/named_variable_set_pb2.pyi +53 -0
- luminarycloud/_proto/namedvariableset/namedvariableset_pb2.py +49 -0
- luminarycloud/_proto/namedvariableset/namedvariableset_pb2.pyi +53 -0
- luminarycloud/_proto/quantity/quantity_pb2.py +8 -5
- luminarycloud/_proto/quantity/quantity_pb2.pyi +2 -0
- luminarycloud/_wrapper.py +26 -7
- luminarycloud/enum/__init__.py +5 -0
- luminarycloud/enum/physics_ai_lifecycle_state.py +30 -0
- luminarycloud/enum/quantity_type.py +43 -0
- luminarycloud/enum/vis_enums.py +6 -2
- luminarycloud/geometry.py +46 -2
- luminarycloud/meshing/mesh_generation_params.py +6 -5
- luminarycloud/meshing/sizing_strategy/sizing_strategies.py +2 -1
- luminarycloud/named_variable_set.py +13 -6
- luminarycloud/params/enum/_enum_wrappers.py +68 -0
- luminarycloud/params/simulation/_lib.py +1 -1
- luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +5 -6
- luminarycloud/params/simulation/adaptive_mesh_refinement_.py +6 -7
- luminarycloud/params/simulation/adjoint_.py +3 -4
- luminarycloud/params/simulation/basic/gravity/gravity_off_.py +3 -4
- luminarycloud/params/simulation/basic/gravity/gravity_on_.py +3 -4
- luminarycloud/params/simulation/basic/gravity_.py +3 -4
- luminarycloud/params/simulation/body_frame_.py +3 -4
- luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +9 -6
- luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +9 -6
- luminarycloud/params/simulation/entity_relationships_.py +3 -4
- luminarycloud/params/simulation/general_.py +3 -4
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +3 -4
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +5 -6
- luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +3 -4
- luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +5 -6
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +4 -5
- luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +5 -6
- luminarycloud/params/simulation/material/fluid/material_model_.py +3 -4
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +4 -5
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +4 -5
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +3 -4
- luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +3 -4
- luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +4 -5
- luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +6 -7
- luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +3 -4
- luminarycloud/params/simulation/material/fluid/viscosity_model_.py +3 -4
- luminarycloud/params/simulation/material/material_fluid_.py +4 -5
- luminarycloud/params/simulation/material/material_solid_.py +6 -7
- luminarycloud/params/simulation/material_entity_.py +6 -5
- luminarycloud/params/simulation/monitor_plane_.py +4 -5
- luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +3 -4
- luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +3 -4
- luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +3 -4
- luminarycloud/params/simulation/motion_data/frame_transforms_.py +3 -4
- luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +3 -4
- luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +3 -4
- luminarycloud/params/simulation/motion_data/motion_type_.py +3 -4
- luminarycloud/params/simulation/motion_data_.py +3 -4
- luminarycloud/params/simulation/multi_physics_coupling_options_.py +3 -4
- luminarycloud/params/simulation/output_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +5 -6
- luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +3 -4
- luminarycloud/params/simulation/particle_group/particle_group_type_.py +3 -4
- luminarycloud/params/simulation/particle_group_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +9 -10
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +7 -8
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +9 -10
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +9 -10
- luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +6 -7
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +8 -9
- luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +5 -6
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +8 -9
- luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +16 -17
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +15 -16
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +4 -5
- luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +3 -4
- luminarycloud/params/simulation/physics/fluid/turbulence_.py +5 -6
- luminarycloud/params/simulation/physics/fluid_.py +7 -6
- luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +3 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +5 -6
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +4 -5
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +4 -5
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +3 -4
- luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +4 -5
- luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +3 -4
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +4 -5
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +4 -5
- luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +3 -4
- luminarycloud/params/simulation/physics/heat/heat_source_.py +3 -4
- luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +3 -4
- luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +4 -5
- luminarycloud/params/simulation/physics/heat/initialization_heat_.py +3 -4
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +3 -4
- luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +3 -4
- luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +3 -4
- luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +5 -6
- luminarycloud/params/simulation/physics/heat_.py +5 -5
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/rotational_periodicity_.py +3 -4
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type/translational_periodicity_.py +3 -4
- luminarycloud/params/simulation/physics/periodic_pair/periodicity_type_.py +3 -4
- luminarycloud/params/simulation/physics/periodic_pair_.py +3 -4
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +3 -4
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +4 -5
- luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +4 -5
- luminarycloud/params/simulation/physics_.py +6 -5
- luminarycloud/params/simulation/simulation_param_.py +3 -4
- luminarycloud/params/simulation/sliding_interfaces_.py +3 -4
- luminarycloud/params/simulation/surface_name_.py +3 -4
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +3 -4
- luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +3 -4
- luminarycloud/params/simulation/time/compute_statistics_.py +3 -4
- luminarycloud/params/simulation/time/time_marching/time_explicit_.py +3 -4
- luminarycloud/params/simulation/time/time_marching/time_implicit_.py +3 -4
- luminarycloud/params/simulation/time/time_marching_.py +3 -4
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +3 -4
- luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +4 -5
- luminarycloud/params/simulation/time/time_step_ramp_.py +3 -4
- luminarycloud/params/simulation/time_.py +4 -5
- luminarycloud/params/simulation/volume_entity_.py +6 -5
- luminarycloud/physics_ai/__init__.py +2 -0
- luminarycloud/physics_ai/architectures.py +42 -8
- luminarycloud/physics_ai/inference.py +0 -2
- luminarycloud/physics_ai/models.py +44 -15
- luminarycloud/pipeline_util/dictable.py +27 -0
- luminarycloud/pipeline_util/yaml.py +55 -0
- luminarycloud/pipelines/__init__.py +29 -0
- luminarycloud/pipelines/core.py +225 -0
- luminarycloud/pipelines/operators.py +197 -0
- luminarycloud/pipelines/parameters.py +42 -0
- luminarycloud/project.py +60 -9
- luminarycloud/simulation.py +35 -4
- luminarycloud/simulation_param.py +16 -12
- luminarycloud/simulation_template.py +31 -12
- luminarycloud/solution.py +1 -1
- luminarycloud/types/__init__.py +2 -0
- luminarycloud/types/adfloat.py +50 -8
- luminarycloud/types/ids.py +2 -0
- luminarycloud/types/vector3.py +2 -1
- luminarycloud/vis/__init__.py +12 -5
- luminarycloud/vis/data_extraction.py +546 -0
- luminarycloud/vis/display.py +64 -8
- luminarycloud/vis/filters.py +183 -43
- luminarycloud/vis/interactive_scene.py +2 -1
- luminarycloud/vis/primitives.py +38 -0
- luminarycloud/vis/vis_util.py +56 -0
- luminarycloud/vis/visualization.py +241 -71
- {luminarycloud-0.15.2.dist-info → luminarycloud-0.15.4.dist-info}/METADATA +3 -1
- {luminarycloud-0.15.2.dist-info → luminarycloud-0.15.4.dist-info}/RECORD +255 -240
- {luminarycloud-0.15.2.dist-info → luminarycloud-0.15.4.dist-info}/WHEEL +0 -0
|
@@ -308,37 +308,41 @@ class SimulationParam(_SimulationParam):
|
|
|
308
308
|
def __repr__(self) -> str:
|
|
309
309
|
return pformat(vars(self), compact=True, sort_dicts=True)
|
|
310
310
|
|
|
311
|
-
def to_code(self, hide_defaults: bool = True) -> str:
|
|
311
|
+
def to_code(self, hide_defaults: bool = True, use_tmp_objs: bool = True) -> str:
|
|
312
312
|
"""
|
|
313
313
|
Returns the python code that generates an identical SimulationParam object.
|
|
314
|
-
This is
|
|
314
|
+
This is an automatic representation that does not make use of helper functions like
|
|
315
315
|
assign_material and assign_physics.
|
|
316
316
|
Parameters with default values are omitted by default, with hide_defaults=False, code will
|
|
317
317
|
also be generated for those parameters.
|
|
318
|
+
By default the idiom used to populate lists and maps is to create a temporary object and
|
|
319
|
+
then append or insert, respectively. The alternative, using [] to access items, is used if
|
|
320
|
+
use_tmp_objs=False.
|
|
318
321
|
"""
|
|
319
|
-
code = """## NOTE: This is
|
|
320
|
-
## code that creates an identical object.
|
|
321
|
-
##
|
|
322
|
+
code = """## NOTE: This is an automatic representation of a SimulationParam object as the
|
|
323
|
+
## code that creates (from scratch) an identical object. As such, some parts do
|
|
324
|
+
## not match 1 to 1 with hand-written examples.
|
|
322
325
|
import luminarycloud
|
|
323
|
-
from luminarycloud import *
|
|
324
326
|
from luminarycloud.types import Vector3
|
|
327
|
+
from luminarycloud.tables import RectilinearTable
|
|
325
328
|
from luminarycloud.enum import *
|
|
326
329
|
from luminarycloud.params.enum import *
|
|
327
|
-
from luminarycloud.params import simulation as
|
|
330
|
+
from luminarycloud.params import simulation as sim_params
|
|
331
|
+
from luminarycloud import outputs, SimulationParam, EntityIdentifier
|
|
328
332
|
|
|
329
333
|
|
|
330
334
|
"""
|
|
331
|
-
return code + self._to_code_helper("obj", hide_defaults).replace(
|
|
335
|
+
return code + self._to_code_helper("obj", hide_defaults, use_tmp_objs).replace(
|
|
332
336
|
"luminarycloud.simulation_param.SimulationParam()", "SimulationParam()", 1
|
|
333
337
|
)
|
|
334
338
|
|
|
335
339
|
def find_parameter(self, parameter: str) -> None:
|
|
336
340
|
"""
|
|
337
|
-
Searches the full output of "to_code()" for occurrences of "parameter" and prints
|
|
338
|
-
with matches. This is a helper function to assist users in finding, for example,
|
|
339
|
-
change farfield conditions, material properties, etc.
|
|
341
|
+
Searches the full output of "to_code(False, False)" for occurrences of "parameter" and prints
|
|
342
|
+
the lines with matches. This is a helper function to assist users in finding, for example,
|
|
343
|
+
how to change farfield conditions, material properties, etc.
|
|
340
344
|
"""
|
|
341
|
-
for i, line in enumerate(self.to_code(False).split("\n")):
|
|
345
|
+
for i, line in enumerate(self.to_code(False, False).split("\n")):
|
|
342
346
|
if parameter.lower() in line.lower():
|
|
343
347
|
print(f"line {i}: {line}")
|
|
344
348
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from os import PathLike
|
|
4
4
|
from copy import deepcopy
|
|
5
|
-
from typing import Optional,
|
|
5
|
+
from typing import Optional, overload
|
|
6
6
|
from difflib import Differ
|
|
7
7
|
|
|
8
8
|
from .enum import (
|
|
@@ -76,6 +76,7 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
76
76
|
*,
|
|
77
77
|
name: Optional[str] = None,
|
|
78
78
|
parameters: Optional[SimulationParam | PathLike] = None,
|
|
79
|
+
copy_from: "Optional[SimulationTemplate | SimulationTemplateID | str]" = None,
|
|
79
80
|
) -> None:
|
|
80
81
|
"""
|
|
81
82
|
Update simulation template.
|
|
@@ -84,19 +85,23 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
84
85
|
----------
|
|
85
86
|
name : str, optional
|
|
86
87
|
New project name.
|
|
87
|
-
parameters : SimulationParam or PathLike
|
|
88
|
+
parameters : SimulationParam or PathLike, optional
|
|
88
89
|
New complete simulation parameters object or path to local JSON file containing
|
|
89
90
|
simulation parameters. In the former case, the input argument is modified to reflect
|
|
90
91
|
changes applied by the backend (server), for example due to presets. Any differences
|
|
91
92
|
between input and result are printed on screen.
|
|
93
|
+
copy_from : SimulationTemplate or SimulationTemplateID or str, optional
|
|
94
|
+
Simulation template to copy. If provided, it will be deep-copied into this simulation
|
|
95
|
+
template. Can pass a SimulationTemplate object or an ID of the template to copy.
|
|
92
96
|
"""
|
|
93
|
-
return self._update(name=name, parameters=parameters)
|
|
97
|
+
return self._update(name=name, parameters=parameters, copy_from=copy_from)
|
|
94
98
|
|
|
95
99
|
def _update(
|
|
96
100
|
self,
|
|
97
101
|
*,
|
|
98
102
|
name: Optional[str] = None,
|
|
99
103
|
parameters: Optional[SimulationParam | clientpb.SimulationParam | PathLike] = None,
|
|
104
|
+
copy_from: "Optional[SimulationTemplate | SimulationTemplateID | str]" = None,
|
|
100
105
|
) -> None:
|
|
101
106
|
"""
|
|
102
107
|
Update simulation template. See `update()` for more details.
|
|
@@ -124,21 +129,31 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
124
129
|
|
|
125
130
|
req.parameters.CopyFrom(param_proto)
|
|
126
131
|
|
|
132
|
+
if copy_from is not None:
|
|
133
|
+
if isinstance(copy_from, SimulationTemplate):
|
|
134
|
+
req.copy_from = copy_from.id
|
|
135
|
+
elif isinstance(copy_from, str):
|
|
136
|
+
req.copy_from = copy_from
|
|
137
|
+
else:
|
|
138
|
+
raise ValueError(f"Invalid copy_from argument: {copy_from}")
|
|
139
|
+
|
|
127
140
|
res: simtemplatepb.UpdateSimulationTemplateResponse = (
|
|
128
141
|
get_default_client().UpdateSimulationTemplate(req)
|
|
129
142
|
)
|
|
130
143
|
self._proto = res.simulation_template
|
|
131
144
|
|
|
132
145
|
def print_diff(
|
|
133
|
-
old:
|
|
134
|
-
new:
|
|
146
|
+
old: clientpb.SimulationParam | SimulationParam,
|
|
147
|
+
new: clientpb.SimulationParam | SimulationParam,
|
|
135
148
|
) -> None:
|
|
136
149
|
diffs = list(Differ().compare(str(old).split("\n"), str(new).split("\n")))
|
|
137
150
|
has_diffs = False
|
|
138
151
|
for diff in diffs:
|
|
139
152
|
if diff.startswith("-") or diff.startswith("+"):
|
|
140
153
|
if not has_diffs:
|
|
141
|
-
print(
|
|
154
|
+
print(
|
|
155
|
+
"The given parameters have been modified, both in memory and server-side, due to presets. The modifications:\n"
|
|
156
|
+
)
|
|
142
157
|
has_diffs = True
|
|
143
158
|
print(diff)
|
|
144
159
|
|
|
@@ -159,7 +174,10 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
159
174
|
get_default_client().DeleteSimulationTemplate(req)
|
|
160
175
|
|
|
161
176
|
def get_parameters(self) -> SimulationParam:
|
|
162
|
-
|
|
177
|
+
"""
|
|
178
|
+
Returns a copy of the simulation parameters associated with this template.
|
|
179
|
+
"""
|
|
180
|
+
return SimulationParam.from_proto(self._proto.parameters)
|
|
163
181
|
|
|
164
182
|
@deprecated(
|
|
165
183
|
"Use get_parameters() instead. This method will be removed in a future release.",
|
|
@@ -168,7 +186,7 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
168
186
|
"""
|
|
169
187
|
Returns a copy of the simulation parameters associated with this template.
|
|
170
188
|
"""
|
|
171
|
-
return
|
|
189
|
+
return self.get_parameters()
|
|
172
190
|
|
|
173
191
|
def list_tables(
|
|
174
192
|
self,
|
|
@@ -460,20 +478,21 @@ class SimulationTemplate(ProtoWrapperBase):
|
|
|
460
478
|
|
|
461
479
|
def to_code(self, hide_defaults: bool = True) -> str:
|
|
462
480
|
"""
|
|
463
|
-
Returns the python code that generates an identical SimulationTemplate object.
|
|
481
|
+
Returns the python code that generates (from scratch) an identical SimulationTemplate object.
|
|
464
482
|
By default parameters with default values are omitted, this change be changed with
|
|
465
483
|
hide_defaults=False.
|
|
466
484
|
"""
|
|
467
|
-
param_code = self.
|
|
485
|
+
param_code = self.get_parameters().to_code(hide_defaults)
|
|
468
486
|
code, param_code = param_code.split("\n\n\n")
|
|
469
487
|
|
|
470
488
|
# Modify the header note included by SimulationParam.to_code.
|
|
471
489
|
code = code.replace("SimulationParam", "SimulationTemplate")
|
|
472
490
|
code += "\n\n\n"
|
|
473
|
-
code += '# Create a new simulation template or modify the "Setup"
|
|
491
|
+
code += '# Create a new simulation template or modify the one that is synced with the UI "Setup" tab.\n'
|
|
492
|
+
code += "# TODO(USER): Replace ... with project ID, or create a project.\n"
|
|
474
493
|
code += 'project = get_project("...")\n'
|
|
475
494
|
code += f"# template = project.create_simulation_template(name={self.name})\n"
|
|
476
|
-
code += "template = project.list_simulation_templates()[0]\n\n"
|
|
495
|
+
code += "template = project.list_simulation_templates()[0] # Setup template\n\n"
|
|
477
496
|
|
|
478
497
|
code += "# Define the simulation parameters.\n"
|
|
479
498
|
code += param_code
|
luminarycloud/solution.py
CHANGED
|
@@ -38,7 +38,7 @@ class Solution(ProtoWrapperBase):
|
|
|
38
38
|
"Solution ID."
|
|
39
39
|
simulation_id: SimulationID
|
|
40
40
|
"Simulation ID of parent"
|
|
41
|
-
iteration:
|
|
41
|
+
iteration: int
|
|
42
42
|
"Iteration index of the solution."
|
|
43
43
|
physical_time: float
|
|
44
44
|
"The physical time, in seconds, of the solution iteration (for transient simulations)."
|
luminarycloud/types/__init__.py
CHANGED
luminarycloud/types/adfloat.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
|
-
from typing import Any
|
|
3
|
-
from .._proto.base.base_pb2 import AdFloatType, FirstOrderAdType, SecondOrderAdType
|
|
2
|
+
from typing import Any, Union
|
|
3
|
+
from .._proto.base.base_pb2 import AdFloatType, ExpressionType, FirstOrderAdType, SecondOrderAdType
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class AdFloat(float, metaclass=ABCMeta):
|
|
7
|
-
"""An immutable float with adjoints/tangents"""
|
|
7
|
+
"""An immutable float with adjoints/tangents or an expression"""
|
|
8
8
|
|
|
9
9
|
pass
|
|
10
10
|
|
|
@@ -110,8 +110,47 @@ class SecondOrderAdFloat(AdFloat):
|
|
|
110
110
|
)
|
|
111
111
|
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
"""
|
|
113
|
+
class Expression:
|
|
114
|
+
"""An expression or value that can be evaluated or used in evaluations."""
|
|
115
|
+
|
|
116
|
+
_value: float
|
|
117
|
+
_expression: str
|
|
118
|
+
|
|
119
|
+
def __init__(self, expression: str):
|
|
120
|
+
if not expression:
|
|
121
|
+
raise ValueError("Expression cannot be empty")
|
|
122
|
+
self._value = 0.0
|
|
123
|
+
self._expression = expression
|
|
124
|
+
|
|
125
|
+
@property
|
|
126
|
+
def expression(self) -> str:
|
|
127
|
+
return self._expression
|
|
128
|
+
|
|
129
|
+
@property
|
|
130
|
+
def value(self) -> float:
|
|
131
|
+
return self._value
|
|
132
|
+
|
|
133
|
+
def _to_proto(self) -> AdFloatType:
|
|
134
|
+
return AdFloatType(variable=ExpressionType(value=self.value, expression=self.expression))
|
|
135
|
+
|
|
136
|
+
@staticmethod
|
|
137
|
+
def _from_proto(proto: AdFloatType) -> "Expression":
|
|
138
|
+
expr = object.__new__(Expression) # Create a new instance without calling __init__
|
|
139
|
+
expr._value = proto.variable.value
|
|
140
|
+
expr._expression = proto.variable.expression
|
|
141
|
+
return expr
|
|
142
|
+
|
|
143
|
+
def __eq__(self, other: Any) -> bool:
|
|
144
|
+
if not isinstance(other, Expression):
|
|
145
|
+
return False
|
|
146
|
+
return self._value == other._value and self._expression == other._expression
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
LcFloat = Union[float, FirstOrderAdFloat, SecondOrderAdFloat, Expression]
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def _to_ad_proto(value: LcFloat) -> AdFloatType:
|
|
153
|
+
"""Convert an LcFloat to an AdFloatType proto."""
|
|
115
154
|
if isinstance(value, FirstOrderAdFloat):
|
|
116
155
|
return AdFloatType(
|
|
117
156
|
first_order=FirstOrderAdType(
|
|
@@ -128,18 +167,21 @@ def _to_ad_proto(value: float) -> AdFloatType:
|
|
|
128
167
|
adjoint=[_to_ad_proto(a).first_order for a in value.adjoint],
|
|
129
168
|
)
|
|
130
169
|
)
|
|
170
|
+
elif isinstance(value, Expression):
|
|
171
|
+
return value._to_proto()
|
|
131
172
|
return AdFloatType(value=float(value))
|
|
132
173
|
|
|
133
174
|
|
|
134
|
-
def _from_ad_proto(proto: AdFloatType) ->
|
|
135
|
-
"""Convert an AdFloatType proto to
|
|
175
|
+
def _from_ad_proto(proto: AdFloatType) -> LcFloat:
|
|
176
|
+
"""Convert an AdFloatType proto to an LcFloat."""
|
|
136
177
|
if proto.HasField("first_order"):
|
|
137
178
|
return FirstOrderAdFloat._from_proto(proto.first_order)
|
|
138
179
|
elif proto.HasField("second_order"):
|
|
139
180
|
return SecondOrderAdFloat._from_proto(proto.second_order)
|
|
140
181
|
elif proto.HasField("value"):
|
|
141
182
|
return float(proto.value)
|
|
142
|
-
|
|
183
|
+
elif proto.HasField("variable"):
|
|
184
|
+
return Expression._from_proto(proto)
|
|
143
185
|
# An empty proto evaluates to 0.0
|
|
144
186
|
if not proto.ListFields():
|
|
145
187
|
return 0.0
|
luminarycloud/types/ids.py
CHANGED
|
@@ -10,4 +10,6 @@ SimulationTemplateID = NewType("SimulationTemplateID", str)
|
|
|
10
10
|
GeometryFeatureID = NewType("GeometryFeatureID", str)
|
|
11
11
|
NamedVariableSetID = NewType("NamedVariableSetID", str)
|
|
12
12
|
PhysicsAiArchitectureID = NewType("PhysicsAiArchitectureID", str)
|
|
13
|
+
PhysicsAiArchitectureVersionID = NewType("PhysicsAiArchitectureVersionID", str)
|
|
13
14
|
PhysicsAiModelID = NewType("PhysicsAiModelID", str)
|
|
15
|
+
PhysicsAiModelVersionID = NewType("PhysicsAiModelVersionID", str)
|
luminarycloud/types/vector3.py
CHANGED
|
@@ -8,10 +8,11 @@ from .adfloat import (
|
|
|
8
8
|
_to_ad_proto as _float_to_ad_proto,
|
|
9
9
|
_from_ad_proto as _float_from_ad_proto,
|
|
10
10
|
)
|
|
11
|
+
from ..pipeline_util.dictable import PipelineDictable
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
@dataclass
|
|
14
|
-
class Vector3:
|
|
15
|
+
class Vector3(PipelineDictable):
|
|
15
16
|
"""Represents a 3-dimensional vector.
|
|
16
17
|
|
|
17
18
|
Supports direct component access, indexing, iteration, and conversion to numpy arrays.
|
luminarycloud/vis/__init__.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from .visualization import (
|
|
2
2
|
RenderOutput as RenderOutput,
|
|
3
3
|
Scene as Scene,
|
|
4
|
-
ColorMapPreset as ColorMapPreset,
|
|
5
4
|
EntityType as EntityType,
|
|
6
5
|
list_renders as list_renders,
|
|
7
6
|
list_quantities as list_quantities,
|
|
@@ -9,12 +8,15 @@ from .visualization import (
|
|
|
9
8
|
LookAtCamera as LookAtCamera,
|
|
10
9
|
)
|
|
11
10
|
|
|
11
|
+
from .primitives import (
|
|
12
|
+
Plane as Plane,
|
|
13
|
+
Box as Box,
|
|
14
|
+
)
|
|
15
|
+
|
|
12
16
|
from .filters import (
|
|
13
17
|
Slice as Slice,
|
|
14
18
|
PlaneClip as PlaneClip,
|
|
15
19
|
BoxClip as BoxClip,
|
|
16
|
-
Plane as Plane,
|
|
17
|
-
Box as Box,
|
|
18
20
|
FixedSizeVectorGlyphs as FixedSizeVectorGlyphs,
|
|
19
21
|
ScaledVectorGlyphs as ScaledVectorGlyphs,
|
|
20
22
|
RakeStreamlines as RakeStreamlines,
|
|
@@ -24,13 +26,18 @@ from .filters import (
|
|
|
24
26
|
Isosurface as Isosurface,
|
|
25
27
|
)
|
|
26
28
|
|
|
29
|
+
from .data_extraction import (
|
|
30
|
+
IntersectionCurve as IntersectionCurve,
|
|
31
|
+
DataExtractor as DataExtractor,
|
|
32
|
+
ExtractOutput as ExtractOutput,
|
|
33
|
+
list_data_extracts as list_data_extracts,
|
|
34
|
+
)
|
|
35
|
+
|
|
27
36
|
from .display import (
|
|
28
37
|
Field as Field,
|
|
29
38
|
DataRange as DataRange,
|
|
30
39
|
ColorMap as ColorMap,
|
|
31
40
|
ColorMapAppearance as ColorMapAppearance,
|
|
32
|
-
Representation as Representation,
|
|
33
|
-
FieldComponent as FieldComponent,
|
|
34
41
|
DisplayAttributes as DisplayAttributes,
|
|
35
42
|
)
|
|
36
43
|
|