luminarycloud 0.18.0__py3-none-any.whl → 0.19.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. luminarycloud/__init__.py +4 -0
  2. luminarycloud/_client/client.py +21 -5
  3. luminarycloud/_client/http_client.py +168 -0
  4. luminarycloud/_client/rpc_error.py +1 -0
  5. luminarycloud/_client/tracing.py +72 -22
  6. luminarycloud/_helpers/_wait_for_mesh.py +5 -7
  7. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.py +8 -8
  8. luminarycloud/_proto/api/v0/luminarycloud/inference/inference_pb2.pyi +9 -8
  9. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +88 -55
  10. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +108 -1
  11. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +35 -0
  12. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +16 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.py +70 -40
  14. luminarycloud/_proto/api/v0/luminarycloud/thirdpartyintegration/onshape/onshape_pb2.pyi +64 -3
  15. luminarycloud/_proto/client/simulation_pb2.py +273 -269
  16. luminarycloud/_proto/client/simulation_pb2.pyi +23 -7
  17. luminarycloud/_proto/inferenceservice/inferenceservice_pb2.py +10 -10
  18. luminarycloud/_proto/inferenceservice/inferenceservice_pb2.pyi +9 -8
  19. luminarycloud/_proto/output/output_pb2.py +43 -36
  20. luminarycloud/_proto/output/output_pb2.pyi +28 -1
  21. luminarycloud/_proto/quantity/quantity_options_pb2.py +5 -4
  22. luminarycloud/_proto/quantity/quantity_options_pb2.pyi +4 -0
  23. luminarycloud/_proto/quantity/quantity_pb2.py +8 -8
  24. luminarycloud/enum/__init__.py +1 -0
  25. luminarycloud/enum/moment_convention_type.py +19 -0
  26. luminarycloud/enum/quantity_type.py +13 -0
  27. luminarycloud/exceptions.py +6 -0
  28. luminarycloud/outputs/output_definitions.py +5 -0
  29. luminarycloud/params/enum/_enum_wrappers.py +3 -2
  30. luminarycloud/params/simulation/monitor_plane_.py +1 -1
  31. luminarycloud/params/simulation/sliding_interfaces_.py +8 -0
  32. luminarycloud/physics_ai/inference.py +42 -26
  33. luminarycloud/pipelines/api.py +49 -102
  34. luminarycloud/pipelines/operators.py +4 -4
  35. luminarycloud/project.py +16 -44
  36. luminarycloud/simulation.py +6 -0
  37. luminarycloud/simulation_param.py +4 -2
  38. luminarycloud/simulation_queue.py +130 -0
  39. luminarycloud/simulation_template.py +6 -1
  40. luminarycloud/tables.py +14 -15
  41. luminarycloud/types/adfloat.py +3 -0
  42. luminarycloud/vis/interactive_scene.py +14 -1
  43. luminarycloud/vis/visualization.py +18 -2
  44. {luminarycloud-0.18.0.dist-info → luminarycloud-0.19.0.dist-info}/METADATA +1 -1
  45. {luminarycloud-0.18.0.dist-info → luminarycloud-0.19.0.dist-info}/RECORD +46 -48
  46. luminarycloud/_proto/api/v0/luminarycloud/pipelines/pipelines_pb2.py +0 -246
  47. luminarycloud/_proto/api/v0/luminarycloud/pipelines/pipelines_pb2.pyi +0 -420
  48. luminarycloud/_proto/api/v0/luminarycloud/pipelines/pipelines_pb2_grpc.py +0 -240
  49. luminarycloud/_proto/api/v0/luminarycloud/pipelines/pipelines_pb2_grpc.pyi +0 -90
  50. luminarycloud/enum/pipeline_job_status.py +0 -23
  51. {luminarycloud-0.18.0.dist-info → luminarycloud-0.19.0.dist-info}/WHEEL +0 -0
@@ -1515,8 +1515,9 @@ class _InterfaceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._
1515
1515
  DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
1516
1516
  INVALID_INTERFACE_TYPE: _InterfaceType.ValueType # 0
1517
1517
  GENERAL_INTERFACE: _InterfaceType.ValueType # 53698
1518
- """Automatic treatment based on geometry and settings (general
1519
- interface, or frozen rotor, or sliding interface).
1518
+ """Automatic treatment based on geometry and settings. General
1519
+ interface, frozen rotor, or sliding interface for fluids. General interface
1520
+ with contact resistance for solids.
1520
1521
  """
1521
1522
  MIXING_PLANE_INTERFACE: _InterfaceType.ValueType # 44970
1522
1523
  """Imposes a pitchwise average of the variables on either side of the interface."""
@@ -1525,8 +1526,9 @@ class InterfaceType(_InterfaceType, metaclass=_InterfaceTypeEnumTypeWrapper): ..
1525
1526
 
1526
1527
  INVALID_INTERFACE_TYPE: InterfaceType.ValueType # 0
1527
1528
  GENERAL_INTERFACE: InterfaceType.ValueType # 53698
1528
- """Automatic treatment based on geometry and settings (general
1529
- interface, or frozen rotor, or sliding interface).
1529
+ """Automatic treatment based on geometry and settings. General
1530
+ interface, frozen rotor, or sliding interface for fluids. General interface
1531
+ with contact resistance for solids.
1530
1532
  """
1531
1533
  MIXING_PLANE_INTERFACE: InterfaceType.ValueType # 44970
1532
1534
  """Imposes a pitchwise average of the variables on either side of the interface."""
@@ -4303,6 +4305,8 @@ class SlidingInterfaces(google.protobuf.message.Message):
4303
4305
  SLIDING_MATCHING_PERIODIC_ROTATION_ANGLES_FIELD_NUMBER: builtins.int
4304
4306
  SLIDING_MATCHING_PERIODIC_CENTER_OF_ROTATION_FIELD_NUMBER: builtins.int
4305
4307
  INTERFACE_TYPE_FIELD_NUMBER: builtins.int
4308
+ THERMAL_INTERFACE_MATERIAL_THICKNESS_FIELD_NUMBER: builtins.int
4309
+ THERMAL_INTERFACE_MATERIAL_CONDUCTIVITY_FIELD_NUMBER: builtins.int
4306
4310
  sliding_interface_id: builtins.str
4307
4311
  """ID of the sliding interface"""
4308
4312
  sliding_interface_name: builtins.str
