RS3Scripting 4.42.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.
- rs3/ApplicationManager.py +77 -0
- rs3/ColorPicker.py +123 -0
- rs3/CommonEnums.py +16 -0
- rs3/Compute.py +105 -0
- rs3/ExternalVolume.py +48 -0
- rs3/Geometry.py +74 -0
- rs3/Model.py +795 -0
- rs3/ModelEnums.py +9 -0
- rs3/RS3Modeler.py +109 -0
- rs3/Restraints.py +91 -0
- rs3/Selection.py +123 -0
- rs3/__init__.py +18 -0
- rs3/_client.py +57 -0
- rs3/_proxyObject.py +5 -0
- rs3/generatedFiles/BFPCommonMessage_pb2.py +38 -0
- rs3/generatedFiles/BFPCommonMessage_pb2.pyi +47 -0
- rs3/generatedFiles/BFPCommonMessage_pb2_grpc.py +24 -0
- rs3/generatedFiles/BeamDataService_pb2.py +37 -0
- rs3/generatedFiles/BeamDataService_pb2.pyi +5 -0
- rs3/generatedFiles/BeamDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/BeamService_pb2.py +37 -0
- rs3/generatedFiles/BeamService_pb2.pyi +5 -0
- rs3/generatedFiles/BeamService_pb2_grpc.py +140 -0
- rs3/generatedFiles/BeamStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/BeamStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/BeamStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/BeamsResultsQueryService_pb2.py +50 -0
- rs3/generatedFiles/BeamsResultsQueryService_pb2.pyi +48 -0
- rs3/generatedFiles/BeamsResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/BoltDataService_pb2.py +37 -0
- rs3/generatedFiles/BoltDataService_pb2.pyi +5 -0
- rs3/generatedFiles/BoltDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/BoltService_pb2.py +37 -0
- rs3/generatedFiles/BoltService_pb2.pyi +5 -0
- rs3/generatedFiles/BoltService_pb2_grpc.py +140 -0
- rs3/generatedFiles/BoltsResultsQueryService_pb2.py +51 -0
- rs3/generatedFiles/BoltsResultsQueryService_pb2.pyi +75 -0
- rs3/generatedFiles/BoltsResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/ClientService_pb2.py +40 -0
- rs3/generatedFiles/ClientService_pb2.pyi +15 -0
- rs3/generatedFiles/ClientService_pb2_grpc.py +97 -0
- rs3/generatedFiles/CommonGeometryMessages_pb2.py +52 -0
- rs3/generatedFiles/CommonGeometryMessages_pb2.pyi +92 -0
- rs3/generatedFiles/CommonGeometryMessages_pb2_grpc.py +24 -0
- rs3/generatedFiles/CommonMessages_pb2.py +66 -0
- rs3/generatedFiles/CommonMessages_pb2.pyi +145 -0
- rs3/generatedFiles/CommonMessages_pb2_grpc.py +24 -0
- rs3/generatedFiles/CompositeLinerDataService_pb2.py +47 -0
- rs3/generatedFiles/CompositeLinerDataService_pb2.pyi +51 -0
- rs3/generatedFiles/CompositeLinerDataService_pb2_grpc.py +227 -0
- rs3/generatedFiles/CompositeLinerResultsQueryService_pb2.py +63 -0
- rs3/generatedFiles/CompositeLinerResultsQueryService_pb2.pyi +139 -0
- rs3/generatedFiles/CompositeLinerResultsQueryService_pb2_grpc.py +314 -0
- rs3/generatedFiles/CompositeLinerService_pb2.py +37 -0
- rs3/generatedFiles/CompositeLinerService_pb2.pyi +5 -0
- rs3/generatedFiles/CompositeLinerService_pb2_grpc.py +140 -0
- rs3/generatedFiles/ComputeService_pb2.py +48 -0
- rs3/generatedFiles/ComputeService_pb2.pyi +56 -0
- rs3/generatedFiles/ComputeService_pb2_grpc.py +147 -0
- rs3/generatedFiles/ExternalVolumesService_pb2.py +45 -0
- rs3/generatedFiles/ExternalVolumesService_pb2.pyi +34 -0
- rs3/generatedFiles/ExternalVolumesService_pb2_grpc.py +270 -0
- rs3/generatedFiles/FieldStressService_pb2.py +37 -0
- rs3/generatedFiles/FieldStressService_pb2.pyi +5 -0
- rs3/generatedFiles/FieldStressService_pb2_grpc.py +140 -0
- rs3/generatedFiles/FieldStressSourceService_pb2.py +85 -0
- rs3/generatedFiles/FieldStressSourceService_pb2.pyi +182 -0
- rs3/generatedFiles/FieldStressSourceService_pb2_grpc.py +657 -0
- rs3/generatedFiles/GaussPointFailureMessage_pb2.py +37 -0
- rs3/generatedFiles/GaussPointFailureMessage_pb2.pyi +14 -0
- rs3/generatedFiles/GaussPointFailureMessage_pb2_grpc.py +24 -0
- rs3/generatedFiles/HydraulicStageFactorService_pb2.py +45 -0
- rs3/generatedFiles/HydraulicStageFactorService_pb2.pyi +36 -0
- rs3/generatedFiles/HydraulicStageFactorService_pb2_grpc.py +227 -0
- rs3/generatedFiles/JointDataService_pb2.py +45 -0
- rs3/generatedFiles/JointDataService_pb2.pyi +30 -0
- rs3/generatedFiles/JointDataService_pb2_grpc.py +313 -0
- rs3/generatedFiles/JointResultsQueryService_pb2.py +54 -0
- rs3/generatedFiles/JointResultsQueryService_pb2.pyi +92 -0
- rs3/generatedFiles/JointResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/JointService_pb2.py +45 -0
- rs3/generatedFiles/JointService_pb2.pyi +30 -0
- rs3/generatedFiles/JointService_pb2_grpc.py +227 -0
- rs3/generatedFiles/JointStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/JointStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/JointStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/LinerDataService_pb2.py +37 -0
- rs3/generatedFiles/LinerDataService_pb2.pyi +5 -0
- rs3/generatedFiles/LinerDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/LinerService_pb2.py +37 -0
- rs3/generatedFiles/LinerService_pb2.pyi +5 -0
- rs3/generatedFiles/LinerService_pb2_grpc.py +140 -0
- rs3/generatedFiles/LinerStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/LinerStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/LinerStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialDataService_pb2.py +37 -0
- rs3/generatedFiles/MaterialDataService_pb2.pyi +5 -0
- rs3/generatedFiles/MaterialDataService_pb2_grpc.py +226 -0
- rs3/generatedFiles/MaterialDatumService_pb2.py +45 -0
- rs3/generatedFiles/MaterialDatumService_pb2.pyi +38 -0
- rs3/generatedFiles/MaterialDatumService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialHydraulicDataService_pb2.py +93 -0
- rs3/generatedFiles/MaterialHydraulicDataService_pb2.pyi +193 -0
- rs3/generatedFiles/MaterialHydraulicDataService_pb2_grpc.py +829 -0
- rs3/generatedFiles/MaterialHydraulicModelService_pb2.py +55 -0
- rs3/generatedFiles/MaterialHydraulicModelService_pb2.pyi +79 -0
- rs3/generatedFiles/MaterialHydraulicModelService_pb2_grpc.py +313 -0
- rs3/generatedFiles/MaterialInitialConditionsService_pb2.py +37 -0
- rs3/generatedFiles/MaterialInitialConditionsService_pb2.pyi +5 -0
- rs3/generatedFiles/MaterialInitialConditionsService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialJointService_pb2.py +49 -0
- rs3/generatedFiles/MaterialJointService_pb2.pyi +52 -0
- rs3/generatedFiles/MaterialJointService_pb2_grpc.py +183 -0
- rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2.py +69 -0
- rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2.pyi +130 -0
- rs3/generatedFiles/MaterialJointSetSlipCriterionService_pb2_grpc.py +398 -0
- rs3/generatedFiles/MaterialJointStageFactorService_pb2.py +45 -0
- rs3/generatedFiles/MaterialJointStageFactorService_pb2.pyi +42 -0
- rs3/generatedFiles/MaterialJointStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialStageFactorsService_pb2.py +37 -0
- rs3/generatedFiles/MaterialStageFactorsService_pb2.pyi +5 -0
- rs3/generatedFiles/MaterialStageFactorsService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialStiffnessFormulaService_pb2.py +47 -0
- rs3/generatedFiles/MaterialStiffnessFormulaService_pb2.pyi +54 -0
- rs3/generatedFiles/MaterialStiffnessFormulaService_pb2_grpc.py +140 -0
- rs3/generatedFiles/MaterialStiffnessService_pb2.py +53 -0
- rs3/generatedFiles/MaterialStiffnessService_pb2.pyi +66 -0
- rs3/generatedFiles/MaterialStiffnessService_pb2_grpc.py +313 -0
- rs3/generatedFiles/MaterialStrengthService_pb2.py +105 -0
- rs3/generatedFiles/MaterialStrengthService_pb2.pyi +243 -0
- rs3/generatedFiles/MaterialStrengthService_pb2_grpc.py +833 -0
- rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2.py +47 -0
- rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2.pyi +43 -0
- rs3/generatedFiles/MaterialUnsaturatedSoilDataService_pb2_grpc.py +228 -0
- rs3/generatedFiles/MeshSettingsService_pb2.py +41 -0
- rs3/generatedFiles/MeshSettingsService_pb2.pyi +16 -0
- rs3/generatedFiles/MeshSettingsService_pb2_grpc.py +184 -0
- rs3/generatedFiles/ModelFunctionService_pb2.py +119 -0
- rs3/generatedFiles/ModelFunctionService_pb2.pyi +331 -0
- rs3/generatedFiles/ModelFunctionService_pb2_grpc.py +871 -0
- rs3/generatedFiles/ModelService_pb2.py +342 -0
- rs3/generatedFiles/ModelService_pb2.pyi +962 -0
- rs3/generatedFiles/ModelService_pb2_grpc.py +3322 -0
- rs3/generatedFiles/PileDataService_pb2.py +55 -0
- rs3/generatedFiles/PileDataService_pb2.pyi +63 -0
- rs3/generatedFiles/PileDataService_pb2_grpc.py +399 -0
- rs3/generatedFiles/PileForepoleResultsQueryService_pb2.py +51 -0
- rs3/generatedFiles/PileForepoleResultsQueryService_pb2.pyi +63 -0
- rs3/generatedFiles/PileForepoleResultsQueryService_pb2_grpc.py +141 -0
- rs3/generatedFiles/PileStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/PileStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/PileStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/PlainStrandCableBoltService_pb2.py +44 -0
- rs3/generatedFiles/PlainStrandCableBoltService_pb2.pyi +30 -0
- rs3/generatedFiles/PlainStrandCableBoltService_pb2_grpc.py +140 -0
- rs3/generatedFiles/ProjectSettingsDataService_pb2.py +69 -0
- rs3/generatedFiles/ProjectSettingsDataService_pb2.pyi +119 -0
- rs3/generatedFiles/ProjectSettingsDataService_pb2_grpc.py +786 -0
- rs3/generatedFiles/RFCApplicationService_pb2.py +34 -0
- rs3/generatedFiles/RFCApplicationService_pb2.pyi +27 -0
- rs3/generatedFiles/RFCApplicationService_pb2_grpc.py +145 -0
- rs3/generatedFiles/RS3ModelerService_pb2.py +50 -0
- rs3/generatedFiles/RS3ModelerService_pb2.pyi +45 -0
- rs3/generatedFiles/RS3ModelerService_pb2_grpc.py +183 -0
- rs3/generatedFiles/RelativeStageFactorService_pb2.py +40 -0
- rs3/generatedFiles/RelativeStageFactorService_pb2.pyi +17 -0
- rs3/generatedFiles/RelativeStageFactorService_pb2_grpc.py +97 -0
- rs3/generatedFiles/RestraintsService_pb2.py +62 -0
- rs3/generatedFiles/RestraintsService_pb2.pyi +84 -0
- rs3/generatedFiles/RestraintsService_pb2_grpc.py +312 -0
- rs3/generatedFiles/ResultsQueryCommonMessage_pb2.py +56 -0
- rs3/generatedFiles/ResultsQueryCommonMessage_pb2.pyi +85 -0
- rs3/generatedFiles/ResultsQueryCommonMessage_pb2_grpc.py +24 -0
- rs3/generatedFiles/ResultsQueryService_pb2.py +87 -0
- rs3/generatedFiles/ResultsQueryService_pb2.pyi +185 -0
- rs3/generatedFiles/ResultsQueryService_pb2_grpc.py +745 -0
- rs3/generatedFiles/SelectionService_pb2.py +49 -0
- rs3/generatedFiles/SelectionService_pb2.pyi +51 -0
- rs3/generatedFiles/SelectionService_pb2_grpc.py +269 -0
- rs3/generatedFiles/SolidsResultsQueryService_pb2.py +93 -0
- rs3/generatedFiles/SolidsResultsQueryService_pb2.pyi +213 -0
- rs3/generatedFiles/SolidsResultsQueryService_pb2_grpc.py +195 -0
- rs3/generatedFiles/StageFactorService_pb2.py +58 -0
- rs3/generatedFiles/StageFactorService_pb2.pyi +79 -0
- rs3/generatedFiles/StageFactorService_pb2_grpc.py +226 -0
- rs3/generatedFiles/StiffnessStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/StiffnessStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/StiffnessStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/StrengthStageFactorService_pb2.py +37 -0
- rs3/generatedFiles/StrengthStageFactorService_pb2.pyi +5 -0
- rs3/generatedFiles/StrengthStageFactorService_pb2_grpc.py +140 -0
- rs3/generatedFiles/WaterByLocationDataService_pb2.py +61 -0
- rs3/generatedFiles/WaterByLocationDataService_pb2.pyi +95 -0
- rs3/generatedFiles/WaterByLocationDataService_pb2_grpc.py +312 -0
- rs3/generatedFiles/WaterPressureGridDataService_pb2.py +63 -0
- rs3/generatedFiles/WaterPressureGridDataService_pb2.pyi +107 -0
- rs3/generatedFiles/WaterPressureGridDataService_pb2_grpc.py +312 -0
- rs3/generatedFiles/__init__.py +3 -0
- rs3/loadings/LoadingEnums.py +6 -0
- rs3/loadings/Loadings.py +15 -0
- rs3/loadings/__init__.py +0 -0
- rs3/loadings/fieldStress/AdvancedConstant.py +115 -0
- rs3/loadings/fieldStress/AdvancedGravity.py +176 -0
- rs3/loadings/fieldStress/Constant.py +119 -0
- rs3/loadings/fieldStress/FieldStress.py +38 -0
- rs3/loadings/fieldStress/Gravity.py +206 -0
- rs3/loadings/fieldStress/_PropertyAccessor.py +41 -0
- rs3/loadings/fieldStress/__init__.py +0 -0
- rs3/mesh/Graded.py +59 -0
- rs3/mesh/Mesh.py +50 -0
- rs3/mesh/MeshEnums.py +16 -0
- rs3/mesh/Uniform.py +35 -0
- rs3/mesh/_PropertyAccessor.py +10 -0
- rs3/mesh/__init__.py +0 -0
- rs3/projectSettings/Dynamic.py +110 -0
- rs3/projectSettings/Groundwater.py +118 -0
- rs3/projectSettings/ProjectSettingEnums.py +108 -0
- rs3/projectSettings/ProjectSettings.py +43 -0
- rs3/projectSettings/ShearStrengthReduction.py +130 -0
- rs3/projectSettings/SolverOptions.py +88 -0
- rs3/projectSettings/Stages.py +162 -0
- rs3/projectSettings/StressAnalysis.py +183 -0
- rs3/projectSettings/Units.py +82 -0
- rs3/projectSettings/_PropertyAccessor.py +133 -0
- rs3/projectSettings/__init__.py +0 -0
- rs3/properties/CustomHydraulicModel.py +129 -0
- rs3/properties/DiscreteFunction.py +147 -0
- rs3/properties/GeneralizedAnisotropicFunction.py +98 -0
- rs3/properties/IPropertyGroupAccessors.py +12 -0
- rs3/properties/PropertyEnums.py +387 -0
- rs3/properties/ShearNormalFunction.py +94 -0
- rs3/properties/SnowdenStrengthFunction.py +115 -0
- rs3/properties/_PropertyAccessor.py +111 -0
- rs3/properties/__init__.py +0 -0
- rs3/properties/beam/Beam.py +86 -0
- rs3/properties/beam/BeamCommon.py +175 -0
- rs3/properties/beam/Standard.py +97 -0
- rs3/properties/beam/Truss.py +23 -0
- rs3/properties/beam/_PropertyAccessor.py +9 -0
- rs3/properties/beam/__init__.py +0 -0
- rs3/properties/bolt/Bolt.py +81 -0
- rs3/properties/bolt/EndAnchored.py +77 -0
- rs3/properties/bolt/FullyBonded.py +78 -0
- rs3/properties/bolt/PlainStrandCable.py +151 -0
- rs3/properties/bolt/Swellex.py +106 -0
- rs3/properties/bolt/Tieback.py +176 -0
- rs3/properties/bolt/_PropertyAccessor.py +7 -0
- rs3/properties/bolt/__init__.py +0 -0
- rs3/properties/groundwater/WaterByLocation.py +83 -0
- rs3/properties/groundwater/WaterGrid.py +120 -0
- rs3/properties/groundwater/_PropertyAccessor.py +36 -0
- rs3/properties/groundwater/__init__.py +0 -0
- rs3/properties/joint/BartonBandis.py +118 -0
- rs3/properties/joint/GeosyntheticHyperbolic.py +158 -0
- rs3/properties/joint/Joint.py +176 -0
- rs3/properties/joint/MaterialDependent.py +107 -0
- rs3/properties/joint/MohrCoulomb.py +169 -0
- rs3/properties/joint/NoneSlip.py +68 -0
- rs3/properties/joint/_PropertyAccessor.py +9 -0
- rs3/properties/joint/__init__.py +0 -0
- rs3/properties/liner/Geosynthetic.py +85 -0
- rs3/properties/liner/Liner.py +83 -0
- rs3/properties/liner/ReinforcedConcrete.py +216 -0
- rs3/properties/liner/Standard.py +183 -0
- rs3/properties/liner/_PropertyAccessor.py +7 -0
- rs3/properties/liner/__init__.py +0 -0
- rs3/properties/liningComposition/LiningComposition.py +244 -0
- rs3/properties/liningComposition/_PropertyAccessor.py +7 -0
- rs3/properties/liningComposition/__init__.py +0 -0
- rs3/properties/material/Material.py +74 -0
- rs3/properties/material/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/AnisotropicLinear.py +149 -0
- rs3/properties/material/constitutiveModel/AnisotropicLinearPlanarBase.py +72 -0
- rs3/properties/material/constitutiveModel/BarcelonaBasic.py +158 -0
- rs3/properties/material/constitutiveModel/BartonBandis.py +77 -0
- rs3/properties/material/constitutiveModel/BaseConstitutiveModel.py +11 -0
- rs3/properties/material/constitutiveModel/BoundingSurfacePlasticity.py +88 -0
- rs3/properties/material/constitutiveModel/CamClay.py +144 -0
- rs3/properties/material/constitutiveModel/ChSoil.py +111 -0
- rs3/properties/material/constitutiveModel/ConstitutiveModel.py +87 -0
- rs3/properties/material/constitutiveModel/CySoil.py +137 -0
- rs3/properties/material/constitutiveModel/DiscreteFunction.py +39 -0
- rs3/properties/material/constitutiveModel/DoubleYield.py +130 -0
- rs3/properties/material/constitutiveModel/DruckerPrager.py +136 -0
- rs3/properties/material/constitutiveModel/GeneralizedAnisotropic.py +39 -0
- rs3/properties/material/constitutiveModel/GeneralizedHoekBrown.py +226 -0
- rs3/properties/material/constitutiveModel/HardeningSoil.py +156 -0
- rs3/properties/material/constitutiveModel/HardeningSoilWithSmallStrain.py +170 -0
- rs3/properties/material/constitutiveModel/HoekBrown.py +125 -0
- rs3/properties/material/constitutiveModel/Hyperbolic.py +77 -0
- rs3/properties/material/constitutiveModel/JointedGeneralizedHoekBrown.py +184 -0
- rs3/properties/material/constitutiveModel/JointedMohrCoulomb.py +173 -0
- rs3/properties/material/constitutiveModel/ManzariAndDafalias.py +148 -0
- rs3/properties/material/constitutiveModel/ModifiedCamClay.py +11 -0
- rs3/properties/material/constitutiveModel/MohrCoulomb.py +147 -0
- rs3/properties/material/constitutiveModel/MohrCoulombUnsaturatedZoneCalculations.py +80 -0
- rs3/properties/material/constitutiveModel/MohrCoulombWithCap.py +154 -0
- rs3/properties/material/constitutiveModel/Norsand.py +146 -0
- rs3/properties/material/constitutiveModel/PowerCurve.py +119 -0
- rs3/properties/material/constitutiveModel/Shansep.py +214 -0
- rs3/properties/material/constitutiveModel/ShearNormalFunction.py +34 -0
- rs3/properties/material/constitutiveModel/SnowdenAnisotropicLinear.py +108 -0
- rs3/properties/material/constitutiveModel/SoftSoil.py +104 -0
- rs3/properties/material/constitutiveModel/SoftSoilCreep.py +111 -0
- rs3/properties/material/constitutiveModel/SofteningHardening.py +214 -0
- rs3/properties/material/constitutiveModel/SwellingRock.py +202 -0
- rs3/properties/material/constitutiveModel/UnsaturatedZoneCalculations.py +138 -0
- rs3/properties/material/constitutiveModel/VerticalStressRatio.py +113 -0
- rs3/properties/material/constitutiveModel/_PropertyAccessor.py +96 -0
- rs3/properties/material/constitutiveModel/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/jointOption/BartonBandis.py +109 -0
- rs3/properties/material/constitutiveModel/jointOption/MaterialJoint.py +48 -0
- rs3/properties/material/constitutiveModel/jointOption/MaterialJointOptions.py +32 -0
- rs3/properties/material/constitutiveModel/jointOption/MohrCoulomb.py +142 -0
- rs3/properties/material/constitutiveModel/jointOption/PlaneOrientationBase.py +92 -0
- rs3/properties/material/constitutiveModel/jointOption/SimpleHyperbolic.py +112 -0
- rs3/properties/material/constitutiveModel/jointOption/_PropertyAccessor.py +61 -0
- rs3/properties/material/constitutiveModel/jointOption/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/stiffness/BaseStiffness.py +11 -0
- rs3/properties/material/constitutiveModel/stiffness/DuncanChangHyperbolic.py +128 -0
- rs3/properties/material/constitutiveModel/stiffness/GeneralizedHoekBrownEstimation.py +50 -0
- rs3/properties/material/constitutiveModel/stiffness/LinearIsotropic.py +106 -0
- rs3/properties/material/constitutiveModel/stiffness/NonlinearIsotropic.py +104 -0
- rs3/properties/material/constitutiveModel/stiffness/Orthotropic.py +296 -0
- rs3/properties/material/constitutiveModel/stiffness/TransverselyIsotropic.py +186 -0
- rs3/properties/material/constitutiveModel/stiffness/_PropertyAccessor.py +33 -0
- rs3/properties/material/constitutiveModel/stiffness/__init__.py +0 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/Formula1.py +96 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/Formula2.py +136 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/Formula3.py +113 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/_PropertyAccessor.py +37 -0
- rs3/properties/material/constitutiveModel/stiffness/formula/__init__.py +0 -0
- rs3/properties/material/datum/CohesionDatumDependency.py +99 -0
- rs3/properties/material/datum/Datum.py +23 -0
- rs3/properties/material/datum/FrictionAngleDatumDependency.py +99 -0
- rs3/properties/material/datum/YoungsModulusDatumDependency.py +78 -0
- rs3/properties/material/datum/_PropertyAccessor.py +26 -0
- rs3/properties/material/datum/__init__.py +0 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Brooks.py +71 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Custom.py +79 -0
- rs3/properties/material/hydraulic/FEAGroundwater/FEAGroundwater.py +85 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Fredlund.py +82 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Gardner.py +72 -0
- rs3/properties/material/hydraulic/FEAGroundwater/HydraulicMethodVectors.py +97 -0
- rs3/properties/material/hydraulic/FEAGroundwater/HydraulicParametersCommon.py +157 -0
- rs3/properties/material/hydraulic/FEAGroundwater/Simple.py +37 -0
- rs3/properties/material/hydraulic/FEAGroundwater/VanGenuchten.py +94 -0
- rs3/properties/material/hydraulic/FEAGroundwater/_PropertyAccessor.py +16 -0
- rs3/properties/material/hydraulic/FEAGroundwater/__init__.py +0 -0
- rs3/properties/material/hydraulic/Hydraulic.py +111 -0
- rs3/properties/material/hydraulic/PhreaticConditions.py +37 -0
- rs3/properties/material/hydraulic/StaticGroundwater.py +100 -0
- rs3/properties/material/hydraulic/WaterConditions.py +110 -0
- rs3/properties/material/hydraulic/_PropertyAccessor.py +31 -0
- rs3/properties/material/hydraulic/__init__.py +0 -0
- rs3/properties/material/initialConditions/InitialConditions.py +108 -0
- rs3/properties/material/initialConditions/_PropertyAccessor.py +11 -0
- rs3/properties/material/initialConditions/__init__.py +0 -0
- rs3/properties/material/stageFactors/StageFactors.py +77 -0
- rs3/properties/material/stageFactors/_PropertyAccessor.py +7 -0
- rs3/properties/material/stageFactors/__init__.py +0 -0
- rs3/properties/pile/EndCondition.py +109 -0
- rs3/properties/pile/Linear.py +69 -0
- rs3/properties/pile/MohrCoulomb.py +123 -0
- rs3/properties/pile/MultiLinear.py +70 -0
- rs3/properties/pile/Pile.py +108 -0
- rs3/properties/pile/PileCommon.py +99 -0
- rs3/properties/pile/_PropertyAccessor.py +9 -0
- rs3/properties/pile/__init__.py +0 -0
- rs3/properties/stageFactors/IStageFactorBase.py +10 -0
- rs3/properties/stageFactors/StageFactorBaseInterfaces.py +24 -0
- rs3/properties/stageFactors/StageFactorInterfaces.py +70 -0
- rs3/properties/stageFactors/_StageFactorInterface.py +48 -0
- rs3/properties/stageFactors/_StageFactorPropertyAccessor.py +18 -0
- rs3/properties/stageFactors/__init__.py +0 -0
- rs3/results/BeamResults.py +181 -0
- rs3/results/BoltResults.py +214 -0
- rs3/results/CompositeLinerResults.py +374 -0
- rs3/results/JointResults.py +160 -0
- rs3/results/PileForepoleResults.py +219 -0
- rs3/results/ResultEnums.py +146 -0
- rs3/results/Results.py +661 -0
- rs3/results/ResultsCommon.py +66 -0
- rs3/results/SolidElementResults.py +175 -0
- rs3/results/SolidNodalResults.py +248 -0
- rs3/results/SolidResults.py +206 -0
- rs3/results/YieldedElement.py +33 -0
- rs3/results/__init__.py +0 -0
- rs3scripting-4.42.0.dist-info/METADATA +70 -0
- rs3scripting-4.42.0.dist-info/RECORD +393 -0
- rs3scripting-4.42.0.dist-info/WHEEL +5 -0
- rs3scripting-4.42.0.dist-info/licenses/License.txt +20 -0
- rs3scripting-4.42.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
from typing import Optional, Union
|
|
2
|
+
import rs3.generatedFiles.JointResultsQueryService_pb2_grpc as JointResultsQueryService_pb2_grpc
|
|
3
|
+
import rs3.generatedFiles.ResultsQueryCommonMessage_pb2 as ResultsQueryCommonMessage_pb2
|
|
4
|
+
from rs3._proxyObject import _ProxyObject
|
|
5
|
+
from rs3._client import Client
|
|
6
|
+
from rs3.Geometry import Cube, Cylinder, Sphere
|
|
7
|
+
from rs3.results.ResultEnums import *
|
|
8
|
+
|
|
9
|
+
class JointNodalResults:
|
|
10
|
+
'''
|
|
11
|
+
Nodal result wrapper with per-material data access.
|
|
12
|
+
|
|
13
|
+
Notes:
|
|
14
|
+
- EntityNames/EntityIDs correspond to owning entities for this node.
|
|
15
|
+
'''
|
|
16
|
+
def __init__(self, grpcNodalResults):
|
|
17
|
+
self._grpcNodalResults = grpcNodalResults
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def EntityName(self):
|
|
21
|
+
return self._grpcNodalResults.entityInformation.name
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def EntityID(self):
|
|
25
|
+
return self._grpcNodalResults.entityInformation.ID
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def NodeID(self):
|
|
29
|
+
return self._grpcNodalResults.nodeInformation.nodeID
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def XCoordinate(self):
|
|
33
|
+
return self._grpcNodalResults.nodeInformation.location.x
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def YCoordinate(self):
|
|
37
|
+
return self._grpcNodalResults.nodeInformation.location.y
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def ZCoordinate(self):
|
|
41
|
+
return self._grpcNodalResults.nodeInformation.location.z
|
|
42
|
+
|
|
43
|
+
class JointElementResults:
|
|
44
|
+
'''
|
|
45
|
+
Element-level results wrapper for a specific stage/SRF context.
|
|
46
|
+
|
|
47
|
+
Notes:
|
|
48
|
+
- AttachedNodes returns a copy of node IDs; modifying it does not affect internal state.
|
|
49
|
+
'''
|
|
50
|
+
def __init__(self, grpcElementResults):
|
|
51
|
+
self._grpcElementResults = grpcElementResults
|
|
52
|
+
self._jointResults = grpcElementResults.jointNodalResults
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def ElementID(self):
|
|
56
|
+
return self._grpcElementResults.elementInformation.elementID
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def AttachedNodeIDs(self):
|
|
60
|
+
return list(self._grpcElementResults.elementInformation.nodeIDs)
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def EntityName(self):
|
|
64
|
+
return self._grpcElementResults.entityInformation.name
|
|
65
|
+
|
|
66
|
+
@property
|
|
67
|
+
def EntityID(self):
|
|
68
|
+
return self._grpcElementResults.entityInformation.ID
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
def FailureType(self):
|
|
72
|
+
return JointGaussPointFailureCombinations(self._grpcElementResults.failureType)
|
|
73
|
+
|
|
74
|
+
def getResults(self, dataType: InterfaceResultTypes) -> list[float]:
|
|
75
|
+
if not self._jointResults:
|
|
76
|
+
raise ValueError("No joint results available")
|
|
77
|
+
|
|
78
|
+
result = self._jointResults[0]
|
|
79
|
+
return getattr(result, dataType.value)
|
|
80
|
+
|
|
81
|
+
class JointResults(_ProxyObject):
|
|
82
|
+
'''
|
|
83
|
+
Entry point to query joint nodal/element results for a given stage and SRF.
|
|
84
|
+
|
|
85
|
+
Parameters:
|
|
86
|
+
stageNumber (int): 1-based stage index.
|
|
87
|
+
srfResultIndex (int): 0-based SRF value index. 0 is to query SRF-None values.
|
|
88
|
+
|
|
89
|
+
Notes:
|
|
90
|
+
- entityName is trimmed; empty strings are ignored.
|
|
91
|
+
- region=None leaves the proto field unset (service returns all).
|
|
92
|
+
- Exceptions from the underlying service are propagated as-is by the client.
|
|
93
|
+
|
|
94
|
+
Examples:
|
|
95
|
+
See :ref:`joint_result_example`.
|
|
96
|
+
'''
|
|
97
|
+
|
|
98
|
+
def __init__(self, client: Client, projectId: str, stageNumber: list[int], srfResultIndex: int):
|
|
99
|
+
super().__init__(client, projectId)
|
|
100
|
+
self._queryService = JointResultsQueryService_pb2_grpc.JointResultsQueryServiceStub(self._client.channel)
|
|
101
|
+
self._stageNumber = stageNumber
|
|
102
|
+
self._srfResultIndex = srfResultIndex
|
|
103
|
+
|
|
104
|
+
def getJointNodeResults(self, entityNames: Optional[list[str]] = None, region: Optional[Union[Cube, Cylinder, Sphere]] = None, includeIntersecting: bool = True) -> list[JointNodalResults]:
|
|
105
|
+
request = self._makeRequest(entityNames, region, includeIntersecting)
|
|
106
|
+
stream = self._queryService.GetJointNodeResults(request)
|
|
107
|
+
|
|
108
|
+
results = []
|
|
109
|
+
totalQueriedNodesCount = None
|
|
110
|
+
|
|
111
|
+
for chunk in stream:
|
|
112
|
+
if chunk.HasField('header'):
|
|
113
|
+
header = chunk.header
|
|
114
|
+
totalQueriedNodesCount = header.totalQueriedNodesCount
|
|
115
|
+
elif chunk.HasField('data'):
|
|
116
|
+
results.extend(chunk.data.results)
|
|
117
|
+
|
|
118
|
+
if totalQueriedNodesCount != len(results):
|
|
119
|
+
raise RuntimeError(f"Number of nodes received does not match the expected total queried nodes count. Expected {totalQueriedNodesCount}, but received {len(results)}")
|
|
120
|
+
|
|
121
|
+
return [JointNodalResults(r) for r in results]
|
|
122
|
+
|
|
123
|
+
def getJointElementResults(self, entityName: Optional[str] = None, region: Optional[Union[Cube, Cylinder, Sphere]] = None, includeIntersecting: bool = True) -> list[JointElementResults]:
|
|
124
|
+
request = self._makeRequest(entityName, region, includeIntersecting)
|
|
125
|
+
stream = self._queryService.GetJointElementResults(request)
|
|
126
|
+
|
|
127
|
+
results = []
|
|
128
|
+
totalQueriedElementsCount = None
|
|
129
|
+
|
|
130
|
+
for chunk in stream:
|
|
131
|
+
if chunk.HasField('header'):
|
|
132
|
+
header = chunk.header
|
|
133
|
+
totalQueriedElementsCount = header.totalQueriedElementsCount
|
|
134
|
+
elif chunk.HasField('data'):
|
|
135
|
+
results.extend(chunk.data.results)
|
|
136
|
+
|
|
137
|
+
if totalQueriedElementsCount != len(results):
|
|
138
|
+
raise RuntimeError(f"Number of elements received does not match the expected total queried elements count. Expected {totalQueriedElementsCount}, but received {len(results)}")
|
|
139
|
+
|
|
140
|
+
return [JointElementResults(r) for r in results]
|
|
141
|
+
|
|
142
|
+
def _makeRequest(self, entityName: Optional[str], region: Optional[Union[Cube, Cylinder, Sphere]], includeIntersecting: bool = True) -> ResultsQueryCommonMessage_pb2.ResultsQueryRequest:
|
|
143
|
+
request = ResultsQueryCommonMessage_pb2.ResultsQueryRequest(
|
|
144
|
+
_projectId=self._objectId,
|
|
145
|
+
stageNumber=self._stageNumber,
|
|
146
|
+
srfValueNumber=self._srfResultIndex)
|
|
147
|
+
|
|
148
|
+
if entityName:
|
|
149
|
+
# Trim whitespace inside each string if needed
|
|
150
|
+
request.entityName = entityName.strip()
|
|
151
|
+
|
|
152
|
+
if region is not None:
|
|
153
|
+
if isinstance(region, (Cube, Cylinder, Sphere)):
|
|
154
|
+
common_region = region.toCommonGeometryObject()
|
|
155
|
+
request.sampleRegion.region.CopyFrom(common_region)
|
|
156
|
+
request.sampleRegion.includeIntersecting = includeIntersecting
|
|
157
|
+
else:
|
|
158
|
+
raise TypeError(f"Unsupported region type: {type(region)}")
|
|
159
|
+
|
|
160
|
+
return request
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
from typing import List, Dict, Union, Optional, Tuple
|
|
2
|
+
|
|
3
|
+
import rs3.generatedFiles.PileForepoleResultsQueryService_pb2_grpc as PileForepoleResultsQueryService_pb2_grpc
|
|
4
|
+
|
|
5
|
+
from rs3._client import Client
|
|
6
|
+
|
|
7
|
+
from rs3.results.ResultsCommon import _NodeValuePairCollection, _ResultsQueryBase
|
|
8
|
+
from rs3.results.ResultEnums import BeamsDataType, PileInterfaceDataType, BeamForepolePileGaussPointFailureType
|
|
9
|
+
from rs3.results.YieldedElement import YieldedElement
|
|
10
|
+
from rs3.Geometry import Cube, Cylinder, Sphere
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class PileNodeResults:
|
|
14
|
+
def __init__(self, grpcNodeResults):
|
|
15
|
+
self._grpcNodeResults = grpcNodeResults
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def NodeID(self):
|
|
19
|
+
return self._grpcNodeResults.nodeInformation.nodeID
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def XCoordinate(self):
|
|
23
|
+
return self._grpcNodeResults.nodeInformation.location.x
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def YCoordinate(self):
|
|
27
|
+
return self._grpcNodeResults.nodeInformation.location.y
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def ZCoordinate(self):
|
|
31
|
+
return self._grpcNodeResults.nodeInformation.location.z
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def EntityName(self):
|
|
35
|
+
return self._grpcNodeResults.entityInformation.name
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def EntityID(self):
|
|
39
|
+
return self._grpcNodeResults.entityInformation.ID
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def PileID(self):
|
|
43
|
+
return self._grpcNodeResults.indexToPattern
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class PileForepoleElementResults:
|
|
48
|
+
def __init__(self, grpcElementResults):
|
|
49
|
+
self._grpcElementResults = grpcElementResults
|
|
50
|
+
self._nodeResultsByDataType = self._buildNodeResultsByDataType(grpcElementResults)
|
|
51
|
+
self._yieldedElement = YieldedElement(grpcElementResults.failurePoint, failureTypeEnum=BeamForepolePileGaussPointFailureType) if grpcElementResults.HasField('failurePoint') else None
|
|
52
|
+
self._interfaceYieldedElement = YieldedElement(grpcElementResults.interfaceFailurePoint, failureTypeEnum=BeamForepolePileGaussPointFailureType) if grpcElementResults.HasField('interfaceFailurePoint') else None
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def EntityName(self):
|
|
56
|
+
return self._grpcElementResults.entityInformation.name
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def EntityID(self):
|
|
60
|
+
return self._grpcElementResults.entityInformation.ID
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def AttachedNodeIDs(self):
|
|
64
|
+
return self._grpcElementResults.nodeIDs
|
|
65
|
+
|
|
66
|
+
@property
|
|
67
|
+
def PileID(self):
|
|
68
|
+
return self._grpcElementResults.pileID
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
def BeamID(self):
|
|
72
|
+
return self._grpcElementResults.beamElementID
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def InterfaceID(self):
|
|
76
|
+
return self._grpcElementResults.interfaceElementID
|
|
77
|
+
|
|
78
|
+
def getNodeResult(self, dataType: Union[BeamsDataType, PileInterfaceDataType]) -> List[float]:
|
|
79
|
+
key = (type(dataType), dataType)
|
|
80
|
+
if key not in self._nodeResultsByDataType:
|
|
81
|
+
raise ValueError(f"Data type {dataType} not found")
|
|
82
|
+
return self._nodeResultsByDataType[key].ResultValues
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def getResultsInNodeDataTuple(self, dataType: Union[BeamsDataType, PileInterfaceDataType]) -> List[Tuple[int, float]]:
|
|
86
|
+
key = (type(dataType), dataType)
|
|
87
|
+
if key not in self._nodeResultsByDataType:
|
|
88
|
+
raise ValueError(f"Data type {dataType} not found")
|
|
89
|
+
return self._nodeResultsByDataType[key].NodeValuePairs
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
def YieldedElement(self):
|
|
94
|
+
return self._yieldedElement
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def InterfaceYieldedElement(self):
|
|
98
|
+
return self._interfaceYieldedElement
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def _buildNodeResultsByDataType(self, grpcElementResults):
|
|
102
|
+
nodeIDElementValuePairs = [(nodeID, nodeValue) for nodeID, nodeValue in zip(grpcElementResults.nodeIDs, grpcElementResults.nodeValues.elementNodeValues)]
|
|
103
|
+
nodeIDInterfaceValuePairs = [(nodeID, nodeValue) for nodeID, nodeValue in zip(grpcElementResults.nodeIDs, grpcElementResults.nodeValues.interfaceNodeValues)]
|
|
104
|
+
beamNodePairsByType: Dict[BeamsDataType, List[tuple[int, float]]] = {dt: [] for dt in BeamsDataType}
|
|
105
|
+
for nodeID, nodeValue in nodeIDElementValuePairs:
|
|
106
|
+
beamNodePairsByType[BeamsDataType.AXIS_FORCE].append((nodeID, nodeValue.axisForce))
|
|
107
|
+
beamNodePairsByType[BeamsDataType.SHEAR_FORCE_MIN_AXIS].append((nodeID, nodeValue.shearForceMinAxis))
|
|
108
|
+
beamNodePairsByType[BeamsDataType.SHEAR_FORCE_MAX_AXIS].append((nodeID, nodeValue.shearForceMaxAxis))
|
|
109
|
+
beamNodePairsByType[BeamsDataType.MOMENT_MIN_AXIS].append((nodeID, nodeValue.momentMinAxis))
|
|
110
|
+
beamNodePairsByType[BeamsDataType.MOMENT_MAX_AXIS].append((nodeID, nodeValue.momentMaxAxis))
|
|
111
|
+
beamNodePairsByType[BeamsDataType.DISPLACEMENT_X].append((nodeID, nodeValue.displacementX))
|
|
112
|
+
beamNodePairsByType[BeamsDataType.DISPLACEMENT_Y].append((nodeID, nodeValue.displacementY))
|
|
113
|
+
beamNodePairsByType[BeamsDataType.DISPLACEMENT_Z].append((nodeID, nodeValue.displacementZ))
|
|
114
|
+
beamNodePairsByType[BeamsDataType.DISPLACEMENT_TOTAL].append((nodeID, nodeValue.totalDisplacement))
|
|
115
|
+
interfaceNodePairsByType: Dict[PileInterfaceDataType, List[tuple[int, float]]] = {dt: [] for dt in PileInterfaceDataType}
|
|
116
|
+
for nodeID, nodeValue in nodeIDInterfaceValuePairs:
|
|
117
|
+
interfaceNodePairsByType[PileInterfaceDataType.SHEAR_FORCE].append((nodeID, nodeValue.shearForce))
|
|
118
|
+
interfaceNodePairsByType[PileInterfaceDataType.NORMAL_FORCE_MIN_AXIS].append((nodeID, nodeValue.normalForceMinAxis))
|
|
119
|
+
interfaceNodePairsByType[PileInterfaceDataType.NORMAL_FORCE_MAX_AXIS].append((nodeID, nodeValue.normalForceMaxAxis))
|
|
120
|
+
interfaceNodePairsByType[PileInterfaceDataType.CONFINING_STRESS].append((nodeID, nodeValue.confiningStress))
|
|
121
|
+
interfaceNodePairsByType[PileInterfaceDataType.DISPLACEMENT_X].append((nodeID, nodeValue.rockDisplacementX))
|
|
122
|
+
interfaceNodePairsByType[PileInterfaceDataType.DISPLACEMENT_Y].append((nodeID, nodeValue.rockDisplacementY))
|
|
123
|
+
interfaceNodePairsByType[PileInterfaceDataType.DISPLACEMENT_Z].append((nodeID, nodeValue.rockDisplacementZ))
|
|
124
|
+
interfaceNodePairsByType[PileInterfaceDataType.DISPLACEMENT_TOTAL].append((nodeID, nodeValue.rockTotalDisplacement))
|
|
125
|
+
|
|
126
|
+
# Use (type(dt), dt) as key so BeamsDataType and PileInterfaceDataType entries with same
|
|
127
|
+
# enum value (e.g. DISPLACEMENT_TOTAL) are stored separately; str Enum equality would
|
|
128
|
+
# otherwise collapse them into one key.
|
|
129
|
+
nodeResultsByType: Dict[Tuple[type, Union[BeamsDataType, PileInterfaceDataType]], _NodeValuePairCollection] = {}
|
|
130
|
+
for dt, pairs in beamNodePairsByType.items():
|
|
131
|
+
nodeResultsByType[(BeamsDataType, dt)] = _NodeValuePairCollection(pairs)
|
|
132
|
+
for dt, pairs in interfaceNodePairsByType.items():
|
|
133
|
+
nodeResultsByType[(PileInterfaceDataType, dt)] = _NodeValuePairCollection(pairs)
|
|
134
|
+
|
|
135
|
+
return nodeResultsByType
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class PileForepoleResults(_ResultsQueryBase):
|
|
140
|
+
'''
|
|
141
|
+
Entry point to query pile forepole nodal/element results for a given stage and SRF.
|
|
142
|
+
|
|
143
|
+
Parameters:
|
|
144
|
+
stageNumber (int): 1-based stage index.
|
|
145
|
+
srfResultIndex (int): 0-based SRF value index. 0 is to query SRF-None values.
|
|
146
|
+
|
|
147
|
+
Notes:
|
|
148
|
+
- entityName is trimmed; empty strings are ignored.
|
|
149
|
+
- region=None leaves the proto field unset (service returns all).
|
|
150
|
+
- Exceptions from the underlying service are propagated as-is by the client.
|
|
151
|
+
|
|
152
|
+
Examples:
|
|
153
|
+
See :ref:`pile_result_example`.
|
|
154
|
+
'''
|
|
155
|
+
def __init__(self, client: Client, projectId: str, stageNumber: int, srfResultIndex: int):
|
|
156
|
+
super().__init__(client, projectId, stageNumber, srfResultIndex)
|
|
157
|
+
self._queryService = PileForepoleResultsQueryService_pb2_grpc.PileForepoleResultsQueryServiceStub(client.channel)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def getPileForepoleNodeResults(self, entityName: Optional[str] = None, region: Optional[Union[Cube, Cylinder, Sphere]] = None, includeIntersecting: bool = True) -> list[PileNodeResults]:
|
|
161
|
+
'''
|
|
162
|
+
Query pile forepole node results at a specific stage and SRF value.
|
|
163
|
+
Parameters:
|
|
164
|
+
entityName: Optional[str]: If provided, only nodes belonging to the specified entity are queried.
|
|
165
|
+
region: Optional[Union[Cube, Cylinder, Sphere]]: Sample region filter. When None, the field is not set in the request (proto3 unset), and the service returns all nodes.
|
|
166
|
+
includeIntersecting: bool: If True, nodes that intersect the sample region are included. When False, only nodes fully contained are included. Ignored when region is None.
|
|
167
|
+
Raises:
|
|
168
|
+
Exception if:
|
|
169
|
+
- stageNumber is less than 1
|
|
170
|
+
- stageNumber is greater than the number of stages in the project
|
|
171
|
+
- _srfResultIndex is less than 0
|
|
172
|
+
- _srfResultIndex is greater than the number of SRF values in the project
|
|
173
|
+
Returns:
|
|
174
|
+
list[PileNodeResults]: A list of pile forepole node results wrappers for the requested stage and SRF value.
|
|
175
|
+
'''
|
|
176
|
+
request = self._makeRequest(entityName, region, includeIntersecting)
|
|
177
|
+
stream = self._queryService.QueryPileForepoleNodeResults(request)
|
|
178
|
+
allResults = []
|
|
179
|
+
totalQueriedNodesCount = None
|
|
180
|
+
for chunk in stream:
|
|
181
|
+
if chunk.HasField('header'):
|
|
182
|
+
header = chunk.header
|
|
183
|
+
totalQueriedNodesCount = header.totalQueriedNodesCount
|
|
184
|
+
elif chunk.HasField('data'):
|
|
185
|
+
allResults.extend(chunk.data.results)
|
|
186
|
+
if totalQueriedNodesCount is not None and totalQueriedNodesCount != len(allResults):
|
|
187
|
+
raise RuntimeError(f"Number of nodes received does not match the expected total queried nodes count. Expected {totalQueriedNodesCount}, but received {len(allResults)}.")
|
|
188
|
+
return [PileNodeResults(r) for r in allResults]
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def getPileForepoleElementResults(self, entityName: Optional[str] = None, region: Optional[Union[Cube, Cylinder, Sphere]] = None, includeIntersecting: bool = True) -> list[PileForepoleElementResults]:
|
|
192
|
+
'''
|
|
193
|
+
Query pile forepole element results at a specific stage and SRF value.
|
|
194
|
+
Parameters:
|
|
195
|
+
entityName: Optional[str]: If provided, only elements belonging to the specified entity are queried.
|
|
196
|
+
region: Optional[Union[Cube, Cylinder, Sphere]]: Sample region filter. When None, the field is not set in the request (proto3 unset), and the service returns all elements.
|
|
197
|
+
includeIntersecting: bool: If True, elements that intersect the sample region are included. When False, only elements fully contained are included. Ignored when region is None.
|
|
198
|
+
Raises:
|
|
199
|
+
Exception if:
|
|
200
|
+
- stageNumber is less than 1
|
|
201
|
+
- stageNumber is greater than the number of stages in the project
|
|
202
|
+
- _srfResultIndex is less than 0
|
|
203
|
+
- _srfResultIndex is greater than the number of SRF values in the project
|
|
204
|
+
Returns:
|
|
205
|
+
list[PileForepoleElementResults]: A list of pile forepole element results wrappers for the requested stage and SRF value.
|
|
206
|
+
'''
|
|
207
|
+
request = self._makeRequest(entityName, region, includeIntersecting)
|
|
208
|
+
stream = self._queryService.QueryPileForepoleElementResults(request)
|
|
209
|
+
allResults = []
|
|
210
|
+
totalQueriedElementsCount = None
|
|
211
|
+
for chunk in stream:
|
|
212
|
+
if chunk.HasField('header'):
|
|
213
|
+
header = chunk.header
|
|
214
|
+
totalQueriedElementsCount = header.totalQueriedElementsCount
|
|
215
|
+
elif chunk.HasField('data'):
|
|
216
|
+
allResults.extend(chunk.data.results)
|
|
217
|
+
if totalQueriedElementsCount is not None and totalQueriedElementsCount != len(allResults):
|
|
218
|
+
raise RuntimeError(f"Number of elements received does not match the expected total queried elements count. Expected {totalQueriedElementsCount}, but received {len(allResults)}.")
|
|
219
|
+
return [PileForepoleElementResults(r) for r in allResults]
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SolidsDataType(str, Enum):
|
|
4
|
+
SIGMA_1_EFFECTIVE = "sigma1"
|
|
5
|
+
SIGMA_2_EFFECTIVE = "sigma2"
|
|
6
|
+
SIGMA_3_EFFECTIVE = "sigma3"
|
|
7
|
+
STRESS_MEAN = "stressMean"
|
|
8
|
+
STRESS_VON_MISES = "stressVonMises"
|
|
9
|
+
SIGMA_1_TOTAL = "sigma1Total"
|
|
10
|
+
SIGMA_2_TOTAL = "sigma2Total"
|
|
11
|
+
SIGMA_3_TOTAL = "sigma3Total"
|
|
12
|
+
STRESS_MEAN_TOTAL = "stressMeanTotal"
|
|
13
|
+
STRESS_VON_MISES_TOTAL = "stressVonMisesTotal"
|
|
14
|
+
DISPLACEMENT_X = "displacementX"
|
|
15
|
+
DISPLACEMENT_Y = "displacementY"
|
|
16
|
+
DISPLACEMENT_Z = "displacementZ"
|
|
17
|
+
TOTAL_DISPLACEMENT = "totalDisplacement"
|
|
18
|
+
EXCESS_PWP = "excessPWP"
|
|
19
|
+
TOTAL_PWP = "totalPWP"
|
|
20
|
+
VOLUMETRIC_STRAIN = "volumetricStrain"
|
|
21
|
+
MAX_SHEAR_STRAIN = "maxShearStrain"
|
|
22
|
+
SIGMA_XX_EFFECTIVE = "sigmaXX"
|
|
23
|
+
SIGMA_YY_EFFECTIVE = "sigmaYY"
|
|
24
|
+
SIGMA_ZZ_EFFECTIVE = "sigmaZZ"
|
|
25
|
+
SIGMA_XY_EFFECTIVE = "sigmaXY"
|
|
26
|
+
SIGMA_XZ_EFFECTIVE = "sigmaXZ"
|
|
27
|
+
SIGMA_YZ_EFFECTIVE = "sigmaYZ"
|
|
28
|
+
SIGMA_XX_TOTAL = "sigmaXXTotal"
|
|
29
|
+
SIGMA_YY_TOTAL = "sigmaYYTotal"
|
|
30
|
+
SIGMA_ZZ_TOTAL = "sigmaZZTotal"
|
|
31
|
+
SIGMA_XY_TOTAL = "sigmaXYTotal"
|
|
32
|
+
SIGMA_XZ_TOTAL = "sigmaXZTotal"
|
|
33
|
+
SIGMA_YZ_TOTAL = "sigmaYZTotal"
|
|
34
|
+
STRAIN_P_MAJOR = "strainPMajor"
|
|
35
|
+
STRAIN_P_MEAN = "strainPMean"
|
|
36
|
+
STRAIN_P_MINOR = "strainPMinor"
|
|
37
|
+
STRAIN_XX = "strainXX"
|
|
38
|
+
STRAIN_YY = "strainYY"
|
|
39
|
+
STRAIN_ZZ = "strainZZ"
|
|
40
|
+
STRAIN_XY = "strainXY"
|
|
41
|
+
STRAIN_XZ = "strainXZ"
|
|
42
|
+
STRAIN_YZ = "strainYZ"
|
|
43
|
+
PRESSURE_HEAD = "pressureHead"
|
|
44
|
+
TOTAL_HEAD = "totalHead"
|
|
45
|
+
DISCHARGE_VELOCITY_X = "dischargeVelocityX"
|
|
46
|
+
DISCHARGE_VELOCITY_Y = "dischargeVelocityY"
|
|
47
|
+
DISCHARGE_VELOCITY_Z = "dischargeVelocityZ"
|
|
48
|
+
TOTAL_DISCHARGE_VELOCITY = "totalDischargeVelocity"
|
|
49
|
+
HYDRAULIC_GRADIENT_X = "hydraulicGradientX"
|
|
50
|
+
HYDRAULIC_GRADIENT_Y = "hydraulicGradientY"
|
|
51
|
+
HYDRAULIC_GRADIENT_Z = "hydraulicGradientZ"
|
|
52
|
+
HYDRAULIC_GRADIENT_TOTAL = "hydraulicGradientTotal"
|
|
53
|
+
DEGREE_SATURATION = "degreeSaturation"
|
|
54
|
+
STRENGTH_FACTOR = "strengthFactor"
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class BeamsDataType(str, Enum):
|
|
58
|
+
AXIS_FORCE = "axisForce"
|
|
59
|
+
SHEAR_FORCE_MIN_AXIS = "shearForceMinAxis"
|
|
60
|
+
SHEAR_FORCE_MAX_AXIS = "shearForceMaxAxis"
|
|
61
|
+
MOMENT_MIN_AXIS = "momentMinAxis"
|
|
62
|
+
MOMENT_MAX_AXIS = "momentMaxAxis"
|
|
63
|
+
DISPLACEMENT_X = "displacementX"
|
|
64
|
+
DISPLACEMENT_Y = "displacementY"
|
|
65
|
+
DISPLACEMENT_Z = "displacementZ"
|
|
66
|
+
DISPLACEMENT_TOTAL = "displacementTotal"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class PileInterfaceDataType(str, Enum):
|
|
70
|
+
SHEAR_FORCE = "shearForce"
|
|
71
|
+
NORMAL_FORCE_MIN_AXIS = "normalForceMinAxis"
|
|
72
|
+
NORMAL_FORCE_MAX_AXIS = "normalForceMaxAxis"
|
|
73
|
+
CONFINING_STRESS = "confiningStress"
|
|
74
|
+
DISPLACEMENT_X = "displacementX"
|
|
75
|
+
DISPLACEMENT_Y = "displacementY"
|
|
76
|
+
DISPLACEMENT_Z = "displacementZ"
|
|
77
|
+
DISPLACEMENT_TOTAL = "displacementTotal"
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class BeamForepolePileGaussPointFailureType(str, Enum):
|
|
81
|
+
NONE = "No failure"
|
|
82
|
+
SHEAR = "Shear failure"
|
|
83
|
+
TENSION = "Tension failure"
|
|
84
|
+
TENSION_SHEAR = "Shear + tension failure"
|
|
85
|
+
COMPRESSION = "Compression failure"
|
|
86
|
+
|
|
87
|
+
class LinerResultTypes(Enum):
|
|
88
|
+
DISPLACEMENT_X = "DISPLACEMENT_X"
|
|
89
|
+
DISPLACEMENT_Y = "DISPLACEMENT_Y"
|
|
90
|
+
DISPLACEMENT_Z = "DISPLACEMENT_Z"
|
|
91
|
+
TOTAL_DISPLACEMENT = "TOTAL_DISPLACEMENT"
|
|
92
|
+
NORMAL_DISPLACEMENT = "NORMAL_DISPLACEMENT"
|
|
93
|
+
AXIAL_FORCE_XX = "AXIAL_FORCE_XX"
|
|
94
|
+
AXIAL_FORCE_YY = "AXIAL_FORCE_YY"
|
|
95
|
+
AXIAL_FORCE_ZZ = "AXIAL_FORCE_ZZ"
|
|
96
|
+
SHEAR_FORCE_YZ = "SHEAR_FORCE_YZ"
|
|
97
|
+
SHEAR_FORCE_XZ = "SHEAR_FORCE_XZ"
|
|
98
|
+
SHEAR_FORCE_XY = "SHEAR_FORCE_XY"
|
|
99
|
+
MOMENT_XX = "MOMENT_XX"
|
|
100
|
+
MOMENT_YY = "MOMENT_YY"
|
|
101
|
+
MOMENT_ZZ = "MOMENT_ZZ"
|
|
102
|
+
MOMENT_YZ = "MOMENT_YZ"
|
|
103
|
+
MOMENT_XZ = "MOMENT_XZ"
|
|
104
|
+
MOMENT_XY = "MOMENT_XY"
|
|
105
|
+
|
|
106
|
+
class InterfaceResultTypes(Enum):
|
|
107
|
+
DISPLACEMENT_X = "DISPLACEMENT_X"
|
|
108
|
+
DISPLACEMENT_Y = "DISPLACEMENT_Y"
|
|
109
|
+
DISPLACEMENT_Z = "DISPLACEMENT_Z"
|
|
110
|
+
NORMAL_STRESS = "NORMAL_STRESS"
|
|
111
|
+
SHEAR_STRESS = "SHEAR_STRESS"
|
|
112
|
+
PLASTIC_STRAIN = "PLASTIC_STRAIN"
|
|
113
|
+
DISPLACEMENT_NORMAL = "DISPLACEMENT_NORMAL"
|
|
114
|
+
DISPLACEMENT_SHEAR = "DISPLACEMENT_SHEAR"
|
|
115
|
+
|
|
116
|
+
class LinerGaussPointFailureCombinations(Enum):
|
|
117
|
+
NONE = "NONE"
|
|
118
|
+
TENSION = "TENSION"
|
|
119
|
+
COMPRESSION = "COMPRESSION"
|
|
120
|
+
|
|
121
|
+
class JointGaussPointFailureCombinations(Enum):
|
|
122
|
+
NONE = "NONE"
|
|
123
|
+
SHEAR = "SHEAR"
|
|
124
|
+
TENSION = "TENSION"
|
|
125
|
+
TENSION_SHEAR = "TENSION_SHEAR"
|
|
126
|
+
|
|
127
|
+
class BoltDataType(str, Enum):
|
|
128
|
+
AXIAL_FORCE = "axialForce"
|
|
129
|
+
AXIAL_STRESS = "axialStress"
|
|
130
|
+
DISPLACEMENT_X = "displacementX"
|
|
131
|
+
DISPLACEMENT_Y = "displacementY"
|
|
132
|
+
DISPLACEMENT_Z = "displacementZ"
|
|
133
|
+
DISPLACEMENT_TOTAL = "displacementTotal"
|
|
134
|
+
INTERFACE_SHEAR_FORCE = "interfaceShearForce"
|
|
135
|
+
INTERFACE_DISPLACEMENT_X = "interfaceDisplacementX"
|
|
136
|
+
INTERFACE_DISPLACEMENT_Y = "interfaceDisplacementY"
|
|
137
|
+
INTERFACE_DISPLACEMENT_Z = "interfaceDisplacementZ"
|
|
138
|
+
INTERFACE_DISPLACEMENT_TOTAL = "interfaceDisplacementTotal"
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class BoltGaussPointFailureType(str, Enum):
|
|
142
|
+
NONE = "No failure"
|
|
143
|
+
SHEAR = "Shear failure"
|
|
144
|
+
TENSION = "Tension failure"
|
|
145
|
+
TENSION_SHEAR = "Shear + tension failure"
|
|
146
|
+
COMPRESSION = "Compression failure"
|