{ "cells": [ { "cell_type": "markdown", "id": "aececd27", "metadata": { "papermill": { "duration": 0.002161, "end_time": "2026-03-19T15:10:16.050434", "exception": false, "start_time": "2026-03-19T15:10:16.048273", "status": "completed" }, "tags": [] }, "source": [ "(material property strength example)=\n", "# Material Strength Properties Script Examples" ] }, { "cell_type": "markdown", "id": "8f03602b", "metadata": { "papermill": { "duration": 0.001354, "end_time": "2026-03-19T15:10:16.053915", "exception": false, "start_time": "2026-03-19T15:10:16.052561", "status": "completed" }, "tags": [] }, "source": [ "Download the [ExampleModel.fez](https://github.com/Rocscience/rs2-scripting/blob/main/docs/example_code/example_models/ExampleModel.fez) for this example." ] }, { "cell_type": "code", "execution_count": 1, "id": "efd68734", "metadata": { "execution": { "iopub.execute_input": "2026-03-19T15:10:16.058357Z", "iopub.status.busy": "2026-03-19T15:10:16.058079Z", "iopub.status.idle": "2026-03-19T15:10:33.243800Z", "shell.execute_reply": "2026-03-19T15:10:33.241613Z" }, "papermill": { "duration": 17.190789, "end_time": "2026-03-19T15:10:33.246110", "exception": false, "start_time": "2026-03-19T15:10:16.055321", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Peak Tensile Strength = 1.0, Peak Friction Angle = 30.0, Peak Cohesion = 12.0\n", "Res Peak Tensile = 2.0, Res Peak Friction = 35.0, Res Cohesion = 35.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Normal Stress = [1.0, 2.0]\n", "Shear Stress = [3.0, 4.0]\n", "Residual Shear Stress = [2.2, 3.6]\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Strength Stage Factor Values:\n", "Reset Yield = True, Air Entry Value = 1.5, Unsaturated Shear Strength Angle = 3.9\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Strength Basic Barcelona Model Stage Factor Values\n", "Gamma Factor = 3.3, Lambda Factor = 2.0,N Parameter Factor = 5.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Hoek Brown Stage Factor Values\n", "Dilation Parameter = 2.2, Compressive Strength = 5.0, MB Parameter = 1.0\n" ] } ], "source": [ "from rs2.modeler.RS2Modeler import RS2Modeler\n", "from rs2.modeler.properties.PropertyEnums import *\n", "import os\n", "\n", "current_dir = os.path.dirname(os.path.abspath(\"\")) \n", "RS2Modeler.startApplication(port=60070)\n", "modeler = RS2Modeler(port=60070)\n", "model = modeler.openFile(rf\"{current_dir}\\example_models\\ExampleModel.fez\")\n", "\n", "material = model.getAllMaterialProperties()[0]\n", "strength = material.Strength\n", "\n", "strength.setFailureCriterion(StrengthCriteriaTypes.MOHR_COULOMB)\n", "material.Strength.MohrCoulombStrength.setMaterialType(MaterialType.PLASTIC)\n", "strength.setUnsaturatedBehavior(UnsaturatedParameterType.SINGLE_EFFECTIVE_STRESS)\n", "strength.setSingleEffectiveStressMethod(UnsaturatedSingleEffectiveStressMethod.TABULAR_VALUE)\n", "strength.setUseCutoff(True)\n", "strength.setCutoffValue(-0.8)\n", "\n", "mohr_coulomb = strength.MohrCoulombStrength\n", "mohr_coulomb.setPeakTensileStrength(1)\n", "mohr_coulomb.setPeakFrictionAngle(30)\n", "mohr_coulomb.setPeakCohesion(12)\n", "mohr_coulomb.setResidualTensileStrength(2)\n", "mohr_coulomb.setResidualFrictionAngle(35)\n", "mohr_coulomb.setResidualCohesion(13.5)\n", "mohr_coulomb.setDilationAngle(15)\n", "print(f\"Peak Tensile Strength = {mohr_coulomb.getPeakTensileStrength()}, Peak Friction Angle = {mohr_coulomb.getPeakFrictionAngle()}, Peak Cohesion = {mohr_coulomb.getPeakCohesion()}\")\n", "print(f\"Res Peak Tensile = {mohr_coulomb.getResidualTensileStrength()}, Res Peak Friction = {mohr_coulomb.getResidualFrictionAngle()}, Res Cohesion = {mohr_coulomb.getResidualFrictionAngle()}\")\n", "\n", "tabularValueMethod = strength.setTabularValues(UnsaturatedTabularValueMethod.WITH_RESPECT_TO_SUCTION)\n", "strength.setUnsaturatedZoneTableWithRespectToSuction(coefficients=[1, 2], values=[5, 6])\n", "\n", "snowdenAnisotripicFunction = material.Strength.SnowdenModAnisotropicLinear.getBeddingStrengthFunction()\n", "snowdenAnisotripicFunction.setDilationRatio(0.74)\n", "snowdenAnisotripicFunction.setPeakTensileStrength(5)\n", "snowdenAnisotripicFunction.setResidualTensileStrength(8)\n", "snowdenAnisotripicFunction.setFunctionType(SnowdenAnisotropicFunctionType.FUNCTION_TYPE_SHEAR_NORMAL)\n", "snowdenAnisotripicFunction.setShearNormalFunctionWithResidual(normalStress=[1 , 2],\n", " shearStress=[3, 4],\n", " residualShearStress=[2.2, 3.6])\n", "print(f\"Normal Stress = {snowdenAnisotripicFunction.getNormalStress()}\")\n", "print(f\"Shear Stress = {snowdenAnisotripicFunction.getShearStress()}\")\n", "print(f\"Residual Shear Stress = {snowdenAnisotripicFunction.getResidualShearStress()}\\n\")\n", "\n", "\n", "# Manipulation of Strength Stage Factor Properties for stage 2\n", "# Make sure to your Stiffness Elastic Type isn't Custom before manipulating any factor values\n", "material.Stiffness.setElasticType(MaterialElasticityTypes.ISOTROPIC)\n", "material.StageFactors.setStageStrengthStiffnessStageFactors(True)\n", "\n", "definedStageFactors = material.StageFactors.getDefinedStageFactors()\n", "newStageFactor = material.StageFactors.createStageFactor(2)\n", "definedStageFactors[2] = newStageFactor\n", "material.StageFactors.setDefinedStageFactors(definedStageFactors)\n", "\n", "strengthFactor = material.Strength.stageFactorInterface.getDefinedStageFactors()[2]\n", "\n", "strengthFactor.setResetYield(True)\n", "strengthFactor.setAirEntryValueFactor(1.5)\n", "strengthFactor.setUnsaturatedShearStrengthAngleFactor(3.9)\n", "\n", "print(\"\\nStrength Stage Factor Values:\")\n", "print(f\"Reset Yield = {strengthFactor.getResetYield()}, Air Entry Value = {strengthFactor.getAirEntryValueFactor()}, Unsaturated Shear Strength Angle = {strengthFactor.getUnsaturatedShearStrengthAngleFactor()}\")\n", "\n", "# Manipulation of Strength Basic Barcelona Model Stage 2 factors\n", "material.Strength.setFailureCriterion(StrengthCriteriaTypes.BARCELONA_BASIC)\n", "barcelonaFactors = material.Strength.BarcelonaBasic.stageFactorInterface.getDefinedStageFactors()[2]\n", "\n", "barcelonaFactors.setGammaFactor(3.3)\n", "barcelonaFactors.setLambdaFactor(2)\n", "barcelonaFactors.setNParameterFactor(5)\n", "\n", "print(\"\\nStrength Basic Barcelona Model Stage Factor Values\")\n", "print(f\"Gamma Factor = {barcelonaFactors.getGammaFactor()}, Lambda Factor = {barcelonaFactors.getLambdaFactor()},N Parameter Factor = {barcelonaFactors.getNParameterFactor()}\")\n", "\n", "# Manipulation of Strength Hoek Brown Stage 2 factors\n", "material.Strength.setFailureCriterion(StrengthCriteriaTypes.HOEK_BROWN)\n", "hoekBrownFactors = material.Strength.HoekBrown.stageFactorInterface.getDefinedStageFactors()[2]\n", "\n", "hoekBrownFactors.setDilationParameterFactor(2.2)\n", "hoekBrownFactors.setCompressiveStrengthFactor(5)\n", "hoekBrownFactors.setMbParameterFactor(1)\n", "\n", "print(\"\\nHoek Brown Stage Factor Values\")\n", "print(f\"Dilation Parameter = {hoekBrownFactors.getDilationParameterFactor()}, Compressive Strength = {hoekBrownFactors.getCompressiveStrengthFactor()}, MB Parameter = {hoekBrownFactors.getMbParameterFactor()}\")\n", "\n", "model.close()\n", "\n", "modeler.closeProgram()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.0" }, "papermill": { "default_parameters": {}, "duration": 21.28648, "end_time": "2026-03-19T15:10:36.060163", "environment_variables": {}, "exception": null, "input_path": "C:\\Users\\GraceHu\\source\\repos\\RS2_Python_Client_Library\\docs\\example_code\\material\\material_strength_properties_script_examples.ipynb", "output_path": "C:\\Users\\GraceHu\\source\\repos\\RS2_Python_Client_Library\\docs\\example_code\\material\\material_strength_properties_script_examples.ipynb", "parameters": {}, "start_time": "2026-03-19T15:10:14.773683", "version": "2.6.0" } }, "nbformat": 4, "nbformat_minor": 5 }