@@ -4332,6 +4336,12 @@ class SlidingInterfaces(google.protobuf.message.Message):
4332
4336
  """
4333
4337
  interface_type: global___InterfaceType.ValueType
4334
4338
  """Type of interface treatment"""
4339
+ @property
4340
+ def thermal_interface_material_thickness(self) -> luminarycloud._proto.base.base_pb2.AdFloatType:
4341
+ """Thickness of the thermal interface material (TIM). Zero thickness implies perfect contact."""
4342
+ @property
4343
+ def thermal_interface_material_conductivity(self) -> luminarycloud._proto.base.base_pb2.AdFloatType:
4344
+ """Thermal conductivity of the thermal interface material (TIM)."""
4335
4345
  def __init__(
4336
4346
  self,
4337
4347
  *,
@@ -4343,9 +4353,11 @@ class SlidingInterfaces(google.protobuf.message.Message):
4343
4353
  sliding_matching_periodic_rotation_angles: luminarycloud._proto.base.base_pb2.AdVector3 | None = ...,
4344
4354
  sliding_matching_periodic_center_of_rotation: luminarycloud._proto.base.base_pb2.AdVector3 | None = ...,
4345
4355
  interface_type: global___InterfaceType.ValueType = ...,
4356
+ thermal_interface_material_thickness: luminarycloud._proto.base.base_pb2.AdFloatType | None = ...,
4357
+ thermal_interface_material_conductivity: luminarycloud._proto.base.base_pb2.AdFloatType | None = ...,
4346
4358
  ) -> None: ...
4347
- def HasField(self, field_name: typing_extensions.Literal["sliding_matching_periodic_center_of_rotation", b"sliding_matching_periodic_center_of_rotation", "sliding_matching_periodic_rotation_angles", b"sliding_matching_periodic_rotation_angles", "sliding_matching_translation_transform", b"sliding_matching_translation_transform"]) -> builtins.bool: ...
4348
- def ClearField(self, field_name: typing_extensions.Literal["interface_type", b"interface_type", "sliding_a", b"sliding_a", "sliding_b", b"sliding_b", "sliding_interface_id", b"sliding_interface_id", "sliding_interface_name", b"sliding_interface_name", "sliding_matching_periodic_center_of_rotation", b"sliding_matching_periodic_center_of_rotation", "sliding_matching_periodic_rotation_angles", b"sliding_matching_periodic_rotation_angles", "sliding_matching_translation_transform", b"sliding_matching_translation_transform"]) -> None: ...
4359
+ def HasField(self, field_name: typing_extensions.Literal["sliding_matching_periodic_center_of_rotation", b"sliding_matching_periodic_center_of_rotation", "sliding_matching_periodic_rotation_angles", b"sliding_matching_periodic_rotation_angles", "sliding_matching_translation_transform", b"sliding_matching_translation_transform", "thermal_interface_material_conductivity", b"thermal_interface_material_conductivity", "thermal_interface_material_thickness", b"thermal_interface_material_thickness"]) -> builtins.bool: ...
4360
+ def ClearField(self, field_name: typing_extensions.Literal["interface_type", b"interface_type", "sliding_a", b"sliding_a", "sliding_b", b"sliding_b", "sliding_interface_id", b"sliding_interface_id", "sliding_interface_name", b"sliding_interface_name", "sliding_matching_periodic_center_of_rotation", b"sliding_matching_periodic_center_of_rotation", "sliding_matching_periodic_rotation_angles", b"sliding_matching_periodic_rotation_angles", "sliding_matching_translation_transform", b"sliding_matching_translation_transform", "thermal_interface_material_conductivity", b"thermal_interface_material_conductivity", "thermal_interface_material_thickness", b"thermal_interface_material_thickness"]) -> None: ...
4349
4361
 
4350
4362
  global___SlidingInterfaces = SlidingInterfaces
4351
4363
 
@@ -6102,6 +6114,7 @@ class SimulationParam(google.protobuf.message.Message):
6102
6114
  SCHEMA_FIELD_NUMBER: builtins.int
6103
6115
  UNITS_FIELD_NUMBER: builtins.int
6104
6116
  NAMED_VARIABLE_FIELD_NUMBER: builtins.int
6117
+ NAMED_VARIABLE_SET_VERSION_ID_FIELD_NUMBER: builtins.int
6105
6118
  INPUT_FIELD_NUMBER: builtins.int
6106
6119
  MATERIAL_ENTITY_FIELD_NUMBER: builtins.int
6107
6120
  VOLUME_ENTITY_FIELD_NUMBER: builtins.int
@@ -6132,6 +6145,8 @@ class SimulationParam(google.protobuf.message.Message):
6132
6145
  @property
6133
6146
  def named_variable(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, luminarycloud._proto.base.base_pb2.AdFloatType]:
6134
6147
  """User defined variables."""
6148
+ named_variable_set_version_id: builtins.str
6149
+ """Version id of the named variable set"""
6135
6150
  @property
6136
6151
  def input(self) -> global___Input:
6137
6152
  """Mesh file URL used to run the simulation."""
@@ -6209,6 +6224,7 @@ class SimulationParam(google.protobuf.message.Message):
6209
6224
  schema: builtins.str = ...,
6210
6225
  units: global___Units | None = ...,
6211
6226
  named_variable: collections.abc.Mapping[builtins.str, luminarycloud._proto.base.base_pb2.AdFloatType] | None = ...,
6227
+ named_variable_set_version_id: builtins.str = ...,
6212
6228
  input: global___Input | None = ...,
6213
6229
  material_entity: collections.abc.Iterable[global___MaterialEntity] | None = ...,
6214
6230
  volume_entity: collections.abc.Iterable[global___VolumeEntity] | None = ...,
@@ -6233,6 +6249,6 @@ class SimulationParam(google.protobuf.message.Message):
6233
6249
  mp_coupling_options: global___MultiPhysicsCouplingOptions | None = ...,
6234
6250
  ) -> None: ...
6235
6251
  def HasField(self, field_name: typing_extensions.Literal["adaptive_mesh_refinement", b"adaptive_mesh_refinement", "adjoint", b"adjoint", "body_frame", b"body_frame", "convergence_criteria", b"convergence_criteria", "entity_relationships", b"entity_relationships", "general", b"general", "input", b"input", "mp_coupling_options", b"mp_coupling_options", "nonlinear_control", b"nonlinear_control", "output", b"output", "reference_values", b"reference_values", "time", b"time", "units", b"units"]) -> builtins.bool: ...
6236
- def ClearField(self, field_name: typing_extensions.Literal["adaptive_mesh_refinement", b"adaptive_mesh_refinement", "adjoint", b"adjoint", "body_frame", b"body_frame", "convergence_criteria", b"convergence_criteria", "entity_relationships", b"entity_relationships", "general", b"general", "input", b"input", "interfaces", b"interfaces", "material_entity", b"material_entity", "monitor_plane", b"monitor_plane", "motion_data", b"motion_data", "mp_coupling_options", b"mp_coupling_options", "named_variable", b"named_variable", "nonlinear_control", b"nonlinear_control", "output", b"output", "particle_group", b"particle_group", "physics", b"physics", "reference_values", b"reference_values", "schema", b"schema", "surface_name", b"surface_name", "table", b"table", "table_references", b"table_references", "time", b"time", "units", b"units", "volume_entity", b"volume_entity"]) -> None: ...
6252
+ def ClearField(self, field_name: typing_extensions.Literal["adaptive_mesh_refinement", b"adaptive_mesh_refinement", "adjoint", b"adjoint", "body_frame", b"body_frame", "convergence_criteria", b"convergence_criteria", "entity_relationships", b"entity_relationships", "general", b"general", "input", b"input", "interfaces", b"interfaces", "material_entity", b"material_entity", "monitor_plane", b"monitor_plane", "motion_data", b"motion_data", "mp_coupling_options", b"mp_coupling_options", "named_variable", b"named_variable", "named_variable_set_version_id", b"named_variable_set_version_id", "nonlinear_control", b"nonlinear_control", "output", b"output", "particle_group", b"particle_group", "physics", b"physics", "reference_values", b"reference_values", "schema", b"schema", "surface_name", b"surface_name", "table", b"table", "table_references", b"table_references", "time", b"time", "units", b"units", "volume_entity", b"volume_entity"]) -> None: ...
6237
6253
 
6238
6254
  global___SimulationParam = SimulationParam
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from luminarycloud._proto.base import base_pb2 as proto_dot_base_dot_base__pb2
16
16
 
17
17
 
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-proto/inferenceservice/inferenceservice.proto\x12\x1fluminary.proto.inferenceservice\x1a\x15proto/base/base.proto\"\xa9\x01\n CreateInferenceServiceJobRequest\x12\x14\n\x0c\x61rtifact_url\x18\x01 \x01(\t\x12\x0f\n\x07stl_url\x18\x02 \x01(\t\x12\x12\n\nparameters\x18\x03 \x01(\x0c\x12\x14\n\x0cstencil_size\x18\x04 \x01(\x05\x12\x12\n\nproject_id\x18\x05 \x01(\t\x12 \n\x18write_visualization_data\x18\x06 \x01(\x08\"5\n!CreateInferenceServiceJobResponse\x12\x10\n\x08response\x18\x01 \x01(\x0c\"*\n\x1bPingInferenceServiceRequest\x12\x0b\n\x03msg\x18\x01 \x01(\t\"+\n\x1cPingInferenceServiceResponse\x12\x0b\n\x03msg\x18\x01 \x01(\t2\xcd\x02\n\x10InferenceService\x12\xa2\x01\n\x19\x43reateInferenceServiceJob\x12\x41.luminary.proto.inferenceservice.CreateInferenceServiceJobRequest\x1a\x42.luminary.proto.inferenceservice.CreateInferenceServiceJobResponse\x12\x93\x01\n\x14PingInferenceService\x12<.luminary.proto.inferenceservice.PingInferenceServiceRequest\x1a=.luminary.proto.inferenceservice.PingInferenceServiceResponseB/Z-luminarycloud.com/core/proto/inferenceserviceb\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n-proto/inferenceservice/inferenceservice.proto\x12\x1fluminary.proto.inferenceservice\x1a\x15proto/base/base.proto\"\xab\x01\n CreateInferenceServiceJobRequest\x12\x14\n\x0c\x61rtifact_url\x18\x01 \x01(\t\x12\x0f\n\x07stl_url\x18\x02 \x01(\t\x12\x10\n\x08settings\x18\x07 \x01(\x0c\x12\x12\n\nconditions\x18\x03 \x01(\x0c\x12\x12\n\nproject_id\x18\x05 \x01(\t\x12 \n\x18write_visualization_data\x18\x06 \x01(\x08J\x04\x08\x04\x10\x05\"5\n!CreateInferenceServiceJobResponse\x12\x10\n\x08response\x18\x01 \x01(\x0c\"*\n\x1bPingInferenceServiceRequest\x12\x0b\n\x03msg\x18\x01 \x01(\t\"+\n\x1cPingInferenceServiceResponse\x12\x0b\n\x03msg\x18\x01 \x01(\t2\xcd\x02\n\x10InferenceService\x12\xa2\x01\n\x19\x43reateInferenceServiceJob\x12\x41.luminary.proto.inferenceservice.CreateInferenceServiceJobRequest\x1a\x42.luminary.proto.inferenceservice.CreateInferenceServiceJobResponse\x12\x93\x01\n\x14PingInferenceService\x12<.luminary.proto.inferenceservice.PingInferenceServiceRequest\x1a=.luminary.proto.inferenceservice.PingInferenceServiceResponseB/Z-luminarycloud.com/core/proto/inferenceserviceb\x06proto3')
19
19
 
20
20
 
21
21
 
@@ -57,13 +57,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
57
57
  DESCRIPTOR._options = None
58
58
  DESCRIPTOR._serialized_options = b'Z-luminarycloud.com/core/proto/inferenceservice'
59
59
  _CREATEINFERENCESERVICEJOBREQUEST._serialized_start=106
60
- _CREATEINFERENCESERVICEJOBREQUEST._serialized_end=275
61
- _CREATEINFERENCESERVICEJOBRESPONSE._serialized_start=277
62
- _CREATEINFERENCESERVICEJOBRESPONSE._serialized_end=330
63
- _PINGINFERENCESERVICEREQUEST._serialized_start=332
64
- _PINGINFERENCESERVICEREQUEST._serialized_end=374
65
- _PINGINFERENCESERVICERESPONSE._serialized_start=376
66
- _PINGINFERENCESERVICERESPONSE._serialized_end=419
67
- _INFERENCESERVICE._serialized_start=422
68
- _INFERENCESERVICE._serialized_end=755
60
+ _CREATEINFERENCESERVICEJOBREQUEST._serialized_end=277
61
+ _CREATEINFERENCESERVICEJOBRESPONSE._serialized_start=279
62
+ _CREATEINFERENCESERVICEJOBRESPONSE._serialized_end=332
63
+ _PINGINFERENCESERVICEREQUEST._serialized_start=334
64
+ _PINGINFERENCESERVICEREQUEST._serialized_end=376
65
+ _PINGINFERENCESERVICERESPONSE._serialized_start=378
66
+ _PINGINFERENCESERVICERESPONSE._serialized_end=421
67
+ _INFERENCESERVICE._serialized_start=424
68
+ _INFERENCESERVICE._serialized_end=757
69
69
  # @@protoc_insertion_point(module_scope)
@@ -19,16 +19,17 @@ class CreateInferenceServiceJobRequest(google.protobuf.message.Message):
19
19
 
20
20
  ARTIFACT_URL_FIELD_NUMBER: builtins.int
21
21
  STL_URL_FIELD_NUMBER: builtins.int
22
- PARAMETERS_FIELD_NUMBER: builtins.int
23
- STENCIL_SIZE_FIELD_NUMBER: builtins.int
22
+ SETTINGS_FIELD_NUMBER: builtins.int
23
+ CONDITIONS_FIELD_NUMBER: builtins.int
24
24
  PROJECT_ID_FIELD_NUMBER: builtins.int
25
25
  WRITE_VISUALIZATION_DATA_FIELD_NUMBER: builtins.int
26
26
  artifact_url: builtins.str
27
27
  """Eventually should be a model version id"""
28
28
  stl_url: builtins.str
29
- parameters: builtins.bytes
30
- """JSON encoded parameters, like alpha, beta, etc."""
31
- stencil_size: builtins.int
29
+ settings: builtins.bytes
30
+ """JSON encoded settings, like stencil_size."""
31
+ conditions: builtins.bytes
32
+ """JSON encoded conditions, like alpha, beta, etc."""
32
33
  project_id: builtins.str
33
34
  write_visualization_data: builtins.bool
34
35
  def __init__(
@@ -36,12 +37,12 @@ class CreateInferenceServiceJobRequest(google.protobuf.message.Message):
36
37
  *,
37
38
  artifact_url: builtins.str = ...,
38
39
  stl_url: builtins.str = ...,
39
- parameters: builtins.bytes = ...,
40
- stencil_size: builtins.int = ...,
40
+ settings: builtins.bytes = ...,
41
+ conditions: builtins.bytes = ...,
41
42
  project_id: builtins.str = ...,
42
43
  write_visualization_data: builtins.bool = ...,
43
44
  ) -> None: ...
44
- def ClearField(self, field_name: typing_extensions.Literal["artifact_url", b"artifact_url", "parameters", b"parameters", "project_id", b"project_id", "stencil_size", b"stencil_size", "stl_url", b"stl_url", "write_visualization_data", b"write_visualization_data"]) -> None: ...
45
+ def ClearField(self, field_name: typing_extensions.Literal["artifact_url", b"artifact_url", "conditions", b"conditions", "project_id", b"project_id", "settings", b"settings", "stl_url", b"stl_url", "write_visualization_data", b"write_visualization_data"]) -> None: ...
45
46
 
46
47
  global___CreateInferenceServiceJobRequest = CreateInferenceServiceJobRequest
47
48
 
@@ -17,7 +17,7 @@ from luminarycloud._proto.base import base_pb2 as proto_dot_base_dot_base__pb2
17
17
  from luminarycloud._proto.quantity import quantity_pb2 as proto_dot_quantity_dot_quantity__pb2
18
18
 
19
19
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19proto/output/output.proto\x12\x15luminary.proto.output\x1a\x15proto/base/base.proto\x1a\x1dproto/quantity/quantity.proto\"\xd4\x01\n\x0f\x46orceProperties\x12\x41\n\x0e\x66orce_dir_type\x18\x01 \x01(\x0e\x32).luminary.proto.output.ForceDirectionType\x12\x37\n\x0f\x66orce_direction\x18\x02 \x01(\x0b\x32\x1e.luminary.proto.base.AdVector3\x12\x35\n\rmoment_center\x18\x03 \x01(\x0b\x32\x1e.luminary.proto.base.AdVector3\x12\x0e\n\x06porous\x18\x04 \x01(\x08\"^\n\x12ResidualProperties\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.luminary.proto.output.ResidualType\x12\x15\n\rphysics_index\x18\x02 \x01(\r\"]\n\x18SurfaceAverageProperties\x12\x41\n\x0e\x61veraging_type\x18\x01 \x01(\x0e\x32).luminary.proto.output.SpaceAveragingType\"_\n\x19VolumeReductionProperties\x12\x42\n\x0ereduction_type\x18\x01 \x01(\x0e\x32*.luminary.proto.output.VolumeReductionType\",\n\x0eIterationRange\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\r\x12\x0b\n\x03\x65nd\x18\x02 \x01(\r\"\x0b\n\tBasicType\"\x10\n\x0ePointProbeType\"V\n\x0b\x44\x65rivedType\x12\x12\n\nexpression\x18\x01 \x01(\t\x12\x33\n\x0c\x64\x65pendencies\x18\x02 \x03(\x0b\x32\x1d.luminary.proto.output.Output\"\xaf\x07\n\x06Output\x12\x37\n\x08quantity\x18\x01 \x01(\x0e\x32%.luminary.proto.quantity.QuantityType\x12?\n\x10vector_component\x18\x13 \x01(\x0e\x32%.luminary.proto.base.Vector3Component\x12\n\n\x02id\x18\x02 \x01(\t\x12\x13\n\x0bin_surfaces\x18\x04 \x03(\t\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x12\n\nshort_name\x18\x0c \x01(\t\x12>\n\rtime_analysis\x18\x07 \x01(\x0e\x32\'.luminary.proto.output.TimeAnalysisType\x12\x42\n\x10\x66orce_properties\x18\x08 \x01(\x0b\x32&.luminary.proto.output.ForcePropertiesH\x00\x12U\n\x1asurface_average_properties\x18\t \x01(\x0b\x32/.luminary.proto.output.SurfaceAveragePropertiesH\x00\x12H\n\x13residual_properties\x18\n \x01(\x0b\x32).luminary.proto.output.ResidualPropertiesH\x00\x12<\n\x10\x62\x61sic_properties\x18\r \x01(\x0b\x32 .luminary.proto.output.BasicTypeH\x00\x12\x41\n\x10probe_properties\x18\x0e \x01(\x0b\x32%.luminary.proto.output.PointProbeTypeH\x00\x12@\n\x12\x64\x65rived_properties\x18\x14 \x01(\x0b\x32\".luminary.proto.output.DerivedTypeH\x00\x12W\n\x1bvolume_reduction_properties\x18\x15 \x01(\x0b\x32\x30.luminary.proto.output.VolumeReductionPropertiesH\x00\x12\x34\n\x05range\x18\x0b \x01(\x0b\x32%.luminary.proto.output.IterationRange\x12\x11\n\tavg_iters\x18\x0f \x01(\x05\x12\x16\n\x0e\x61nalysis_iters\x18\x10 \x01(\x05\x12\x10\n\x08\x66rame_id\x18\x11 \x01(\t\x12\x13\n\x0binner_iters\x18\x12 \x01(\x08\x42\x13\n\x11output_propertiesJ\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06\"R\n\x06Result\x12\x30\n\x06values\x18\x05 \x03(\x0b\x32 .luminary.proto.base.AdFloatTypeJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"\xaf\x01\n\x11StoppingCondition\x12-\n\x06output\x18\x01 \x01(\x0b\x32\x1d.luminary.proto.output.Output\x12\x33\n\tthreshold\x18\x02 \x01(\x0b\x32 .luminary.proto.base.AdFloatType\x12\x36\n\x02op\x18\x03 \x01(\x0e\x32*.luminary.proto.output.StoppingConditionOp\"\x82\x01\n\x17StoppingConditionStatus\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0c\x63ond_success\x18\x02 \x03(\x08\x12,\n\x05value\x18\x03 \x03(\x0b\x32\x1d.luminary.proto.output.Result\x12\x12\n\nforce_stop\x18\x04 \x01(\x08*\xeb\x02\n\x10TimeAnalysisType\x12\x1e\n\x1aINVALID_TIME_ANALYSIS_TYPE\x10\x00\x12\x10\n\x0cTIME_AVERAGE\x10\x01\x12\x0f\n\x0bTIME_SERIES\x10\x02\x12\x10\n\x08TIME_MAX\x10\x03\x1a\x02\x08\x01\x12\x10\n\x08TIME_MIN\x10\x04\x1a\x02\x08\x01\x12\x17\n\x13TIME_MOVING_AVERAGE\x10\x05\x12\x17\n\x13TIME_AVERAGE_CAUCHY\x10\x06\x12\x16\n\x12TIME_SERIES_CAUCHY\x10\x07\x12\x1e\n\x1aTIME_MOVING_AVERAGE_CAUCHY\x10\x08\x12\x13\n\x0fPERCENT_MAX_DEV\x10\t\x12\x1a\n\x16PERCENT_MAX_DEV_SERIES\x10\n\x12\x17\n\x13PERCENT_MAX_DEV_AVG\x10\x0b\x12\x1e\n\x1aPERCENT_MAX_DEV_AVG_SERIES\x10\x0c\x12\x1c\n\x18TIME_TRAILING_AVG_SERIES\x10\r*\x87\x01\n\x12SpaceAveragingType\x12 \n\x1cINVALID_SPACE_AVERAGING_TYPE\x10\x00\x12\x1d\n\x19SPACE_MASS_FLOW_AVERAGING\x10\x01\x12\x18\n\x14SPACE_AREA_AVERAGING\x10\x02\x12\x16\n\x12SPACE_NO_AVERAGING\x10\x03*v\n\x13VolumeReductionType\x12!\n\x1dINVALID_VOLUME_REDUCTION_TYPE\x10\x00\x12\x12\n\x0eVOLUME_MINIMUM\x10\x01\x12\x12\n\x0eVOLUME_MAXIMUM\x10\x02\x12\x14\n\x10VOLUME_AVERAGING\x10\x03*\x85\x01\n\x12\x46orceDirectionType\x12 \n\x1cINVALID_FORCE_DIRECTION_TYPE\x10\x00\x12\x1a\n\x16\x46ORCE_DIRECTION_CUSTOM\x10\x01\x12\x31\n-FORCE_DIRECTION_BODY_ORIENTATION_AND_FLOW_DIR\x10\x02*{\n\x0cResidualType\x12\x19\n\x15INVALID_RESIDUAL_TYPE\x10\x00\x12\x15\n\x11RESIDUAL_ABSOLUTE\x10\x01\x12\x15\n\x11RESIDUAL_RELATIVE\x10\x02\x12\x10\n\x0cRESIDUAL_MAX\x10\x03\x12\x10\n\x0cRESIDUAL_MIN\x10\x04*s\n\x13StoppingConditionOp\x12\x18\n\x14INVALID_STOP_COND_OP\x10\x00\x12\x14\n\x10STOP_COND_OP_ALL\x10\x01\x12\x14\n\x10STOP_COND_OP_ANY\x10\x02\x12\x16\n\x12STOP_COND_OP_FORCE\x10\x03\x42%Z#luminarycloud.com/core/proto/outputb\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19proto/output/output.proto\x12\x15luminary.proto.output\x1a\x15proto/base/base.proto\x1a\x1dproto/quantity/quantity.proto\"\xa1\x02\n\x0f\x46orceProperties\x12\x41\n\x0e\x66orce_dir_type\x18\x01 \x01(\x0e\x32).luminary.proto.output.ForceDirectionType\x12\x37\n\x0f\x66orce_direction\x18\x02 \x01(\x0b\x32\x1e.luminary.proto.base.AdVector3\x12\x35\n\rmoment_center\x18\x03 \x01(\x0b\x32\x1e.luminary.proto.base.AdVector3\x12\x0e\n\x06porous\x18\x04 \x01(\x08\x12K\n\x16moment_convention_type\x18\x05 \x01(\x0e\x32+.luminary.proto.output.MomentConventionType\"^\n\x12ResidualProperties\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.luminary.proto.output.ResidualType\x12\x15\n\rphysics_index\x18\x02 \x01(\r\"]\n\x18SurfaceAverageProperties\x12\x41\n\x0e\x61veraging_type\x18\x01 \x01(\x0e\x32).luminary.proto.output.SpaceAveragingType\"_\n\x19VolumeReductionProperties\x12\x42\n\x0ereduction_type\x18\x01 \x01(\x0e\x32*.luminary.proto.output.VolumeReductionType\",\n\x0eIterationRange\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\r\x12\x0b\n\x03\x65nd\x18\x02 \x01(\r\"\x0b\n\tBasicType\"\x10\n\x0ePointProbeType\"V\n\x0b\x44\x65rivedType\x12\x12\n\nexpression\x18\x01 \x01(\t\x12\x33\n\x0c\x64\x65pendencies\x18\x02 \x03(\x0b\x32\x1d.luminary.proto.output.Output\"\xaf\x07\n\x06Output\x12\x37\n\x08quantity\x18\x01 \x01(\x0e\x32%.luminary.proto.quantity.QuantityType\x12?\n\x10vector_component\x18\x13 \x01(\x0e\x32%.luminary.proto.base.Vector3Component\x12\n\n\x02id\x18\x02 \x01(\t\x12\x13\n\x0bin_surfaces\x18\x04 \x03(\t\x12\x0c\n\x04name\x18\x06 \x01(\t\x12\x12\n\nshort_name\x18\x0c \x01(\t\x12>\n\rtime_analysis\x18\x07 \x01(\x0e\x32\'.luminary.proto.output.TimeAnalysisType\x12\x42\n\x10\x66orce_properties\x18\x08 \x01(\x0b\x32&.luminary.proto.output.ForcePropertiesH\x00\x12U\n\x1asurface_average_properties\x18\t \x01(\x0b\x32/.luminary.proto.output.SurfaceAveragePropertiesH\x00\x12H\n\x13residual_properties\x18\n \x01(\x0b\x32).luminary.proto.output.ResidualPropertiesH\x00\x12<\n\x10\x62\x61sic_properties\x18\r \x01(\x0b\x32 .luminary.proto.output.BasicTypeH\x00\x12\x41\n\x10probe_properties\x18\x0e \x01(\x0b\x32%.luminary.proto.output.PointProbeTypeH\x00\x12@\n\x12\x64\x65rived_properties\x18\x14 \x01(\x0b\x32\".luminary.proto.output.DerivedTypeH\x00\x12W\n\x1bvolume_reduction_properties\x18\x15 \x01(\x0b\x32\x30.luminary.proto.output.VolumeReductionPropertiesH\x00\x12\x34\n\x05range\x18\x0b \x01(\x0b\x32%.luminary.proto.output.IterationRange\x12\x11\n\tavg_iters\x18\x0f \x01(\x05\x12\x16\n\x0e\x61nalysis_iters\x18\x10 \x01(\x05\x12\x10\n\x08\x66rame_id\x18\x11 \x01(\t\x12\x13\n\x0binner_iters\x18\x12 \x01(\x08\x42\x13\n\x11output_propertiesJ\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06\"R\n\x06Result\x12\x30\n\x06values\x18\x05 \x03(\x0b\x32 .luminary.proto.base.AdFloatTypeJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"\xaf\x01\n\x11StoppingCondition\x12-\n\x06output\x18\x01 \x01(\x0b\x32\x1d.luminary.proto.output.Output\x12\x33\n\tthreshold\x18\x02 \x01(\x0b\x32 .luminary.proto.base.AdFloatType\x12\x36\n\x02op\x18\x03 \x01(\x0e\x32*.luminary.proto.output.StoppingConditionOp\"\x82\x01\n\x17StoppingConditionStatus\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0c\x63ond_success\x18\x02 \x03(\x08\x12,\n\x05value\x18\x03 \x03(\x0b\x32\x1d.luminary.proto.output.Result\x12\x12\n\nforce_stop\x18\x04 \x01(\x08*\xeb\x02\n\x10TimeAnalysisType\x12\x1e\n\x1aINVALID_TIME_ANALYSIS_TYPE\x10\x00\x12\x10\n\x0cTIME_AVERAGE\x10\x01\x12\x0f\n\x0bTIME_SERIES\x10\x02\x12\x10\n\x08TIME_MAX\x10\x03\x1a\x02\x08\x01\x12\x10\n\x08TIME_MIN\x10\x04\x1a\x02\x08\x01\x12\x17\n\x13TIME_MOVING_AVERAGE\x10\x05\x12\x17\n\x13TIME_AVERAGE_CAUCHY\x10\x06\x12\x16\n\x12TIME_SERIES_CAUCHY\x10\x07\x12\x1e\n\x1aTIME_MOVING_AVERAGE_CAUCHY\x10\x08\x12\x13\n\x0fPERCENT_MAX_DEV\x10\t\x12\x1a\n\x16PERCENT_MAX_DEV_SERIES\x10\n\x12\x17\n\x13PERCENT_MAX_DEV_AVG\x10\x0b\x12\x1e\n\x1aPERCENT_MAX_DEV_AVG_SERIES\x10\x0c\x12\x1c\n\x18TIME_TRAILING_AVG_SERIES\x10\r*\x87\x01\n\x12SpaceAveragingType\x12 \n\x1cINVALID_SPACE_AVERAGING_TYPE\x10\x00\x12\x1d\n\x19SPACE_MASS_FLOW_AVERAGING\x10\x01\x12\x18\n\x14SPACE_AREA_AVERAGING\x10\x02\x12\x16\n\x12SPACE_NO_AVERAGING\x10\x03*v\n\x13VolumeReductionType\x12!\n\x1dINVALID_VOLUME_REDUCTION_TYPE\x10\x00\x12\x12\n\x0eVOLUME_MINIMUM\x10\x01\x12\x12\n\x0eVOLUME_MAXIMUM\x10\x02\x12\x14\n\x10VOLUME_AVERAGING\x10\x03*\x85\x01\n\x12\x46orceDirectionType\x12 \n\x1cINVALID_FORCE_DIRECTION_TYPE\x10\x00\x12\x1a\n\x16\x46ORCE_DIRECTION_CUSTOM\x10\x01\x12\x31\n-FORCE_DIRECTION_BODY_ORIENTATION_AND_FLOW_DIR\x10\x02*\x83\x01\n\x14MomentConventionType\x12\"\n\x1eINVALID_MOMENT_CONVENTION_TYPE\x10\x00\x12 \n\x1cMOMENT_CONVENTION_BODY_FRAME\x10\x01\x12%\n!MOMENT_CONVENTION_STABILITY_FRAME\x10\x02*{\n\x0cResidualType\x12\x19\n\x15INVALID_RESIDUAL_TYPE\x10\x00\x12\x15\n\x11RESIDUAL_ABSOLUTE\x10\x01\x12\x15\n\x11RESIDUAL_RELATIVE\x10\x02\x12\x10\n\x0cRESIDUAL_MAX\x10\x03\x12\x10\n\x0cRESIDUAL_MIN\x10\x04*s\n\x13StoppingConditionOp\x12\x18\n\x14INVALID_STOP_COND_OP\x10\x00\x12\x14\n\x10STOP_COND_OP_ALL\x10\x01\x12\x14\n\x10STOP_COND_OP_ANY\x10\x02\x12\x16\n\x12STOP_COND_OP_FORCE\x10\x03\x42%Z#luminarycloud.com/core/proto/outputb\x06proto3')
21
21
 
22
22
  _TIMEANALYSISTYPE = DESCRIPTOR.enum_types_by_name['TimeAnalysisType']
23
23
  TimeAnalysisType = enum_type_wrapper.EnumTypeWrapper(_TIMEANALYSISTYPE)
@@ -27,6 +27,8 @@ _VOLUMEREDUCTIONTYPE = DESCRIPTOR.enum_types_by_name['VolumeReductionType']
27
27
  VolumeReductionType = enum_type_wrapper.EnumTypeWrapper(_VOLUMEREDUCTIONTYPE)
28
28
  _FORCEDIRECTIONTYPE = DESCRIPTOR.enum_types_by_name['ForceDirectionType']
29
29
  ForceDirectionType = enum_type_wrapper.EnumTypeWrapper(_FORCEDIRECTIONTYPE)
30
+ _MOMENTCONVENTIONTYPE = DESCRIPTOR.enum_types_by_name['MomentConventionType']
31
+ MomentConventionType = enum_type_wrapper.EnumTypeWrapper(_MOMENTCONVENTIONTYPE)
30
32
  _RESIDUALTYPE = DESCRIPTOR.enum_types_by_name['ResidualType']
31
33
  ResidualType = enum_type_wrapper.EnumTypeWrapper(_RESIDUALTYPE)
32
34
  _STOPPINGCONDITIONOP = DESCRIPTOR.enum_types_by_name['StoppingConditionOp']
@@ -56,6 +58,9 @@ VOLUME_AVERAGING = 3
56
58
  INVALID_FORCE_DIRECTION_TYPE = 0
57
59
  FORCE_DIRECTION_CUSTOM = 1
58
60
  FORCE_DIRECTION_BODY_ORIENTATION_AND_FLOW_DIR = 2
61
+ INVALID_MOMENT_CONVENTION_TYPE = 0
62
+ MOMENT_CONVENTION_BODY_FRAME = 1
63
+ MOMENT_CONVENTION_STABILITY_FRAME = 2
59
64
  INVALID_RESIDUAL_TYPE = 0
60
65
  RESIDUAL_ABSOLUTE = 1
61
66
  RESIDUAL_RELATIVE = 2
@@ -171,40 +176,42 @@ if _descriptor._USE_C_DESCRIPTORS == False:
171
176
  _TIMEANALYSISTYPE.values_by_name["TIME_MAX"]._serialized_options = b'\010\001'
172
177
  _TIMEANALYSISTYPE.values_by_name["TIME_MIN"]._options = None
173
178
  _TIMEANALYSISTYPE.values_by_name["TIME_MIN"]._serialized_options = b'\010\001'
174
- _TIMEANALYSISTYPE._serialized_start=2116
175
- _TIMEANALYSISTYPE._serialized_end=2479
176
- _SPACEAVERAGINGTYPE._serialized_start=2482
177
- _SPACEAVERAGINGTYPE._serialized_end=2617
178
- _VOLUMEREDUCTIONTYPE._serialized_start=2619
179
- _VOLUMEREDUCTIONTYPE._serialized_end=2737
180
- _FORCEDIRECTIONTYPE._serialized_start=2740
181
- _FORCEDIRECTIONTYPE._serialized_end=2873
182
- _RESIDUALTYPE._serialized_start=2875
183
- _RESIDUALTYPE._serialized_end=2998
184
- _STOPPINGCONDITIONOP._serialized_start=3000
185
- _STOPPINGCONDITIONOP._serialized_end=3115
179
+ _TIMEANALYSISTYPE._serialized_start=2193
180
+ _TIMEANALYSISTYPE._serialized_end=2556
181
+ _SPACEAVERAGINGTYPE._serialized_start=2559
182
+ _SPACEAVERAGINGTYPE._serialized_end=2694
183
+ _VOLUMEREDUCTIONTYPE._serialized_start=2696
184
+ _VOLUMEREDUCTIONTYPE._serialized_end=2814
185
+ _FORCEDIRECTIONTYPE._serialized_start=2817
186
+ _FORCEDIRECTIONTYPE._serialized_end=2950
187
+ _MOMENTCONVENTIONTYPE._serialized_start=2953
188
+ _MOMENTCONVENTIONTYPE._serialized_end=3084
189
+ _RESIDUALTYPE._serialized_start=3086
190
+ _RESIDUALTYPE._serialized_end=3209
191
+ _STOPPINGCONDITIONOP._serialized_start=3211
192
+ _STOPPINGCONDITIONOP._serialized_end=3326
186
193
  _FORCEPROPERTIES._serialized_start=107
187
- _FORCEPROPERTIES._serialized_end=319
188
- _RESIDUALPROPERTIES._serialized_start=321
189
- _RESIDUALPROPERTIES._serialized_end=415
190
- _SURFACEAVERAGEPROPERTIES._serialized_start=417
191
- _SURFACEAVERAGEPROPERTIES._serialized_end=510
192
- _VOLUMEREDUCTIONPROPERTIES._serialized_start=512
193
- _VOLUMEREDUCTIONPROPERTIES._serialized_end=607
194
- _ITERATIONRANGE._serialized_start=609
195
- _ITERATIONRANGE._serialized_end=653
196
- _BASICTYPE._serialized_start=655
197
- _BASICTYPE._serialized_end=666
198
- _POINTPROBETYPE._serialized_start=668
199
- _POINTPROBETYPE._serialized_end=684
200
- _DERIVEDTYPE._serialized_start=686
201
- _DERIVEDTYPE._serialized_end=772
202
- _OUTPUT._serialized_start=775
203
- _OUTPUT._serialized_end=1718
204
- _RESULT._serialized_start=1720
205
- _RESULT._serialized_end=1802
206
- _STOPPINGCONDITION._serialized_start=1805
207
- _STOPPINGCONDITION._serialized_end=1980
208
- _STOPPINGCONDITIONSTATUS._serialized_start=1983
209
- _STOPPINGCONDITIONSTATUS._serialized_end=2113
194
+ _FORCEPROPERTIES._serialized_end=396
195
+ _RESIDUALPROPERTIES._serialized_start=398
196
+ _RESIDUALPROPERTIES._serialized_end=492
197
+ _SURFACEAVERAGEPROPERTIES._serialized_start=494
198
+ _SURFACEAVERAGEPROPERTIES._serialized_end=587
199
+ _VOLUMEREDUCTIONPROPERTIES._serialized_start=589
200
+ _VOLUMEREDUCTIONPROPERTIES._serialized_end=684
201
+ _ITERATIONRANGE._serialized_start=686
202
+ _ITERATIONRANGE._serialized_end=730
203
+ _BASICTYPE._serialized_start=732
204
+ _BASICTYPE._serialized_end=743
205
+ _POINTPROBETYPE._serialized_start=745
206
+ _POINTPROBETYPE._serialized_end=761
207
+ _DERIVEDTYPE._serialized_start=763
208
+ _DERIVEDTYPE._serialized_end=849
209
+ _OUTPUT._serialized_start=852
210
+ _OUTPUT._serialized_end=1795
211
+ _RESULT._serialized_start=1797
212
+ _RESULT._serialized_end=1879
213
+ _STOPPINGCONDITION._serialized_start=1882
214
+ _STOPPINGCONDITION._serialized_end=2057
215
+ _STOPPINGCONDITIONSTATUS._serialized_start=2060
216
+ _STOPPINGCONDITIONSTATUS._serialized_end=2190
210
217
  # @@protoc_insertion_point(module_scope)
@@ -192,6 +192,29 @@ and a flow direction.
192
192
  """
