Drucker-Prager Model: Triaxial Driver versus Semi-Analytical Solution
Problem description
This example uses the Triaxial Driver to simulate an elasto-plastic triaxial compression test of a Drucker-Prager solid. Constant lateral confining stress together with loading/unloading axial strain periods are imposed. Imposed axial strain range are high enough for allowing plastic yield in both loading and unloading period. This complicated scenario is used for verifying the numerical convergence and accuracy of the Drucker-Prager constitutive model implemented in GEOS.
Semi-analytical results for axial stress variations and lateral strain variations
can be established for the imposed triaxial boundary conditions:
where and
are elasto-plastic Young moduli that can be obtained from the elastic Young and shear moduli (
and
), the frictional parameter
, the dilation parameter
and the hardening rate
of the Drucker-Prager model by:
These solutions are applied only when the plastic yield condition is satisfied. The cohesion parameter defining the plastic yield surface is updated with stress changes as
These solutions were established for a positive shear stress (negative sign convention for compressional stress). For the case when the plastic yield occurs at a negative shear stress, we have:
and
These solutions are implemented in a Python script associated to this example for verifying GEOS results.
Input files
This validation example uses two GEOS xml files that are located at:
inputFiles/triaxialDriver/triaxialDriver_base.xml
and
inputFiles/triaxialDriver/triaxialDriver_DruckerPrager.xml
It also uses a set of table files located at:
inputFiles/triaxialDriver/tables/
A Python script for the semi-analytical solutions presented above as well as for post-processing the GEOS results is provided at:
src/docs/sphinx/advancedExamples/validationStudies/viscoplasticity/DruckerPrager/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.py
For this example, we focus on the Task
and the Constitutive
tags.
Task
The imposed axial strain loading/unloading periods, the constant lateral confining stress, and the initial stress are defined in the Task
block as:
<Tasks>
<TriaxialDriver
name="triaxialDriver"
material="DruckerPrager"
mode="mixedControl"
axialControl="strainFunction"
radialControl="stressFunction"
initialStress="-10.e6"
steps="200"
output="DruckerPragerResults.txt" />
</Tasks>
Constitutive laws
The elasto-plastic parameters are defined as:
<DruckerPrager
name="DruckerPrager"
defaultDensity="2700"
defaultBulkModulus="10.0e9"
defaultShearModulus="6.0e9"
defaultCohesion="0.1e6"
defaultFrictionAngle="6.0"
defaultDilationAngle="3.0"
defaultHardeningRate="0.5e9"
/>
All constitutive parameters such as density, viscosity, and bulk and shear moduli are specified in the International System of Units.
A comparison between GEOS results and semi-analytical results
The simulation results are saved in a text file, named DruckerPragerResults.txt
. A perfect comparison between the results given by the TriaxialDriver solver in GEOS and the semi-analytical results presented above is shown below.
![../../../../../../_images/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.png](../../../../../../_images/TriaxialDriver_vs_SemiAnalytic_DruckerPrager.png)
To go further
Feedback on this example
For any feedback on this example, please submit a GitHub issue on the project’s GitHub page.