luminarycloud 0.16.0__py3-none-any.whl → 0.16.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- luminarycloud/_client/client.py +5 -0
- luminarycloud/_helpers/_code_representation.py +5 -3
- luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +7 -7
- luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +4 -4
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +128 -107
- luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +48 -3
- luminarycloud/_proto/client/simulation_pb2.py +348 -350
- luminarycloud/_proto/client/simulation_pb2.pyi +95 -95
- luminarycloud/_proto/geometry/geometry_pb2.py +68 -68
- luminarycloud/_proto/geometry/geometry_pb2.pyi +10 -6
- luminarycloud/_proto/hexmesh/hexmesh_pb2.py +40 -15
- luminarycloud/_proto/hexmesh/hexmesh_pb2.pyi +58 -1
- luminarycloud/_proto/lcstatus/codes_pb2.py +3 -2
- luminarycloud/_proto/lcstatus/codes_pb2.pyi +4 -0
- luminarycloud/enum/quantity_type.py +4 -0
- luminarycloud/enum/tables.py +1 -0
- luminarycloud/enum/vis_enums.py +20 -0
- luminarycloud/feature_modification.py +6 -7
- luminarycloud/geometry.py +24 -0
- luminarycloud/geometry_version.py +23 -0
- luminarycloud/params/simulation/adjoint_.py +4 -4
- luminarycloud/params/simulation/material/material_fluid_.py +1 -1
- luminarycloud/params/simulation/material/material_solid_.py +1 -1
- luminarycloud/params/simulation/output_.py +1 -1
- luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +28 -0
- luminarycloud/params/simulation/simulation_param_.py +6 -0
- luminarycloud/project.py +9 -7
- luminarycloud/simulation_param.py +29 -15
- luminarycloud/simulation_template.py +14 -10
- luminarycloud/tables.py +5 -4
- luminarycloud/thirdparty/__init__.py +12 -0
- luminarycloud/thirdparty/onshape.py +170 -0
- luminarycloud/vis/__init__.py +2 -0
- luminarycloud/vis/data_extraction.py +40 -1
- luminarycloud/vis/filters.py +128 -2
- luminarycloud/vis/visualization.py +1 -1
- luminarycloud/volume_selection.py +2 -2
- {luminarycloud-0.16.0.dist-info → luminarycloud-0.16.1.dist-info}/METADATA +6 -6
- {luminarycloud-0.16.0.dist-info → luminarycloud-0.16.1.dist-info}/RECORD +40 -38
- {luminarycloud-0.16.0.dist-info → luminarycloud-0.16.1.dist-info}/WHEEL +0 -0
|
@@ -18,7 +18,7 @@ from luminarycloud._proto.cad import shape_pb2 as proto_dot_cad_dot_shape__pb2
|
|
|
18
18
|
from luminarycloud._proto.options import options_pb2 as proto_dot_options_dot_options__pb2
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bproto/hexmesh/hexmesh.proto\x12\x16luminary.proto.hexmesh\x1a\x15proto/base/base.proto\x1a\x15proto/cad/shape.proto\x1a\x1bproto/options/options.proto\"{\n\x0fRefinementLevel\x12&\n\x08\x64istance\x18\x01 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\x00\x00H\x00\x88\x01\x01\x12#\n\x05level\x18\x03 \x01(\x05\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\x00@H\x01\x88\x01\x01\x42\x0b\n\t_distanceB\x08\n\x06_levelJ\x04\x08\x02\x10\x03\"\x8e\x01\n\x0eRefinementSpec\x12\x42\n\x11refinement_levels\x18\x01 \x03(\x0b\x32\'.luminary.proto.hexmesh.RefinementLevel\x12\x38\n\x04mode\x18\x02 \x01(\x0e\x32*.luminary.proto.hexmesh.RefinementSpecMode\"\'\n\nOutputInfo\x12\x19\n\x11output_lcmesh_url\x18\x01 \x01(\t\"j\n\x0e\x42\x61\x63kgroundMesh\x12(\n\x04\x63ube\x18\x01 \x01(\x0b\x32\x18.luminary.proto.cad.CubeH\x00\x12\x0b\n\x03n_x\x18\x08 \x01(\x05\x12\x0b\n\x03n_y\x18\t \x01(\x05\x12\x0b\n\x03n_z\x18\n \x01(\x05\x42\x07\n\x05shape\"\xa8\x01\n\x12RefinementSurfaces\x12)\n\x14refinement_min_level\x18\x03 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x02H\x00\x88\x01\x01\x12)\n\x14refinement_max_level\x18\x04 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x02H\x01\x88\x01\x01\x42\x17\n\x15_refinement_min_levelB\x17\n\x15_refinement_max_levelJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\x89\x05\n\x17\x43\x61stellatedMeshControls\x12)\n\x10max_global_cells\x18\x01 \x01(\x05\x42\n\x82\xb2\x19\x06\x30\x80\x88\xde\xbe\x01H\x00\x88\x01\x01\x12)\n\x14min_refinement_cells\x18\x02 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x64H\x01\x88\x01\x01\x12+\n\x16n_cells_between_levels\x18\x03 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\x02\x88\x01\x01\x12\x33\n\x15resolve_feature_angle\x18\x04 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00N@H\x03\x88\x01\x01\x12\x36\n\x10location_in_mesh\x18\x05 \x01(\x0b\x32\x1c.luminary.proto.base.Vector3\x12N\n\x1aglobal_refinement_surfaces\x18\x06 \x01(\x0b\x32*.luminary.proto.hexmesh.RefinementSurfaces\x12\x64\n\x13refinement_surfaces\x18\t \x03(\x0b\x32G.luminary.proto.hexmesh.CastellatedMeshControls.RefinementSurfacesEntry\x1a\x65\n\x17RefinementSurfacesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.luminary.proto.hexmesh.RefinementSurfaces:\x02\x38\x01\x42\x13\n\x11_max_global_cellsB\x17\n\x15_min_refinement_cellsB\x19\n\x17_n_cells_between_levelsB\x18\n\x16_resolve_feature_angle\"\x8e\x01\n\x0c\x46\x65\x61tureEdges\x12+\n\rfeature_angle\x18\x01 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00>@H\x00\x88\x01\x01\x12?\n\x0frefinement_spec\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpecB\x10\n\x0e_feature_angle\"\xa7\x02\n\x0cSnapControls\x12#\n\x0en_smooth_patch\x18\x01 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\x00\x88\x01\x01\x12\'\n\ttolerance\x18\x02 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\x10@H\x01\x88\x01\x01\x12!\n\x0cn_solve_iter\x18\x03 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x1eH\x02\x88\x01\x01\x12!\n\x0cn_relax_iter\x18\x04 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x05H\x03\x88\x01\x01\x12(\n\x13n_feature_snap_iter\x18\x05 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\nH\x04\x88\x01\x01\x42\x11\n\x0f_n_smooth_patchB\x0c\n\n_toleranceB\x0f\n\r_n_solve_iterB\x0f\n\r_n_relax_iterB\x16\n\x14_n_feature_snap_iter\"\xdb\n\n\x11\x41\x64\x64LayersControls\x12#\n\x0erelative_sizes\x18\x01 \x01(\x08\x42\x06\x82\xb2\x19\x02(\x01H\x00\x88\x01\x01\x12-\n\x0f\x65xpansion_ratio\x18\x02 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf4?H\x01\x88\x01\x01\x12\x33\n\x15\x66inal_layer_thickness\x18\x03 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t333333\xd3?H\x02\x88\x01\x01\x12+\n\rmin_thickness\x18\x04 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x9a\x99\x99\x99\x99\x99\xb9?H\x03\x88\x01\x01\x12\x1b\n\x06n_grow\x18\x05 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x00H\x04\x88\x01\x01\x12+\n\rfeature_angle\x18\x06 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00N@H\x05\x88\x01\x01\x12\x30\n\x12slip_feature_angle\x18\x07 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00N@H\x06\x88\x01\x01\x12!\n\x0cn_relax_iter\x18\x08 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\x07\x88\x01\x01\x12-\n\x18n_smooth_surface_normals\x18\t \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x01H\x08\x88\x01\x01\x12%\n\x10n_smooth_normals\x18\n \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\t\x88\x01\x01\x12\'\n\x12n_smooth_thickness\x18\x0b \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\nH\n\x88\x01\x01\x12\x36\n\x18max_face_thickness_ratio\x18\x0c \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xe0?H\x0b\x88\x01\x01\x12;\n\x1dmax_thickness_to_medial_ratio\x18\r \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t333333\xd3?H\x0c\x88\x01\x01\x12\x33\n\x15min_medial_axis_angle\x18\x0e \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x80V@H\r\x88\x01\x01\x12.\n\x19n_buffer_cells_no_extrude\x18\x0f \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x00H\x0e\x88\x01\x01\x12!\n\x0cn_layer_iter\x18\x10 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x1eH\x0f\x88\x01\x01\x12,\n\x17global_n_surface_layers\x18\x11 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\nH\x10\x88\x01\x01\x12W\n\x10n_surface_layers\x18\x12 \x03(\x0b\x32=.luminary.proto.hexmesh.AddLayersControls.NSurfaceLayersEntry\x12!\n\x0cn_outer_iter\x18\x13 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x01H\x11\x88\x01\x01\x1a\x35\n\x13NSurfaceLayersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x11\n\x0f_relative_sizesB\x12\n\x10_expansion_ratioB\x18\n\x16_final_layer_thicknessB\x10\n\x0e_min_thicknessB\t\n\x07_n_growB\x10\n\x0e_feature_angleB\x15\n\x13_slip_feature_angleB\x0f\n\r_n_relax_iterB\x1b\n\x19_n_smooth_surface_normalsB\x13\n\x11_n_smooth_normalsB\x15\n\x13_n_smooth_thicknessB\x1b\n\x19_max_face_thickness_ratioB \n\x1e_max_thickness_to_medial_ratioB\x18\n\x16_min_medial_axis_angleB\x1c\n\x1a_n_buffer_cells_no_extrudeB\x0f\n\r_n_layer_iterB\x1a\n\x18_global_n_surface_layersB\x0f\n\r_n_outer_iter\"\xa6\x01\n\x16RefinementRegionParams\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12(\n\x04\x63ube\x18\x03 \x01(\x0b\x32\x18.luminary.proto.cad.CubeH\x00\x12?\n\x0frefinement_spec\x18\x04 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpecB\x07\n\x05shape\"\xdc\x04\n\x15OpenfoamMeshShmConfig\x12G\n\x14global_feature_edges\x18\x01 \x01(\x0b\x32$.luminary.proto.hexmesh.FeatureEdgesH\x00\x88\x01\x01\x12V\n\rfeature_edges\x18\x05 \x03(\x0b\x32?.luminary.proto.hexmesh.OpenfoamMeshShmConfig.FeatureEdgesEntry\x12W\n\x19\x63\x61stellated_mesh_controls\x18\x02 \x01(\x0b\x32/.luminary.proto.hexmesh.CastellatedMeshControlsH\x01\x88\x01\x01\x12@\n\rsnap_controls\x18\x03 \x01(\x0b\x32$.luminary.proto.hexmesh.SnapControlsH\x02\x88\x01\x01\x12K\n\x13\x61\x64\x64_layers_controls\x18\x04 \x01(\x0b\x32).luminary.proto.hexmesh.AddLayersControlsH\x03\x88\x01\x01\x1aY\n\x11\x46\x65\x61tureEdgesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.luminary.proto.hexmesh.FeatureEdges:\x02\x38\x01\x42\x17\n\x15_global_feature_edgesB\x1c\n\x1a_castellated_mesh_controlsB\x10\n\x0e_snap_controlsB\x16\n\x14_add_layers_controls\"\xf5\x05\n\x12OpenfoamMeshConfig\x12\x44\n\x0f\x62\x61\x63kground_mesh\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.BackgroundMeshH\x01\x88\x01\x01\x12J\n\x12refinement_regions\x18\x03 \x03(\x0b\x32..luminary.proto.hexmesh.RefinementRegionParams\x12o\n\x1crefinement_regions_from_stls\x18\x08 \x03(\x0b\x32I.luminary.proto.hexmesh.OpenfoamMeshConfig.RefinementRegionsFromStlsEntry\x12\x43\n\nshm_config\x18\x04 \x01(\x0b\x32-.luminary.proto.hexmesh.OpenfoamMeshShmConfigH\x00\x12\x37\n\x0boutput_info\x18\x05 \x01(\x0b\x32\".luminary.proto.hexmesh.OutputInfo\x12\x0f\n\x07mesh_id\x18\x06 \x01(\t\x12[\n\x12names_to_file_urls\x18\x07 \x03(\x0b\x32?.luminary.proto.hexmesh.OpenfoamMeshConfig.NamesToFileUrlsEntry\x12\x1d\n\x08use_wrap\x18\t \x01(\x08\x42\x06\x82\xb2\x19\x02(\x00H\x02\x88\x01\x01\x1ah\n\x1eRefinementRegionsFromStlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpec:\x02\x38\x01\x1a\x36\n\x14NamesToFileUrlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06\x63onfigB\x12\n\x10_background_meshB\x0b\n\t_use_wrapJ\x04\x08\x01\x10\x02\"\xa4\x05\n\x0bHexMeshSpec\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x44\n\x0f\x62\x61\x63kground_mesh\x18\x03 \x01(\x0b\x32&.luminary.proto.hexmesh.BackgroundMeshH\x01\x88\x01\x01\x12J\n\x12refinement_regions\x18\x04 \x03(\x0b\x32..luminary.proto.hexmesh.RefinementRegionParams\x12h\n\x1crefinement_regions_from_stls\x18\x07 \x03(\x0b\x32\x42.luminary.proto.hexmesh.HexMeshSpec.RefinementRegionsFromStlsEntry\x12\x43\n\nshm_config\x18\x05 \x01(\x0b\x32-.luminary.proto.hexmesh.OpenfoamMeshShmConfigH\x00\x12T\n\x12names_to_file_urls\x18\x06 \x03(\x0b\x32\x38.luminary.proto.hexmesh.HexMeshSpec.NamesToFileUrlsEntry\x12\x1d\n\x08use_wrap\x18\x08 \x01(\x08\x42\x06\x82\xb2\x19\x02(\x00H\x02\x88\x01\x01\x1ah\n\x1eRefinementRegionsFromStlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpec:\x02\x38\x01\x1a\x36\n\x14NamesToFileUrlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06\x63onfigB\x12\n\x10_background_meshB\x0b\n\t_use_wrapJ\x04\x08\x01\x10\x02*~\n\x12RefinementSpecMode\x12$\n REFINEMENT_SPEC_MODE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bREFINEMENT_SPEC_MODE_INSIDE\x10\x01\x12!\n\x1dREFINEMENT_SPEC_MODE_DISTANCE\x10\x02\x42&Z$luminarycloud.com/core/proto/hexmeshb\x06proto3')
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bproto/hexmesh/hexmesh.proto\x12\x16luminary.proto.hexmesh\x1a\x15proto/base/base.proto\x1a\x15proto/cad/shape.proto\x1a\x1bproto/options/options.proto\"{\n\x0fRefinementLevel\x12&\n\x08\x64istance\x18\x01 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\x00\x00H\x00\x88\x01\x01\x12#\n\x05level\x18\x03 \x01(\x05\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\x00@H\x01\x88\x01\x01\x42\x0b\n\t_distanceB\x08\n\x06_levelJ\x04\x08\x02\x10\x03\"\x8e\x01\n\x0eRefinementSpec\x12\x42\n\x11refinement_levels\x18\x01 \x03(\x0b\x32\'.luminary.proto.hexmesh.RefinementLevel\x12\x38\n\x04mode\x18\x02 \x01(\x0e\x32*.luminary.proto.hexmesh.RefinementSpecMode\"\'\n\nOutputInfo\x12\x19\n\x11output_lcmesh_url\x18\x01 \x01(\t\"j\n\x0e\x42\x61\x63kgroundMesh\x12(\n\x04\x63ube\x18\x01 \x01(\x0b\x32\x18.luminary.proto.cad.CubeH\x00\x12\x0b\n\x03n_x\x18\x08 \x01(\x05\x12\x0b\n\x03n_y\x18\t \x01(\x05\x12\x0b\n\x03n_z\x18\n \x01(\x05\x42\x07\n\x05shape\"\xa8\x01\n\x12RefinementSurfaces\x12)\n\x14refinement_min_level\x18\x03 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x02H\x00\x88\x01\x01\x12)\n\x14refinement_max_level\x18\x04 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x02H\x01\x88\x01\x01\x42\x17\n\x15_refinement_min_levelB\x17\n\x15_refinement_max_levelJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\x89\x05\n\x17\x43\x61stellatedMeshControls\x12)\n\x10max_global_cells\x18\x01 \x01(\x05\x42\n\x82\xb2\x19\x06\x30\x80\x88\xde\xbe\x01H\x00\x88\x01\x01\x12)\n\x14min_refinement_cells\x18\x02 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x64H\x01\x88\x01\x01\x12+\n\x16n_cells_between_levels\x18\x03 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\x02\x88\x01\x01\x12\x33\n\x15resolve_feature_angle\x18\x04 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00N@H\x03\x88\x01\x01\x12\x36\n\x10location_in_mesh\x18\x05 \x01(\x0b\x32\x1c.luminary.proto.base.Vector3\x12N\n\x1aglobal_refinement_surfaces\x18\x06 \x01(\x0b\x32*.luminary.proto.hexmesh.RefinementSurfaces\x12\x64\n\x13refinement_surfaces\x18\t \x03(\x0b\x32G.luminary.proto.hexmesh.CastellatedMeshControls.RefinementSurfacesEntry\x1a\x65\n\x17RefinementSurfacesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.luminary.proto.hexmesh.RefinementSurfaces:\x02\x38\x01\x42\x13\n\x11_max_global_cellsB\x17\n\x15_min_refinement_cellsB\x19\n\x17_n_cells_between_levelsB\x18\n\x16_resolve_feature_angle\"\x8e\x01\n\x0c\x46\x65\x61tureEdges\x12+\n\rfeature_angle\x18\x01 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00>@H\x00\x88\x01\x01\x12?\n\x0frefinement_spec\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpecB\x10\n\x0e_feature_angle\"\xa7\x02\n\x0cSnapControls\x12#\n\x0en_smooth_patch\x18\x01 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\x00\x88\x01\x01\x12\'\n\ttolerance\x18\x02 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\x10@H\x01\x88\x01\x01\x12!\n\x0cn_solve_iter\x18\x03 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x1eH\x02\x88\x01\x01\x12!\n\x0cn_relax_iter\x18\x04 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x05H\x03\x88\x01\x01\x12(\n\x13n_feature_snap_iter\x18\x05 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\nH\x04\x88\x01\x01\x42\x11\n\x0f_n_smooth_patchB\x0c\n\n_toleranceB\x0f\n\r_n_solve_iterB\x0f\n\r_n_relax_iterB\x16\n\x14_n_feature_snap_iter\"\xdb\n\n\x11\x41\x64\x64LayersControls\x12#\n\x0erelative_sizes\x18\x01 \x01(\x08\x42\x06\x82\xb2\x19\x02(\x01H\x00\x88\x01\x01\x12-\n\x0f\x65xpansion_ratio\x18\x02 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xf4?H\x01\x88\x01\x01\x12\x33\n\x15\x66inal_layer_thickness\x18\x03 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t333333\xd3?H\x02\x88\x01\x01\x12+\n\rmin_thickness\x18\x04 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x9a\x99\x99\x99\x99\x99\xb9?H\x03\x88\x01\x01\x12\x1b\n\x06n_grow\x18\x05 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x00H\x04\x88\x01\x01\x12+\n\rfeature_angle\x18\x06 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00N@H\x05\x88\x01\x01\x12\x30\n\x12slip_feature_angle\x18\x07 \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00N@H\x06\x88\x01\x01\x12!\n\x0cn_relax_iter\x18\x08 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\x07\x88\x01\x01\x12-\n\x18n_smooth_surface_normals\x18\t \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x01H\x08\x88\x01\x01\x12%\n\x10n_smooth_normals\x18\n \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x03H\t\x88\x01\x01\x12\'\n\x12n_smooth_thickness\x18\x0b \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\nH\n\x88\x01\x01\x12\x36\n\x18max_face_thickness_ratio\x18\x0c \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x00\xe0?H\x0b\x88\x01\x01\x12;\n\x1dmax_thickness_to_medial_ratio\x18\r \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t333333\xd3?H\x0c\x88\x01\x01\x12\x33\n\x15min_medial_axis_angle\x18\x0e \x01(\x01\x42\x0f\x82\xb2\x19\x0b\n\t\t\x00\x00\x00\x00\x00\x80V@H\r\x88\x01\x01\x12.\n\x19n_buffer_cells_no_extrude\x18\x0f \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x00H\x0e\x88\x01\x01\x12!\n\x0cn_layer_iter\x18\x10 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x1eH\x0f\x88\x01\x01\x12,\n\x17global_n_surface_layers\x18\x11 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\nH\x10\x88\x01\x01\x12W\n\x10n_surface_layers\x18\x12 \x03(\x0b\x32=.luminary.proto.hexmesh.AddLayersControls.NSurfaceLayersEntry\x12!\n\x0cn_outer_iter\x18\x13 \x01(\x05\x42\x06\x82\xb2\x19\x02\x30\x01H\x11\x88\x01\x01\x1a\x35\n\x13NSurfaceLayersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x11\n\x0f_relative_sizesB\x12\n\x10_expansion_ratioB\x18\n\x16_final_layer_thicknessB\x10\n\x0e_min_thicknessB\t\n\x07_n_growB\x10\n\x0e_feature_angleB\x15\n\x13_slip_feature_angleB\x0f\n\r_n_relax_iterB\x1b\n\x19_n_smooth_surface_normalsB\x13\n\x11_n_smooth_normalsB\x15\n\x13_n_smooth_thicknessB\x1b\n\x19_max_face_thickness_ratioB \n\x1e_max_thickness_to_medial_ratioB\x18\n\x16_min_medial_axis_angleB\x1c\n\x1a_n_buffer_cells_no_extrudeB\x0f\n\r_n_layer_iterB\x1a\n\x18_global_n_surface_layersB\x0f\n\r_n_outer_iter\"\xa6\x01\n\x16RefinementRegionParams\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12(\n\x04\x63ube\x18\x03 \x01(\x0b\x32\x18.luminary.proto.cad.CubeH\x00\x12?\n\x0frefinement_spec\x18\x04 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpecB\x07\n\x05shape\"\xdc\x04\n\x15OpenfoamMeshShmConfig\x12G\n\x14global_feature_edges\x18\x01 \x01(\x0b\x32$.luminary.proto.hexmesh.FeatureEdgesH\x00\x88\x01\x01\x12V\n\rfeature_edges\x18\x05 \x03(\x0b\x32?.luminary.proto.hexmesh.OpenfoamMeshShmConfig.FeatureEdgesEntry\x12W\n\x19\x63\x61stellated_mesh_controls\x18\x02 \x01(\x0b\x32/.luminary.proto.hexmesh.CastellatedMeshControlsH\x01\x88\x01\x01\x12@\n\rsnap_controls\x18\x03 \x01(\x0b\x32$.luminary.proto.hexmesh.SnapControlsH\x02\x88\x01\x01\x12K\n\x13\x61\x64\x64_layers_controls\x18\x04 \x01(\x0b\x32).luminary.proto.hexmesh.AddLayersControlsH\x03\x88\x01\x01\x1aY\n\x11\x46\x65\x61tureEdgesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.luminary.proto.hexmesh.FeatureEdges:\x02\x38\x01\x42\x17\n\x15_global_feature_edgesB\x1c\n\x1a_castellated_mesh_controlsB\x10\n\x0e_snap_controlsB\x16\n\x14_add_layers_controls\"\xaa\x02\n\x11TransformationStl\x12\x36\n\x0btranslation\x18\x01 \x01(\x0b\x32\x1c.luminary.proto.base.Vector3H\x00\x88\x01\x01\x12\x38\n\rrotation_axis\x18\x02 \x01(\x0b\x32\x1c.luminary.proto.base.Vector3H\x01\x88\x01\x01\x12\x12\n\x05\x61ngle\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12Y\n\x05scale\x18\x04 \x01(\x0b\x32\x1c.luminary.proto.base.Vector3B\'\x82\xb2\x19#\x12!\n\t\t\x00\x00\x00\x00\x00\x00\xf0?\x12\t\t\x00\x00\x00\x00\x00\x00\xf0?\x1a\t\t\x00\x00\x00\x00\x00\x00\xf0?H\x03\x88\x01\x01\x42\x0e\n\x0c_translationB\x10\n\x0e_rotation_axisB\x08\n\x06_angleB\x08\n\x06_scale\"\xba\x07\n\x12OpenfoamMeshConfig\x12\x44\n\x0f\x62\x61\x63kground_mesh\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.BackgroundMeshH\x01\x88\x01\x01\x12J\n\x12refinement_regions\x18\x03 \x03(\x0b\x32..luminary.proto.hexmesh.RefinementRegionParams\x12o\n\x1crefinement_regions_from_stls\x18\x08 \x03(\x0b\x32I.luminary.proto.hexmesh.OpenfoamMeshConfig.RefinementRegionsFromStlsEntry\x12\x43\n\nshm_config\x18\x04 \x01(\x0b\x32-.luminary.proto.hexmesh.OpenfoamMeshShmConfigH\x00\x12\x37\n\x0boutput_info\x18\x05 \x01(\x0b\x32\".luminary.proto.hexmesh.OutputInfo\x12\x0f\n\x07mesh_id\x18\x06 \x01(\t\x12[\n\x12names_to_file_urls\x18\x07 \x03(\x0b\x32?.luminary.proto.hexmesh.OpenfoamMeshConfig.NamesToFileUrlsEntry\x12\x1d\n\x08use_wrap\x18\t \x01(\x08\x42\x06\x82\xb2\x19\x02(\x00H\x02\x88\x01\x01\x12^\n\x13transforms_for_stls\x18\n \x03(\x0b\x32\x41.luminary.proto.hexmesh.OpenfoamMeshConfig.TransformsForStlsEntry\x1ah\n\x1eRefinementRegionsFromStlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpec:\x02\x38\x01\x1a\x36\n\x14NamesToFileUrlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x63\n\x16TransformsForStlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).luminary.proto.hexmesh.TransformationStl:\x02\x38\x01\x42\x08\n\x06\x63onfigB\x12\n\x10_background_meshB\x0b\n\t_use_wrapJ\x04\x08\x01\x10\x02\"\xa4\x05\n\x0bHexMeshSpec\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x44\n\x0f\x62\x61\x63kground_mesh\x18\x03 \x01(\x0b\x32&.luminary.proto.hexmesh.BackgroundMeshH\x01\x88\x01\x01\x12J\n\x12refinement_regions\x18\x04 \x03(\x0b\x32..luminary.proto.hexmesh.RefinementRegionParams\x12h\n\x1crefinement_regions_from_stls\x18\x07 \x03(\x0b\x32\x42.luminary.proto.hexmesh.HexMeshSpec.RefinementRegionsFromStlsEntry\x12\x43\n\nshm_config\x18\x05 \x01(\x0b\x32-.luminary.proto.hexmesh.OpenfoamMeshShmConfigH\x00\x12T\n\x12names_to_file_urls\x18\x06 \x03(\x0b\x32\x38.luminary.proto.hexmesh.HexMeshSpec.NamesToFileUrlsEntry\x12\x1d\n\x08use_wrap\x18\x08 \x01(\x08\x42\x06\x82\xb2\x19\x02(\x00H\x02\x88\x01\x01\x1ah\n\x1eRefinementRegionsFromStlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.luminary.proto.hexmesh.RefinementSpec:\x02\x38\x01\x1a\x36\n\x14NamesToFileUrlsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x08\n\x06\x63onfigB\x12\n\x10_background_meshB\x0b\n\t_use_wrapJ\x04\x08\x01\x10\x02*~\n\x12RefinementSpecMode\x12$\n REFINEMENT_SPEC_MODE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bREFINEMENT_SPEC_MODE_INSIDE\x10\x01\x12!\n\x1dREFINEMENT_SPEC_MODE_DISTANCE\x10\x02\x42&Z$luminarycloud.com/core/proto/hexmeshb\x06proto3')
|
|
22
22
|
|
|
23
23
|
_REFINEMENTSPECMODE = DESCRIPTOR.enum_types_by_name['RefinementSpecMode']
|
|
24
24
|
RefinementSpecMode = enum_type_wrapper.EnumTypeWrapper(_REFINEMENTSPECMODE)
|
|
@@ -41,9 +41,11 @@ _ADDLAYERSCONTROLS_NSURFACELAYERSENTRY = _ADDLAYERSCONTROLS.nested_types_by_name
|
|
|
41
41
|
_REFINEMENTREGIONPARAMS = DESCRIPTOR.message_types_by_name['RefinementRegionParams']
|
|
42
42
|
_OPENFOAMMESHSHMCONFIG = DESCRIPTOR.message_types_by_name['OpenfoamMeshShmConfig']
|
|
43
43
|
_OPENFOAMMESHSHMCONFIG_FEATUREEDGESENTRY = _OPENFOAMMESHSHMCONFIG.nested_types_by_name['FeatureEdgesEntry']
|
|
44
|
+
_TRANSFORMATIONSTL = DESCRIPTOR.message_types_by_name['TransformationStl']
|
|
44
45
|
_OPENFOAMMESHCONFIG = DESCRIPTOR.message_types_by_name['OpenfoamMeshConfig']
|
|
45
46
|
_OPENFOAMMESHCONFIG_REFINEMENTREGIONSFROMSTLSENTRY = _OPENFOAMMESHCONFIG.nested_types_by_name['RefinementRegionsFromStlsEntry']
|
|
46
47
|
_OPENFOAMMESHCONFIG_NAMESTOFILEURLSENTRY = _OPENFOAMMESHCONFIG.nested_types_by_name['NamesToFileUrlsEntry']
|
|
48
|
+
_OPENFOAMMESHCONFIG_TRANSFORMSFORSTLSENTRY = _OPENFOAMMESHCONFIG.nested_types_by_name['TransformsForStlsEntry']
|
|
47
49
|
_HEXMESHSPEC = DESCRIPTOR.message_types_by_name['HexMeshSpec']
|
|
48
50
|
_HEXMESHSPEC_REFINEMENTREGIONSFROMSTLSENTRY = _HEXMESHSPEC.nested_types_by_name['RefinementRegionsFromStlsEntry']
|
|
49
51
|
_HEXMESHSPEC_NAMESTOFILEURLSENTRY = _HEXMESHSPEC.nested_types_by_name['NamesToFileUrlsEntry']
|
|
@@ -148,6 +150,13 @@ OpenfoamMeshShmConfig = _reflection.GeneratedProtocolMessageType('OpenfoamMeshSh
|
|
|
148
150
|
_sym_db.RegisterMessage(OpenfoamMeshShmConfig)
|
|
149
151
|
_sym_db.RegisterMessage(OpenfoamMeshShmConfig.FeatureEdgesEntry)
|
|
150
152
|
|
|
153
|
+
TransformationStl = _reflection.GeneratedProtocolMessageType('TransformationStl', (_message.Message,), {
|
|
154
|
+
'DESCRIPTOR' : _TRANSFORMATIONSTL,
|
|
155
|
+
'__module__' : 'proto.hexmesh.hexmesh_pb2'
|
|
156
|
+
# @@protoc_insertion_point(class_scope:luminary.proto.hexmesh.TransformationStl)
|
|
157
|
+
})
|
|
158
|
+
_sym_db.RegisterMessage(TransformationStl)
|
|
159
|
+
|
|
151
160
|
OpenfoamMeshConfig = _reflection.GeneratedProtocolMessageType('OpenfoamMeshConfig', (_message.Message,), {
|
|
152
161
|
|
|
153
162
|
'RefinementRegionsFromStlsEntry' : _reflection.GeneratedProtocolMessageType('RefinementRegionsFromStlsEntry', (_message.Message,), {
|
|
@@ -163,6 +172,13 @@ OpenfoamMeshConfig = _reflection.GeneratedProtocolMessageType('OpenfoamMeshConfi
|
|
|
163
172
|
# @@protoc_insertion_point(class_scope:luminary.proto.hexmesh.OpenfoamMeshConfig.NamesToFileUrlsEntry)
|
|
164
173
|
})
|
|
165
174
|
,
|
|
175
|
+
|
|
176
|
+
'TransformsForStlsEntry' : _reflection.GeneratedProtocolMessageType('TransformsForStlsEntry', (_message.Message,), {
|
|
177
|
+
'DESCRIPTOR' : _OPENFOAMMESHCONFIG_TRANSFORMSFORSTLSENTRY,
|
|
178
|
+
'__module__' : 'proto.hexmesh.hexmesh_pb2'
|
|
179
|
+
# @@protoc_insertion_point(class_scope:luminary.proto.hexmesh.OpenfoamMeshConfig.TransformsForStlsEntry)
|
|
180
|
+
})
|
|
181
|
+
,
|
|
166
182
|
'DESCRIPTOR' : _OPENFOAMMESHCONFIG,
|
|
167
183
|
'__module__' : 'proto.hexmesh.hexmesh_pb2'
|
|
168
184
|
# @@protoc_insertion_point(class_scope:luminary.proto.hexmesh.OpenfoamMeshConfig)
|
|
@@ -170,6 +186,7 @@ OpenfoamMeshConfig = _reflection.GeneratedProtocolMessageType('OpenfoamMeshConfi
|
|
|
170
186
|
_sym_db.RegisterMessage(OpenfoamMeshConfig)
|
|
171
187
|
_sym_db.RegisterMessage(OpenfoamMeshConfig.RefinementRegionsFromStlsEntry)
|
|
172
188
|
_sym_db.RegisterMessage(OpenfoamMeshConfig.NamesToFileUrlsEntry)
|
|
189
|
+
_sym_db.RegisterMessage(OpenfoamMeshConfig.TransformsForStlsEntry)
|
|
173
190
|
|
|
174
191
|
HexMeshSpec = _reflection.GeneratedProtocolMessageType('HexMeshSpec', (_message.Message,), {
|
|
175
192
|
|
|
@@ -268,10 +285,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
268
285
|
_ADDLAYERSCONTROLS.fields_by_name['n_outer_iter']._serialized_options = b'\202\262\031\0020\001'
|
|
269
286
|
_OPENFOAMMESHSHMCONFIG_FEATUREEDGESENTRY._options = None
|
|
270
287
|
_OPENFOAMMESHSHMCONFIG_FEATUREEDGESENTRY._serialized_options = b'8\001'
|
|
288
|
+
_TRANSFORMATIONSTL.fields_by_name['scale']._options = None
|
|
289
|
+
_TRANSFORMATIONSTL.fields_by_name['scale']._serialized_options = b'\202\262\031#\022!\n\t\t\000\000\000\000\000\000\360?\022\t\t\000\000\000\000\000\000\360?\032\t\t\000\000\000\000\000\000\360?'
|
|
271
290
|
_OPENFOAMMESHCONFIG_REFINEMENTREGIONSFROMSTLSENTRY._options = None
|
|
272
291
|
_OPENFOAMMESHCONFIG_REFINEMENTREGIONSFROMSTLSENTRY._serialized_options = b'8\001'
|
|
273
292
|
_OPENFOAMMESHCONFIG_NAMESTOFILEURLSENTRY._options = None
|
|
274
293
|
_OPENFOAMMESHCONFIG_NAMESTOFILEURLSENTRY._serialized_options = b'8\001'
|
|
294
|
+
_OPENFOAMMESHCONFIG_TRANSFORMSFORSTLSENTRY._options = None
|
|
295
|
+
_OPENFOAMMESHCONFIG_TRANSFORMSFORSTLSENTRY._serialized_options = b'8\001'
|
|
275
296
|
_OPENFOAMMESHCONFIG.fields_by_name['use_wrap']._options = None
|
|
276
297
|
_OPENFOAMMESHCONFIG.fields_by_name['use_wrap']._serialized_options = b'\202\262\031\002(\000'
|
|
277
298
|
_HEXMESHSPEC_REFINEMENTREGIONSFROMSTLSENTRY._options = None
|
|
@@ -280,8 +301,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
280
301
|
_HEXMESHSPEC_NAMESTOFILEURLSENTRY._serialized_options = b'8\001'
|
|
281
302
|
_HEXMESHSPEC.fields_by_name['use_wrap']._options = None
|
|
282
303
|
_HEXMESHSPEC.fields_by_name['use_wrap']._serialized_options = b'\202\262\031\002(\000'
|
|
283
|
-
_REFINEMENTSPECMODE._serialized_start=
|
|
284
|
-
_REFINEMENTSPECMODE._serialized_end=
|
|
304
|
+
_REFINEMENTSPECMODE._serialized_start=5902
|
|
305
|
+
_REFINEMENTSPECMODE._serialized_end=6028
|
|
285
306
|
_REFINEMENTLEVEL._serialized_start=130
|
|
286
307
|
_REFINEMENTLEVEL._serialized_end=253
|
|
287
308
|
_REFINEMENTSPEC._serialized_start=256
|
|
@@ -310,16 +331,20 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
310
331
|
_OPENFOAMMESHSHMCONFIG._serialized_end=3963
|
|
311
332
|
_OPENFOAMMESHSHMCONFIG_FEATUREEDGESENTRY._serialized_start=3777
|
|
312
333
|
_OPENFOAMMESHSHMCONFIG_FEATUREEDGESENTRY._serialized_end=3866
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
334
|
+
_TRANSFORMATIONSTL._serialized_start=3966
|
|
335
|
+
_TRANSFORMATIONSTL._serialized_end=4264
|
|
336
|
+
_OPENFOAMMESHCONFIG._serialized_start=4267
|
|
337
|
+
_OPENFOAMMESHCONFIG._serialized_end=5221
|
|
338
|
+
_OPENFOAMMESHCONFIG_REFINEMENTREGIONSFROMSTLSENTRY._serialized_start=4911
|
|
339
|
+
_OPENFOAMMESHCONFIG_REFINEMENTREGIONSFROMSTLSENTRY._serialized_end=5015
|
|
340
|
+
_OPENFOAMMESHCONFIG_NAMESTOFILEURLSENTRY._serialized_start=5017
|
|
341
|
+
_OPENFOAMMESHCONFIG_NAMESTOFILEURLSENTRY._serialized_end=5071
|
|
342
|
+
_OPENFOAMMESHCONFIG_TRANSFORMSFORSTLSENTRY._serialized_start=5073
|
|
343
|
+
_OPENFOAMMESHCONFIG_TRANSFORMSFORSTLSENTRY._serialized_end=5172
|
|
344
|
+
_HEXMESHSPEC._serialized_start=5224
|
|
345
|
+
_HEXMESHSPEC._serialized_end=5900
|
|
346
|
+
_HEXMESHSPEC_REFINEMENTREGIONSFROMSTLSENTRY._serialized_start=4911
|
|
347
|
+
_HEXMESHSPEC_REFINEMENTREGIONSFROMSTLSENTRY._serialized_end=5015
|
|
348
|
+
_HEXMESHSPEC_NAMESTOFILEURLSENTRY._serialized_start=5017
|
|
349
|
+
_HEXMESHSPEC_NAMESTOFILEURLSENTRY._serialized_end=5071
|
|
325
350
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -491,6 +491,42 @@ class OpenfoamMeshShmConfig(google.protobuf.message.Message):
|
|
|
491
491
|
|
|
492
492
|
global___OpenfoamMeshShmConfig = OpenfoamMeshShmConfig
|
|
493
493
|
|
|
494
|
+
class TransformationStl(google.protobuf.message.Message):
|
|
495
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
496
|
+
|
|
497
|
+
TRANSLATION_FIELD_NUMBER: builtins.int
|
|
498
|
+
ROTATION_AXIS_FIELD_NUMBER: builtins.int
|
|
499
|
+
ANGLE_FIELD_NUMBER: builtins.int
|
|
500
|
+
SCALE_FIELD_NUMBER: builtins.int
|
|
501
|
+
@property
|
|
502
|
+
def translation(self) -> luminarycloud._proto.base.base_pb2.Vector3: ...
|
|
503
|
+
@property
|
|
504
|
+
def rotation_axis(self) -> luminarycloud._proto.base.base_pb2.Vector3: ...
|
|
505
|
+
angle: builtins.float
|
|
506
|
+
"""The rotation is specified in degrees."""
|
|
507
|
+
@property
|
|
508
|
+
def scale(self) -> luminarycloud._proto.base.base_pb2.Vector3: ...
|
|
509
|
+
def __init__(
|
|
510
|
+
self,
|
|
511
|
+
*,
|
|
512
|
+
translation: luminarycloud._proto.base.base_pb2.Vector3 | None = ...,
|
|
513
|
+
rotation_axis: luminarycloud._proto.base.base_pb2.Vector3 | None = ...,
|
|
514
|
+
angle: builtins.float | None = ...,
|
|
515
|
+
scale: luminarycloud._proto.base.base_pb2.Vector3 | None = ...,
|
|
516
|
+
) -> None: ...
|
|
517
|
+
def HasField(self, field_name: typing_extensions.Literal["_angle", b"_angle", "_rotation_axis", b"_rotation_axis", "_scale", b"_scale", "_translation", b"_translation", "angle", b"angle", "rotation_axis", b"rotation_axis", "scale", b"scale", "translation", b"translation"]) -> builtins.bool: ...
|
|
518
|
+
def ClearField(self, field_name: typing_extensions.Literal["_angle", b"_angle", "_rotation_axis", b"_rotation_axis", "_scale", b"_scale", "_translation", b"_translation", "angle", b"angle", "rotation_axis", b"rotation_axis", "scale", b"scale", "translation", b"translation"]) -> None: ...
|
|
519
|
+
@typing.overload
|
|
520
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_angle", b"_angle"]) -> typing_extensions.Literal["angle"] | None: ...
|
|
521
|
+
@typing.overload
|
|
522
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_rotation_axis", b"_rotation_axis"]) -> typing_extensions.Literal["rotation_axis"] | None: ...
|
|
523
|
+
@typing.overload
|
|
524
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_scale", b"_scale"]) -> typing_extensions.Literal["scale"] | None: ...
|
|
525
|
+
@typing.overload
|
|
526
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["_translation", b"_translation"]) -> typing_extensions.Literal["translation"] | None: ...
|
|
527
|
+
|
|
528
|
+
global___TransformationStl = TransformationStl
|
|
529
|
+
|
|
494
530
|
class OpenfoamMeshConfig(google.protobuf.message.Message):
|
|
495
531
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
496
532
|
|
|
@@ -526,6 +562,23 @@ class OpenfoamMeshConfig(google.protobuf.message.Message):
|
|
|
526
562
|
) -> None: ...
|
|
527
563
|
def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
528
564
|
|
|
565
|
+
class TransformsForStlsEntry(google.protobuf.message.Message):
|
|
566
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
567
|
+
|
|
568
|
+
KEY_FIELD_NUMBER: builtins.int
|
|
569
|
+
VALUE_FIELD_NUMBER: builtins.int
|
|
570
|
+
key: builtins.str
|
|
571
|
+
@property
|
|
572
|
+
def value(self) -> global___TransformationStl: ...
|
|
573
|
+
def __init__(
|
|
574
|
+
self,
|
|
575
|
+
*,
|
|
576
|
+
key: builtins.str = ...,
|
|
577
|
+
value: global___TransformationStl | None = ...,
|
|
578
|
+
) -> None: ...
|
|
579
|
+
def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
|
|
580
|
+
def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
581
|
+
|
|
529
582
|
BACKGROUND_MESH_FIELD_NUMBER: builtins.int
|
|
530
583
|
REFINEMENT_REGIONS_FIELD_NUMBER: builtins.int
|
|
531
584
|
REFINEMENT_REGIONS_FROM_STLS_FIELD_NUMBER: builtins.int
|
|
@@ -534,6 +587,7 @@ class OpenfoamMeshConfig(google.protobuf.message.Message):
|
|
|
534
587
|
MESH_ID_FIELD_NUMBER: builtins.int
|
|
535
588
|
NAMES_TO_FILE_URLS_FIELD_NUMBER: builtins.int
|
|
536
589
|
USE_WRAP_FIELD_NUMBER: builtins.int
|
|
590
|
+
TRANSFORMS_FOR_STLS_FIELD_NUMBER: builtins.int
|
|
537
591
|
@property
|
|
538
592
|
def background_mesh(self) -> global___BackgroundMesh:
|
|
539
593
|
"""string input_url = 1;"""
|
|
@@ -555,6 +609,8 @@ class OpenfoamMeshConfig(google.protobuf.message.Message):
|
|
|
555
609
|
def names_to_file_urls(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
|
|
556
610
|
"""Map of names to STL files guaranteeing unique names."""
|
|
557
611
|
use_wrap: builtins.bool
|
|
612
|
+
@property
|
|
613
|
+
def transforms_for_stls(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___TransformationStl]: ...
|
|
558
614
|
def __init__(
|
|
559
615
|
self,
|
|
560
616
|
*,
|
|
@@ -566,9 +622,10 @@ class OpenfoamMeshConfig(google.protobuf.message.Message):
|
|
|
566
622
|
mesh_id: builtins.str = ...,
|
|
567
623
|
names_to_file_urls: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
|
|
568
624
|
use_wrap: builtins.bool | None = ...,
|
|
625
|
+
transforms_for_stls: collections.abc.Mapping[builtins.str, global___TransformationStl] | None = ...,
|
|
569
626
|
) -> None: ...
|
|
570
627
|
def HasField(self, field_name: typing_extensions.Literal["_background_mesh", b"_background_mesh", "_use_wrap", b"_use_wrap", "background_mesh", b"background_mesh", "config", b"config", "output_info", b"output_info", "shm_config", b"shm_config", "use_wrap", b"use_wrap"]) -> builtins.bool: ...
|
|
571
|
-
def ClearField(self, field_name: typing_extensions.Literal["_background_mesh", b"_background_mesh", "_use_wrap", b"_use_wrap", "background_mesh", b"background_mesh", "config", b"config", "mesh_id", b"mesh_id", "names_to_file_urls", b"names_to_file_urls", "output_info", b"output_info", "refinement_regions", b"refinement_regions", "refinement_regions_from_stls", b"refinement_regions_from_stls", "shm_config", b"shm_config", "use_wrap", b"use_wrap"]) -> None: ...
|
|
628
|
+
def ClearField(self, field_name: typing_extensions.Literal["_background_mesh", b"_background_mesh", "_use_wrap", b"_use_wrap", "background_mesh", b"background_mesh", "config", b"config", "mesh_id", b"mesh_id", "names_to_file_urls", b"names_to_file_urls", "output_info", b"output_info", "refinement_regions", b"refinement_regions", "refinement_regions_from_stls", b"refinement_regions_from_stls", "shm_config", b"shm_config", "transforms_for_stls", b"transforms_for_stls", "use_wrap", b"use_wrap"]) -> None: ...
|
|
572
629
|
@typing.overload
|
|
573
630
|
def WhichOneof(self, oneof_group: typing_extensions.Literal["_background_mesh", b"_background_mesh"]) -> typing_extensions.Literal["background_mesh"] | None: ...
|
|
574
631
|
@typing.overload
|
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aproto/lcstatus/codes.proto\x12\x17luminary.proto.lcstatus*\
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aproto/lcstatus/codes.proto\x12\x17luminary.proto.lcstatus*\x95\x07\n\x04\x43ode\x12\t\n\x05LC_OK\x10\x00\x12\x10\n\x0bLC_INTERNAL\x10\xe8\x07\x12\x19\n\x14GEO_VERTEX_DUPLICATE\x10\xfb.\x12\x18\n\x13GEO_EDGE_UNMESHABLE\x10\xdf/\x12\x18\n\x13GEO_EDGE_NOT_SMOOTH\x10\xe0/\x12\x1d\n\x18GEO_EDGE_LARGE_TOLERANCE\x10\xe1/\x12\x18\n\x13GEO_FACE_UNMESHABLE\x10\xc3\x30\x12\x1d\n\x18GEO_FACE_EDGES_TOO_CLOSE\x10\xc4\x30\x12\x1c\n\x17GEO_FACE_EDGE_TOO_SMALL\x10\xc5\x30\x12\x1f\n\x1aGEO_FACE_FACE_INTERSECTION\x10\xc6\x30\x12\x1f\n\x1aGEO_FACE_SELF_INTERSECTION\x10\xc7\x30\x12\x18\n\x13GEO_FACE_NOT_SMOOTH\x10\xc8\x30\x12\x1d\n\x18GEO_FACE_LARGE_TOLERANCE\x10\xc9\x30\x12\x18\n\x13GEO_FACE_EDGE_CROSS\x10\xca\x30\x12\x1b\n\x16GEO_FACE_NEEDS_IMPRINT\x10\xcb\x30\x12\x1e\n\x19GEO_CONTACT_NEEDS_IMPRINT\x10\xcc\x30\x12\x19\n\x14GEO_FACE_POOR_APPROX\x10\xcd\x30\x12\x14\n\x0fGEO_VOLUME_OPEN\x10\xa7\x31\x12\x1c\n\x17GEO_VOLUME_NON_MANIFOLD\x10\xa8\x31\x12\x1a\n\x15GEO_VOLUME_UNMESHABLE\x10\xa9\x31\x12%\n SOLVER_PARAM_EXCEEDS_LOWER_BOUND\x10\xd9\x36\x12%\n SOLVER_PARAM_EXCEEDS_UPPER_BOUND\x10\xda\x36\x12\x1c\n\x17SOLVER_INTERFACE_ISSUES\x10\xe2\x36\x12\x1e\n\x19GEO_FEATURE_UNKNOWN_ERROR\x10\x91N\x12\x18\n\x13GEO_INVALID_REQUEST\x10\x92N\x12 \n\x1bGEO_FEATURE_ONSHAPE_WARNING\x10\x93N\x12\x1d\n\x18\x41NALYZER_FIELD_NOT_FOUND\x10\xf9U\x12\x1e\n\x19\x41NALYZER_DEPENDENCY_ERROR\x10\xfaU\x12 \n\x1b\x41NALYZER_INVALID_EXPRESSION\x10\xfbU\x12\x1e\n\x19\x41NALYZER_ENTITY_NOT_FOUND\x10\xfcU\x12%\n ANALYZER_NO_DATA_FOR_ENTITY_TYPE\x10\xfdUB\'Z%luminarycloud.com/core/proto/lcstatusb\x06proto3')
|
|
19
19
|
|
|
20
20
|
_CODE = DESCRIPTOR.enum_types_by_name['Code']
|
|
21
21
|
Code = enum_type_wrapper.EnumTypeWrapper(_CODE)
|
|
@@ -44,6 +44,7 @@ SOLVER_PARAM_EXCEEDS_UPPER_BOUND = 7002
|
|
|
44
44
|
SOLVER_INTERFACE_ISSUES = 7010
|
|
45
45
|
GEO_FEATURE_UNKNOWN_ERROR = 10001
|
|
46
46
|
GEO_INVALID_REQUEST = 10002
|
|
47
|
+
GEO_FEATURE_ONSHAPE_WARNING = 10003
|
|
47
48
|
ANALYZER_FIELD_NOT_FOUND = 11001
|
|
48
49
|
ANALYZER_DEPENDENCY_ERROR = 11002
|
|
49
50
|
ANALYZER_INVALID_EXPRESSION = 11003
|
|
@@ -56,5 +57,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
56
57
|
DESCRIPTOR._options = None
|
|
57
58
|
DESCRIPTOR._serialized_options = b'Z%luminarycloud.com/core/proto/lcstatus'
|
|
58
59
|
_CODE._serialized_start=56
|
|
59
|
-
_CODE._serialized_end=
|
|
60
|
+
_CODE._serialized_end=973
|
|
60
61
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -125,6 +125,8 @@ class _CodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeW
|
|
|
125
125
|
"""Geometry worker feature request is invalid (i.e. invalid shape for
|
|
126
126
|
example).
|
|
127
127
|
"""
|
|
128
|
+
GEO_FEATURE_ONSHAPE_WARNING: _Code.ValueType # 10003
|
|
129
|
+
"""Geometry worker detected potential problems in the Onshape file"""
|
|
128
130
|
ANALYZER_FIELD_NOT_FOUND: _Code.ValueType # 11001
|
|
129
131
|
"""
|
|
130
132
|
Analyzer Codes - [11XXX]
|
|
@@ -251,6 +253,8 @@ GEO_INVALID_REQUEST: Code.ValueType # 10002
|
|
|
251
253
|
"""Geometry worker feature request is invalid (i.e. invalid shape for
|
|
252
254
|
example).
|
|
253
255
|
"""
|
|
256
|
+
GEO_FEATURE_ONSHAPE_WARNING: Code.ValueType # 10003
|
|
257
|
+
"""Geometry worker detected potential problems in the Onshape file"""
|
|
254
258
|
ANALYZER_FIELD_NOT_FOUND: Code.ValueType # 11001
|
|
255
259
|
"""
|
|
256
260
|
Analyzer Codes - [11XXX]
|
|
@@ -182,6 +182,10 @@ class QuantityType(IntEnum):
|
|
|
182
182
|
def _is_force(cls, quantity: "QuantityType") -> bool:
|
|
183
183
|
return quantity._has_tag(quantityoptspb.TAG_ANALYZER_FORCES)
|
|
184
184
|
|
|
185
|
+
@classmethod
|
|
186
|
+
def _is_coefficient(cls, quantity: "QuantityType") -> bool:
|
|
187
|
+
return quantity._has_tag(quantityoptspb.TAG_COEFFICIENT)
|
|
188
|
+
|
|
185
189
|
@classmethod
|
|
186
190
|
def _from_string(cls, quantity: str) -> "QuantityType":
|
|
187
191
|
return cls[quantity.upper()]
|
luminarycloud/enum/tables.py
CHANGED
|
@@ -31,6 +31,7 @@ class TableType(_IntEnum):
|
|
|
31
31
|
Material property (e.g. conductivity) vs temperature.
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
|
+
INVALID = _tablepb.INVALID
|
|
34
35
|
MONITOR_POINTS = _tablepb.MONITOR_POINTS
|
|
35
36
|
RADIAL_DISTRIBUTION = _tablepb.RADIAL_DISTRIBUTION
|
|
36
37
|
BLADE_GEOMETRY = _tablepb.BLADE_GEOMETRY
|
luminarycloud/enum/vis_enums.py
CHANGED
|
@@ -52,6 +52,25 @@ class VisQuantity(IntEnum):
|
|
|
52
52
|
SENSITIVITY = quantitypb.SENSITIVITY
|
|
53
53
|
NORMAL_SENSITIVITY = quantitypb.NORMAL_SENSITIVITY
|
|
54
54
|
SMOOTHED_NORMAL_SENSITIVITY = quantitypb.SMOOTHED_NORMAL_SENSITIVITY
|
|
55
|
+
# Time averaged
|
|
56
|
+
MACH_TIME_AVERAGE = quantitypb.MACH_TIME_AVERAGE
|
|
57
|
+
VELOCITY_TIME_AVERAGE = quantitypb.VELOCITY_TIME_AVERAGE
|
|
58
|
+
TEMPERATURE_TIME_AVERAGE = quantitypb.TEMPERATURE_TIME_AVERAGE
|
|
59
|
+
DENSITY_TIME_AVERAGE = quantitypb.DENSITY_TIME_AVERAGE
|
|
60
|
+
PRESSURE_TIME_AVERAGE = quantitypb.PRESSURE_TIME_AVERAGE
|
|
61
|
+
RELATIVE_VELOCITY_TIME_AVERAGE = quantitypb.RELATIVE_VELOCITY_TIME_AVERAGE
|
|
62
|
+
VELOCITY_MAGNITUDE_TIME_AVERAGE = quantitypb.VELOCITY_MAGNITUDE_TIME_AVERAGE
|
|
63
|
+
EDDY_VISCOSITY_TIME_AVERAGE = quantitypb.EDDY_VISCOSITY_TIME_AVERAGE
|
|
64
|
+
VISCOSITY_TIME_AVERAGE = quantitypb.VISCOSITY_TIME_AVERAGE
|
|
65
|
+
WALL_SHEAR_STRESS_TIME_AVERAGE = quantitypb.WALL_SHEAR_STRESS_TIME_AVERAGE
|
|
66
|
+
Y_PLUS_TIME_AVERAGE = quantitypb.Y_PLUS_TIME_AVERAGE
|
|
67
|
+
SA_VARIABLE_TIME_AVERAGE = quantitypb.SA_VARIABLE_TIME_AVERAGE
|
|
68
|
+
PRESSURE_COEFFICIENT_TIME_AVERAGE = quantitypb.PRESSURE_COEFFICIENT_TIME_AVERAGE
|
|
69
|
+
TOTAL_PRESSURE_TIME_AVERAGE = quantitypb.TOTAL_PRESSURE_TIME_AVERAGE
|
|
70
|
+
TOTAL_TEMPERATURE_TIME_AVERAGE = quantitypb.TOTAL_TEMPERATURE_TIME_AVERAGE
|
|
71
|
+
MASS_FLUX_TIME_AVERAGE = quantitypb.MASS_FLUX_TIME_AVERAGE
|
|
72
|
+
Q_CRITERION_TIME_AVERAGE = quantitypb.Q_CRITERION_TIME_AVERAGE
|
|
73
|
+
HEAT_FLUX_TIME_AVERAGE = quantitypb.HEAT_FLUX_TIME_AVERAGE
|
|
55
74
|
|
|
56
75
|
|
|
57
76
|
# Return the text name for the VisQuantity including the units, as it appears in the UI
|
|
@@ -122,6 +141,7 @@ class ColorMapPreset(IntEnum):
|
|
|
122
141
|
WAVE = vis_pb2.ColorMapName.COLOR_MAP_NAME_WAVE
|
|
123
142
|
COOL_TO_WARM = vis_pb2.ColorMapName.COLOR_MAP_NAME_COOL_TO_WARM
|
|
124
143
|
XRAY = vis_pb2.ColorMapName.COLOR_MAP_NAME_XRAY
|
|
144
|
+
PLASMA = vis_pb2.ColorMapName.COLOR_MAP_NAME_PLASMA
|
|
125
145
|
|
|
126
146
|
|
|
127
147
|
class CameraProjection(IntEnum):
|
|
@@ -12,7 +12,7 @@ from google.protobuf.internal.containers import RepeatedScalarFieldContainer
|
|
|
12
12
|
class FeatureOperationType(Enum):
|
|
13
13
|
"""Enum representing the type of operation in a Feature."""
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
IMPORT_GEOMETRY = auto()
|
|
16
16
|
CREATE = auto()
|
|
17
17
|
DELETE = auto()
|
|
18
18
|
UNION = auto()
|
|
@@ -73,7 +73,7 @@ def get_operation_type(feature: gpb.Feature) -> FeatureOperationType:
|
|
|
73
73
|
|
|
74
74
|
# Base operation map for simple one-to-one mappings
|
|
75
75
|
base_operation_map = {
|
|
76
|
-
"
|
|
76
|
+
"import_geometry": FeatureOperationType.IMPORT_GEOMETRY,
|
|
77
77
|
"create": FeatureOperationType.CREATE,
|
|
78
78
|
"delete": FeatureOperationType.DELETE,
|
|
79
79
|
"imprint": FeatureOperationType.IMPRINT,
|
|
@@ -165,21 +165,20 @@ def modify_import(
|
|
|
165
165
|
Returns:
|
|
166
166
|
A gpb.Modification object
|
|
167
167
|
"""
|
|
168
|
-
if get_operation_type(feature) != FeatureOperationType.
|
|
168
|
+
if get_operation_type(feature) != FeatureOperationType.IMPORT_GEOMETRY:
|
|
169
169
|
raise ValueError("Feature is not an import operation")
|
|
170
170
|
|
|
171
171
|
feature_copy = deepcopy(feature)
|
|
172
|
-
import_op = getattr(feature_copy, "import")
|
|
173
172
|
|
|
174
173
|
if geometry_url is not None:
|
|
175
174
|
# TODO(chiodi): Handle upload of file here.
|
|
176
|
-
|
|
175
|
+
feature_copy.import_geometry.geometry_url = geometry_url
|
|
177
176
|
|
|
178
177
|
if scaling is not None:
|
|
179
|
-
|
|
178
|
+
feature_copy.import_geometry.scaling = scaling
|
|
180
179
|
|
|
181
180
|
if force_discrete is not None:
|
|
182
|
-
|
|
181
|
+
feature_copy.import_geometry.force_discrete = force_discrete
|
|
183
182
|
|
|
184
183
|
return gpb.Modification(
|
|
185
184
|
mod_type=gpb.Modification.ModificationType.MODIFICATION_TYPE_UPDATE_FEATURE,
|
luminarycloud/geometry.py
CHANGED
|
@@ -554,6 +554,30 @@ class Geometry(ProtoWrapperBase):
|
|
|
554
554
|
res: geometrypb.GetGeometryResponse = get_default_client().GetGeometry(req)
|
|
555
555
|
self._proto = res.geometry
|
|
556
556
|
|
|
557
|
+
def to_code(self) -> str:
|
|
558
|
+
"""
|
|
559
|
+
Returns the python code that creates (from scratch) an identical geometry.
|
|
560
|
+
If the geometry has been modified, the code will be generated for the latest version of the
|
|
561
|
+
geometry.
|
|
562
|
+
|
|
563
|
+
Returns
|
|
564
|
+
-------
|
|
565
|
+
str
|
|
566
|
+
The SDK code that can be used to recreate this geometry.
|
|
567
|
+
|
|
568
|
+
Examples
|
|
569
|
+
--------
|
|
570
|
+
>>> geometry = lc.get_geometry("geometry-id")
|
|
571
|
+
>>> python_code = geometry.to_code()
|
|
572
|
+
>>> print(python_code)
|
|
573
|
+
"""
|
|
574
|
+
req = geometrypb.GetSdkCodeRequest(
|
|
575
|
+
geometry_id=self.id,
|
|
576
|
+
geometry_version_id="", # Use the latest version of the geometry by default
|
|
577
|
+
)
|
|
578
|
+
res: geometrypb.GetSdkCodeResponse = get_default_client().GetSdkCode(req)
|
|
579
|
+
return res.sdk_code
|
|
580
|
+
|
|
557
581
|
|
|
558
582
|
def get_geometry(id: str) -> Geometry:
|
|
559
583
|
"""
|
|
@@ -126,6 +126,29 @@ class GeometryVersion(ProtoWrapperBase):
|
|
|
126
126
|
)
|
|
127
127
|
return list(res.features_issues)
|
|
128
128
|
|
|
129
|
+
def to_code(self) -> str:
|
|
130
|
+
"""
|
|
131
|
+
Returns the Python code that creates (from scratch) an identical geometry of
|
|
132
|
+
this particular version.
|
|
133
|
+
|
|
134
|
+
Returns
|
|
135
|
+
-------
|
|
136
|
+
str
|
|
137
|
+
The SDK code that can be used to recreate this specific geometry version.
|
|
138
|
+
|
|
139
|
+
Examples
|
|
140
|
+
--------
|
|
141
|
+
>>> geometry_version = lc.get_geometry_version("version-id")
|
|
142
|
+
>>> python_code = geometry_version.to_code()
|
|
143
|
+
>>> print(python_code)
|
|
144
|
+
"""
|
|
145
|
+
req = geometrypb.GetSdkCodeRequest(
|
|
146
|
+
geometry_id=self.geometry_id,
|
|
147
|
+
geometry_version_id=self.id,
|
|
148
|
+
)
|
|
149
|
+
res: geometrypb.GetSdkCodeResponse = get_default_client().GetSdkCode(req)
|
|
150
|
+
return res.sdk_code
|
|
151
|
+
|
|
129
152
|
|
|
130
153
|
def get_geometry_version(id: str) -> GeometryVersion:
|
|
131
154
|
"""
|
|
@@ -22,7 +22,7 @@ from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_uniqu
|
|
|
22
22
|
class Adjoint(CodeRepr, ParamGroupWrapper[clientpb.Adjoint]):
|
|
23
23
|
"""Settings for adjoint sensitivity analysis."""
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
_output: Any | None = None
|
|
26
26
|
"Function to differentiate."
|
|
27
27
|
surfaces: list[str] = field(default_factory=list)
|
|
28
28
|
""
|
|
@@ -33,8 +33,8 @@ class Adjoint(CodeRepr, ParamGroupWrapper[clientpb.Adjoint]):
|
|
|
33
33
|
|
|
34
34
|
def _to_proto(self) -> clientpb.Adjoint:
|
|
35
35
|
_proto = clientpb.Adjoint()
|
|
36
|
-
if self.
|
|
37
|
-
_proto.adjoint_output.CopyFrom(self.
|
|
36
|
+
if self._output is not None:
|
|
37
|
+
_proto.adjoint_output.CopyFrom(self._output)
|
|
38
38
|
if self.surfaces is not None:
|
|
39
39
|
_proto.surfaces.extend(self.surfaces)
|
|
40
40
|
if self.deformed_coords_id is not None:
|
|
@@ -44,7 +44,7 @@ class Adjoint(CodeRepr, ParamGroupWrapper[clientpb.Adjoint]):
|
|
|
44
44
|
return _proto
|
|
45
45
|
|
|
46
46
|
def _from_proto(self, proto: clientpb.Adjoint) -> None:
|
|
47
|
-
self.
|
|
47
|
+
self._output = proto.adjoint_output
|
|
48
48
|
self.surfaces.extend(proto.surfaces)
|
|
49
49
|
self.deformed_coords_id = proto.deformed_coords_id
|
|
50
50
|
self.primal_simulation_id = proto.primal_simulation_id
|
|
@@ -85,7 +85,7 @@ class MaterialFluid(CodeRepr, ParamGroupWrapper[clientpb.MaterialFluid]):
|
|
|
85
85
|
"Model for the laminar thermal conductivity of a fluid. Possible types: ``PrescribedPrandtlNumber``, ``PrescribedConductivity``, ``TemperatureDependentConductivity`` from the ``thermal_conductivity_model`` module."
|
|
86
86
|
boussinesq_approximation: BoussinesqApproximation = field(default_factory=BoussinesqOn)
|
|
87
87
|
"Introduce a body force due to thermal expansion without modifying the material density. Possible types: ``BoussinesqOff``, ``BoussinesqOn`` from the ``boussinesq_approximation`` module."
|
|
88
|
-
preset: enum.MaterialFluidPreset = enum.MaterialFluidPreset.
|
|
88
|
+
preset: enum.MaterialFluidPreset = enum.MaterialFluidPreset.STANDARD_AIR
|
|
89
89
|
"Select a predefined set of material properties or allow a custom set of properties."
|
|
90
90
|
viscosity_model: ViscosityModel = field(default_factory=Sutherland)
|
|
91
91
|
"Models available for the dynamic viscosity of the fluid. Possible types: ``Sutherland``, ``PrescribedViscosity``, ``TemperatureDependentViscosity`` from the ``viscosity_model`` module."
|
|
@@ -30,7 +30,7 @@ class MaterialSolid(CodeRepr, ParamGroupWrapper[clientpb.MaterialSolid]):
|
|
|
30
30
|
"The thermal conductivity of the material."
|
|
31
31
|
thermal_conductivity_table: RectilinearTable | None = None
|
|
32
32
|
"Correlation between thermal conductivity and temperature."
|
|
33
|
-
preset: enum.MaterialSolidPreset = enum.MaterialSolidPreset.
|
|
33
|
+
preset: enum.MaterialSolidPreset = enum.MaterialSolidPreset.ALUMINUM
|
|
34
34
|
"Select a predefined set of material properties or allow a custom set of properties."
|
|
35
35
|
|
|
36
36
|
def _to_proto(self) -> clientpb.MaterialSolid:
|
|
@@ -22,7 +22,7 @@ from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_uniqu
|
|
|
22
22
|
class Output(CodeRepr, ParamGroupWrapper[clientpb.Output]):
|
|
23
23
|
"""Solution output settings."""
|
|
24
24
|
|
|
25
|
-
iters_per_output: int =
|
|
25
|
+
iters_per_output: int = 0
|
|
26
26
|
"Number of (pseudo) timesteps between successive full solution output. If ≤0, only the final solution is written."
|
|
27
27
|
include_residuals: bool = False
|
|
28
28
|
"Include the residuals for each equation in the volume solution."
|
|
@@ -19,6 +19,10 @@ from luminarycloud.params.simulation._lib import ParamGroupWrapper, create_uniqu
|
|
|
19
19
|
|
|
20
20
|
from luminarycloud.params.simulation.physics.fluid.initialization_fluid_ import InitializationFluid
|
|
21
21
|
from luminarycloud.params.simulation.physics.fluid.initialization_fluid_ import *
|
|
22
|
+
from luminarycloud.params.simulation.physics.fluid.initialization.turbulence_initialization_ import (
|
|
23
|
+
TurbulenceInitialization,
|
|
24
|
+
)
|
|
25
|
+
from luminarycloud.params.simulation.physics.fluid.initialization.turbulence_initialization_ import *
|
|
22
26
|
|
|
23
27
|
|
|
24
28
|
@dataclass(kw_only=True)
|
|
@@ -27,16 +31,40 @@ class FluidExistingSolution(InitializationFluid):
|
|
|
27
31
|
|
|
28
32
|
solution_id: str = ""
|
|
29
33
|
"ID for the existing solution to use for initialization."
|
|
34
|
+
turbulence: TurbulenceInitialization = field(default_factory=TurbulenceInitialization)
|
|
35
|
+
""
|
|
30
36
|
|
|
31
37
|
def _to_proto(self) -> clientpb.InitializationFluid:
|
|
32
38
|
_proto = super()._to_proto()
|
|
33
39
|
_proto.initialization_type = clientpb.InitializationType.EXISTING_SOLUTION
|
|
34
40
|
if self.solution_id is not None:
|
|
35
41
|
_proto.existing_solution_id = self.solution_id
|
|
42
|
+
_proto.turbulent_variable_initialization_type_sa = self.turbulence.spalart_allmaras.value
|
|
43
|
+
_proto.turbulent_variable_initialization_type_komega = self.turbulence.komega.value
|
|
44
|
+
_proto.init_turbulent_viscosity_ratio.CopyFrom(
|
|
45
|
+
_to_ad_proto(self.turbulence.viscosity_ratio)
|
|
46
|
+
)
|
|
47
|
+
_proto.init_turbulent_viscosity.CopyFrom(_to_ad_proto(self.turbulence.viscosity))
|
|
48
|
+
_proto.init_turbulence_intensity.CopyFrom(_to_ad_proto(self.turbulence.intensity))
|
|
49
|
+
_proto.uniform_nu_tilde.CopyFrom(_to_ad_proto(self.turbulence.sa_variable))
|
|
50
|
+
_proto.uniform_tke.CopyFrom(_to_ad_proto(self.turbulence.tke))
|
|
51
|
+
_proto.uniform_omega.CopyFrom(_to_ad_proto(self.turbulence.omega))
|
|
36
52
|
return _proto
|
|
37
53
|
|
|
38
54
|
def _from_proto(self, proto: clientpb.InitializationFluid) -> None:
|
|
39
55
|
super()._from_proto(proto)
|
|
40
56
|
assert proto.initialization_type == clientpb.InitializationType.EXISTING_SOLUTION
|
|
41
57
|
self.solution_id = proto.existing_solution_id
|
|
58
|
+
self.turbulence.spalart_allmaras = enum.TurbulentVariableInitializationTypeSa(
|
|
59
|
+
proto.turbulent_variable_initialization_type_sa
|
|
60
|
+
)
|
|
61
|
+
self.turbulence.komega = enum.TurbulentVariableInitializationTypeKomega(
|
|
62
|
+
proto.turbulent_variable_initialization_type_komega
|
|
63
|
+
)
|
|
64
|
+
self.turbulence.viscosity_ratio = _from_ad_proto(proto.init_turbulent_viscosity_ratio)
|
|
65
|
+
self.turbulence.viscosity = _from_ad_proto(proto.init_turbulent_viscosity)
|
|
66
|
+
self.turbulence.intensity = _from_ad_proto(proto.init_turbulence_intensity)
|
|
67
|
+
self.turbulence.sa_variable = _from_ad_proto(proto.uniform_nu_tilde)
|
|
68
|
+
self.turbulence.tke = _from_ad_proto(proto.uniform_tke)
|
|
69
|
+
self.turbulence.omega = _from_ad_proto(proto.uniform_omega)
|
|
42
70
|
return None
|
|
@@ -77,6 +77,8 @@ class SimulationParam(CodeRepr, ParamGroupWrapper[clientpb.SimulationParam]):
|
|
|
77
77
|
"Body frame."
|
|
78
78
|
surface_name: dict[str, SurfaceName] = field(default_factory=dict)
|
|
79
79
|
"Surface name map."
|
|
80
|
+
_table_references: dict[str, Any] = field(default_factory=dict)
|
|
81
|
+
"Solution inputs - metadata for general n-dimensional rectilinear grid data (Monitor points, radial distribution, blade geometry, airfoil performance)."
|
|
80
82
|
output: Output = field(default_factory=Output)
|
|
81
83
|
"Solution output settings."
|
|
82
84
|
entity_relationships: EntityRelationships = field(default_factory=EntityRelationships)
|
|
@@ -115,6 +117,9 @@ class SimulationParam(CodeRepr, ParamGroupWrapper[clientpb.SimulationParam]):
|
|
|
115
117
|
if self.surface_name is not None:
|
|
116
118
|
for k, v in self.surface_name.items():
|
|
117
119
|
_proto.surface_name[k].CopyFrom(v._to_proto())
|
|
120
|
+
if self._table_references is not None:
|
|
121
|
+
for k, v in self._table_references.items():
|
|
122
|
+
_proto.table_references[k].CopyFrom(v)
|
|
118
123
|
if self.output is not None:
|
|
119
124
|
_proto.output.CopyFrom(self.output._to_proto())
|
|
120
125
|
if self.entity_relationships is not None:
|
|
@@ -140,6 +145,7 @@ class SimulationParam(CodeRepr, ParamGroupWrapper[clientpb.SimulationParam]):
|
|
|
140
145
|
self.monitor_plane = [MonitorPlane.from_proto(v) for v in proto.monitor_plane]
|
|
141
146
|
self.body_frame = BodyFrame.from_proto(proto.body_frame)
|
|
142
147
|
self.surface_name = {k: SurfaceName.from_proto(v) for k, v in proto.surface_name.items()}
|
|
148
|
+
self._table_references.update(proto.table_references)
|
|
143
149
|
self.output = Output.from_proto(proto.output)
|
|
144
150
|
self.entity_relationships = EntityRelationships.from_proto(proto.entity_relationships)
|
|
145
151
|
self.adaptive_mesh_refinement = AdaptiveMeshRefinement.from_proto(
|
luminarycloud/project.py
CHANGED
|
@@ -39,6 +39,7 @@ from ._proto.api.v0.luminarycloud.simulation_template import (
|
|
|
39
39
|
simulation_template_pb2 as simtemplatepb,
|
|
40
40
|
)
|
|
41
41
|
from ._proto.client import simulation_pb2 as clientpb
|
|
42
|
+
from ._proto.table import table_pb2 as tablepb
|
|
42
43
|
from ._proto.hexmesh import hexmesh_pb2 as hexmeshpb
|
|
43
44
|
from ._proto.upload import upload_pb2 as uploadpb
|
|
44
45
|
from ._wrapper import ProtoWrapper, ProtoWrapperBase
|
|
@@ -440,13 +441,14 @@ class Project(ProtoWrapperBase):
|
|
|
440
441
|
raise RuntimeError("The table upload failed.")
|
|
441
442
|
|
|
442
443
|
# Update the simulation template with the new table reference.
|
|
443
|
-
params:
|
|
444
|
-
params.
|
|
445
|
-
params.
|
|
446
|
-
params.
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
444
|
+
params: SimulationParam = simulation_template.get_parameters()
|
|
445
|
+
params._table_references[name] = tablepb.Metadata()
|
|
446
|
+
params._table_references[name].url = url
|
|
447
|
+
params._table_references[name].table_type = table_type.value
|
|
448
|
+
params._table_references[name].uploaded_filename = uploaded_filename
|
|
449
|
+
simulation_template.update(parameters=params)
|
|
450
|
+
# The name is lost in to/from proto conversions so make it equal to the id for consistency.
|
|
451
|
+
return RectilinearTable(id=name, name=name, table_type=table_type)
|
|
450
452
|
|
|
451
453
|
@experimental
|
|
452
454
|
def set_surface_deformation(
|