193
193
  global___ForceDirectionType = ForceDirectionType
194
194
 
195
+ class _MomentConventionType:
196
+ ValueType = typing.NewType("ValueType", builtins.int)
197
+ V: typing_extensions.TypeAlias = ValueType
198
+
199
+ class _MomentConventionTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MomentConventionType.ValueType], builtins.type): # noqa: F821
200
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
201
+ INVALID_MOMENT_CONVENTION_TYPE: _MomentConventionType.ValueType # 0
202
+ """An invalid moment frame type."""
203
+ MOMENT_CONVENTION_BODY_FRAME: _MomentConventionType.ValueType # 1
204
+ """Use the body frame for pitch, roll, and yaw moments."""
205
+ MOMENT_CONVENTION_STABILITY_FRAME: _MomentConventionType.ValueType # 2
206
+ """Use the stability frame for pitch, roll, and yaw moments."""
207
+
208
+ class MomentConventionType(_MomentConventionType, metaclass=_MomentConventionTypeEnumTypeWrapper): ...
209
+
210
+ INVALID_MOMENT_CONVENTION_TYPE: MomentConventionType.ValueType # 0
211
+ """An invalid moment frame type."""
212
+ MOMENT_CONVENTION_BODY_FRAME: MomentConventionType.ValueType # 1
213
+ """Use the body frame for pitch, roll, and yaw moments."""
214
+ MOMENT_CONVENTION_STABILITY_FRAME: MomentConventionType.ValueType # 2
215
+ """Use the stability frame for pitch, roll, and yaw moments."""
216
+ global___MomentConventionType = MomentConventionType
217
+
195
218
  class _ResidualType:
196
219
  ValueType = typing.NewType("ValueType", builtins.int)
197
220
  V: typing_extensions.TypeAlias = ValueType
@@ -245,6 +268,7 @@ class ForceProperties(google.protobuf.message.Message):
245
268
  FORCE_DIRECTION_FIELD_NUMBER: builtins.int
246
269
  MOMENT_CENTER_FIELD_NUMBER: builtins.int
247
270
  POROUS_FIELD_NUMBER: builtins.int
271
+ MOMENT_CONVENTION_TYPE_FIELD_NUMBER: builtins.int
248
272
  force_dir_type: global___ForceDirectionType.ValueType
249
273
  """Force direction type."""
250
274
  @property
@@ -255,6 +279,8 @@ class ForceProperties(google.protobuf.message.Message):
255
279
  """Center of moments."""
256
280
  porous: builtins.bool
257
281
  """Whether the force is porous."""
282
+ moment_convention_type: global___MomentConventionType.ValueType
283
+ """Whether to use the body or stability frame for pitch, roll, and yaw moments."""
258
284
  def __init__(
259
285
  self,
260
286
  *,
@@ -262,9 +288,10 @@ class ForceProperties(google.protobuf.message.Message):
262
288
  force_direction: luminarycloud._proto.base.base_pb2.AdVector3 | None = ...,
263
289
  moment_center: luminarycloud._proto.base.base_pb2.AdVector3 | None = ...,
264
290
  porous: builtins.bool = ...,
291
+ moment_convention_type: global___MomentConventionType.ValueType = ...,
265
292
  ) -> None: ...
266
293
  def HasField(self, field_name: typing_extensions.Literal["force_direction", b"force_direction", "moment_center", b"moment_center"]) -> builtins.bool: ...
267
- def ClearField(self, field_name: typing_extensions.Literal["force_dir_type", b"force_dir_type", "force_direction", b"force_direction", "moment_center", b"moment_center", "porous", b"porous"]) -> None: ...
294
+ def ClearField(self, field_name: typing_extensions.Literal["force_dir_type", b"force_dir_type", "force_direction", b"force_direction", "moment_center", b"moment_center", "moment_convention_type", b"moment_convention_type", "porous", b"porous"]) -> None: ...
268
295
 
269
296
  global___ForceProperties = ForceProperties
270
297
 
@@ -16,7 +16,7 @@ _sym_db = _symbol_database.Default()
16
16
  from luminarycloud._proto.condition import condition_pb2 as proto_dot_condition_dot_condition__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%proto/quantity/quantity_options.proto\x12\x17luminary.proto.quantity\x1a\x1fproto/condition/condition.proto\":\n\x04Tags\x12\x32\n\x04vals\x18\x01 \x03(\x0e\x32$.luminary.proto.quantity.QuantityTag\"\x18\n\x08\x43hildren\x12\x0c\n\x04vals\x18\x01 \x03(\x05\"\x17\n\x07Parents\x12\x0c\n\x04vals\x18\x01 \x03(\x05\"\"\n\x12\x43onditionalParents\x12\x0c\n\x04vals\x18\x01 \x03(\x05\"\xac\x03\n\x08Quantity\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x0c\n\x04unit\x18\x04 \x01(\t\x12+\n\x04tags\x18\x05 \x01(\x0b\x32\x1d.luminary.proto.quantity.Tags\x12\x0c\n\x04help\x18\x06 \x01(\t\x12\x30\n\x05\x63hild\x18\x07 \x01(\x0b\x32!.luminary.proto.quantity.Children\x12\x30\n\x06parent\x18\t \x01(\x0b\x32 .luminary.proto.quantity.Parents\x12G\n\x12\x63onditional_parent\x18\n \x01(\x0b\x32+.luminary.proto.quantity.ConditionalParents\x12\x31\n\x04\x63ond\x18\x08 \x01(\x0b\x32#.luminary.proto.condition.Condition\x12\x34\n\tunit_type\x18\x0b \x01(\x0e\x32!.luminary.proto.quantity.UnitType\x12\x17\n\x0funit_derivation\x18\x0c \x01(\t*\xfb\x03\n\x0bQuantityTag\x12\x0f\n\x0bTAG_INVALID\x10\x00\x12\r\n\tTAG_BASIC\x10\x01\x12\r\n\tTAG_FIELD\x10\x02\x12\r\n\tTAG_FORCE\x10\x03\x12\x0e\n\nTAG_MOMENT\x10\x04\x12\x10\n\x0cTAG_EXTERNAL\x10\x05\x12\x14\n\x10TAG_AERODYNAMICS\x10\x06\x12\x10\n\x0cTAG_INTERNAL\x10\x07\x12\x0e\n\nTAG_TORQUE\x10\x08\x12\x0c\n\x08TAG_DROP\x10\t\x12\x16\n\x12TAG_AUTO_DIRECTION\x10\n\x12\x13\n\x0fTAG_COEFFICIENT\x10\x0b\x12\x18\n\x14TAG_ANALYZER_AVERAGE\x10\x0c\x12\x17\n\x13TAG_ANALYZER_FORCES\x10\r\x12\x14\n\x10TAG_TIME_AVERAGE\x10\x0e\x12\x10\n\x0cTAG_RESIDUAL\x10\x0f\x12\x19\n\x15TAG_ANALYZER_RESIDUAL\x10\x10\x12\x16\n\x12TAG_ANALYZER_BASIC\x10\x11\x12\x12\n\x0eTAG_TURBULENCE\x10\x12\x12\x13\n\x0fTAG_POINT_PROBE\x10\x13\x12\x1b\n\x17TAG_HIDDEN_SOLVER_STATE\x10\x14\x12\x15\n\x11TAG_SURFACE_FIELD\x10\x15\x12\x15\n\x11TAG_ACTUATOR_DISK\x10\x16\x12\x17\n\x13TAG_ANALYZER_VOLUME\x10\x17*\x8f\x03\n\x08UnitType\x12\x10\n\x0cUNIT_INVALID\x10\x00\x12\x16\n\x12UNIT_DIMENSIONLESS\x10\x01\x12\x14\n\x10UNIT_TEMPERATURE\x10\x02\x12\r\n\tUNIT_MASS\x10\x03\x12\x0f\n\x0bUNIT_LENGTH\x10\x04\x12\x0e\n\nUNIT_ANGLE\x10\x05\x12\r\n\tUNIT_TIME\x10\x06\x12\x11\n\rUNIT_VELOCITY\x10\x07\x12\x19\n\x15UNIT_ANGULAR_VELOCITY\x10\x08\x12\x0e\n\nUNIT_FORCE\x10\t\x12\x0f\n\x0bUNIT_MOMENT\x10\n\x12\x11\n\rUNIT_PRESSURE\x10\x0b\x12\x0f\n\x0bUNIT_ENERGY\x10\x0c\x12\x0e\n\nUNIT_POWER\x10\r\x12\x0f\n\x0bUNIT_VOLUME\x10\x0e\x12\x18\n\x14UNIT_VOLUMETRIC_FLOW\x10\x0f\x12\x12\n\x0eUNIT_VISCOSITY\x10\x10\x12\x15\n\x11UNIT_CONDUCTIVITY\x10\x11\x12\x19\n\x15UNIT_MOLECULAR_WEIGHT\x10\x12\x12\x10\n\x0cUNIT_DERIVED\x10\x13\x42\'Z%luminarycloud.com/core/proto/quantityb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%proto/quantity/quantity_options.proto\x12\x17luminary.proto.quantity\x1a\x1fproto/condition/condition.proto\":\n\x04Tags\x12\x32\n\x04vals\x18\x01 \x03(\x0e\x32$.luminary.proto.quantity.QuantityTag\"\x18\n\x08\x43hildren\x12\x0c\n\x04vals\x18\x01 \x03(\x05\"\x17\n\x07Parents\x12\x0c\n\x04vals\x18\x01 \x03(\x05\"\"\n\x12\x43onditionalParents\x12\x0c\n\x04vals\x18\x01 \x03(\x05\"\xac\x03\n\x08Quantity\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x0c\n\x04unit\x18\x04 \x01(\t\x12+\n\x04tags\x18\x05 \x01(\x0b\x32\x1d.luminary.proto.quantity.Tags\x12\x0c\n\x04help\x18\x06 \x01(\t\x12\x30\n\x05\x63hild\x18\x07 \x01(\x0b\x32!.luminary.proto.quantity.Children\x12\x30\n\x06parent\x18\t \x01(\x0b\x32 .luminary.proto.quantity.Parents\x12G\n\x12\x63onditional_parent\x18\n \x01(\x0b\x32+.luminary.proto.quantity.ConditionalParents\x12\x31\n\x04\x63ond\x18\x08 \x01(\x0b\x32#.luminary.proto.condition.Condition\x12\x34\n\tunit_type\x18\x0b \x01(\x0e\x32!.luminary.proto.quantity.UnitType\x12\x17\n\x0funit_derivation\x18\x0c \x01(\t*\x90\x04\n\x0bQuantityTag\x12\x0f\n\x0bTAG_INVALID\x10\x00\x12\r\n\tTAG_BASIC\x10\x01\x12\r\n\tTAG_FIELD\x10\x02\x12\r\n\tTAG_FORCE\x10\x03\x12\x0e\n\nTAG_MOMENT\x10\x04\x12\x10\n\x0cTAG_EXTERNAL\x10\x05\x12\x14\n\x10TAG_AERODYNAMICS\x10\x06\x12\x10\n\x0cTAG_INTERNAL\x10\x07\x12\x0e\n\nTAG_TORQUE\x10\x08\x12\x0c\n\x08TAG_DROP\x10\t\x12\x16\n\x12TAG_AUTO_DIRECTION\x10\n\x12\x13\n\x0fTAG_COEFFICIENT\x10\x0b\x12\x18\n\x14TAG_ANALYZER_AVERAGE\x10\x0c\x12\x17\n\x13TAG_ANALYZER_FORCES\x10\r\x12\x14\n\x10TAG_TIME_AVERAGE\x10\x0e\x12\x10\n\x0cTAG_RESIDUAL\x10\x0f\x12\x19\n\x15TAG_ANALYZER_RESIDUAL\x10\x10\x12\x16\n\x12TAG_ANALYZER_BASIC\x10\x11\x12\x12\n\x0eTAG_TURBULENCE\x10\x12\x12\x13\n\x0fTAG_POINT_PROBE\x10\x13\x12\x1b\n\x17TAG_HIDDEN_SOLVER_STATE\x10\x14\x12\x15\n\x11TAG_SURFACE_FIELD\x10\x15\x12\x15\n\x11TAG_ACTUATOR_DISK\x10\x16\x12\x17\n\x13TAG_ANALYZER_VOLUME\x10\x17\x12\x13\n\x0fTAG_AERO_MOMENT\x10\x18*\x8f\x03\n\x08UnitType\x12\x10\n\x0cUNIT_INVALID\x10\x00\x12\x16\n\x12UNIT_DIMENSIONLESS\x10\x01\x12\x14\n\x10UNIT_TEMPERATURE\x10\x02\x12\r\n\tUNIT_MASS\x10\x03\x12\x0f\n\x0bUNIT_LENGTH\x10\x04\x12\x0e\n\nUNIT_ANGLE\x10\x05\x12\r\n\tUNIT_TIME\x10\x06\x12\x11\n\rUNIT_VELOCITY\x10\x07\x12\x19\n\x15UNIT_ANGULAR_VELOCITY\x10\x08\x12\x0e\n\nUNIT_FORCE\x10\t\x12\x0f\n\x0bUNIT_MOMENT\x10\n\x12\x11\n\rUNIT_PRESSURE\x10\x0b\x12\x0f\n\x0bUNIT_ENERGY\x10\x0c\x12\x0e\n\nUNIT_POWER\x10\r\x12\x0f\n\x0bUNIT_VOLUME\x10\x0e\x12\x18\n\x14UNIT_VOLUMETRIC_FLOW\x10\x0f\x12\x12\n\x0eUNIT_VISCOSITY\x10\x10\x12\x15\n\x11UNIT_CONDUCTIVITY\x10\x11\x12\x19\n\x15UNIT_MOLECULAR_WEIGHT\x10\x12\x12\x10\n\x0cUNIT_DERIVED\x10\x13\x42\'Z%luminarycloud.com/core/proto/quantityb\x06proto3')
20
20
 
21
21
  _QUANTITYTAG = DESCRIPTOR.enum_types_by_name['QuantityTag']
22
22
  QuantityTag = enum_type_wrapper.EnumTypeWrapper(_QUANTITYTAG)
@@ -46,6 +46,7 @@ TAG_HIDDEN_SOLVER_STATE = 20
46
46
  TAG_SURFACE_FIELD = 21
47
47
  TAG_ACTUATOR_DISK = 22
48
48
  TAG_ANALYZER_VOLUME = 23
49
+ TAG_AERO_MOMENT = 24
49
50
  UNIT_INVALID = 0
50
51
  UNIT_DIMENSIONLESS = 1
51
52
  UNIT_TEMPERATURE = 2
@@ -113,9 +114,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
113
114
  DESCRIPTOR._options = None
114
115
  DESCRIPTOR._serialized_options = b'Z%luminarycloud.com/core/proto/quantity'
115
116
  _QUANTITYTAG._serialized_start=678
116
- _QUANTITYTAG._serialized_end=1185
117
- _UNITTYPE._serialized_start=1188
118
- _UNITTYPE._serialized_end=1587
117
+ _QUANTITYTAG._serialized_end=1206
118
+ _UNITTYPE._serialized_start=1209
119
+ _UNITTYPE._serialized_end=1608
119
120
  _TAGS._serialized_start=99
120
121
  _TAGS._serialized_end=157
121
122
  _CHILDREN._serialized_start=159
@@ -79,6 +79,8 @@ class _QuantityTagEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._En
79
79
  """Quantities only defined on actuator disk"""
80
80
  TAG_ANALYZER_VOLUME: _QuantityTag.ValueType # 23
81
81
  """Computed by the volume reductions analyzer"""
82
+ TAG_AERO_MOMENT: _QuantityTag.ValueType # 24
83
+ """Aerodynamic moments."""
82
84
 
83
85
  class QuantityTag(_QuantityTag, metaclass=_QuantityTagEnumTypeWrapper): ...
84
86
 
@@ -134,6 +136,8 @@ TAG_ACTUATOR_DISK: QuantityTag.ValueType # 22
134
136
  """Quantities only defined on actuator disk"""
135
137
  TAG_ANALYZER_VOLUME: QuantityTag.ValueType # 23
136
138
  """Computed by the volume reductions analyzer"""
139
+ TAG_AERO_MOMENT: QuantityTag.ValueType # 24
140
+ """Aerodynamic moments."""
137
141
  global___QuantityTag = QuantityTag
138
142
 
139
143
  class _UnitType: