Visco Drucker-Prager Model: Triaxial Driver versus Semi-Analytical Solution
Problem description
This example uses the Triaxial Driver to simulate a triaxial compression test of a Visco 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 visco-plastic yield in both loading and unloading period. This complicated scenario is used for verifying the numerical convergence and accuracy of the Visco Drucker-Prager constitutive model implemented in GEOS.
Semi analytical result for axial stress variation and lateral strain variation can be established for the imposed triaxial boundary conditions following the theoretical basis of the Perzyna time dependent approach presented by (Runesson et al. 1999) as:
where and are the elastic Young and shear moduli. The visco-plastic multiplier can be approximated by:
in which is the time increment, is the relaxation time, is the stress function defining the visco-plastic yield surface, is the elastic bulk modulus, is the frictional parameter defining the visco-plastic yield surface, is the dilation parameter defining the plastic potential and is the hardening rate. These solutions are applied only when plastic yield condition is satisfied. The cohesion parameter defining the plastic yield surface is updated with stress change as
These solutions were established for a positive shear stress (negative sign convention for compression stress). For the case when the plastic yield occurs at a negative shear stress, we have
These solutions are implemented in a Python script associated to this example for verifying GEOS results.
Input files
This benchmark example uses two GEOS xml files that are located at:
inputFiles/triaxialDriver/triaxialDriver_base.xml
and
inputFiles/triaxialDriver/triaxialDriver_ViscoDruckerPrager.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/ViscoDruckerPrager/TriaxialDriver_vs_SemiAnalytic_ViscoDruckerPrager.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 as well as the initial stress are defined in the Task
block as
<Tasks>
<TriaxialDriver
name="triaxialDriver"
material="ViscoDruckerPrager"
mode="mixedControl"
axialControl="strainFunction"
radialControl="stressFunction"
initialStress="-10.e6"
steps="200"
output="ViscoDruckerPragerResults.txt" />
</Tasks>
Constitutive laws
The elasto-visco-plastic parameters are defined as
<ViscoDruckerPrager
name="ViscoDruckerPrager"
defaultDensity="2700"
defaultBulkModulus="10.0e9"
defaultShearModulus="6.0e9"
defaultCohesion="0.1e6"
defaultFrictionAngle="6.0"
defaultDilationAngle="3.0"
defaultHardeningRate="0.5e9"
relaxationTime="0.1"
/>
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 ViscoDruckerPragerResults.txt
. A comparison between the results given by the TriaxialDriver solver in GEOS and the approximated semi-analytical results presented above is shown below. Interestingly we observed that the Duvaut-Lions approach implemented in GEOS can fit perfectly with the Perzyna approach that was considered for deriving the analytical results. This consistency between these time dependence approaches is because of the linear hardening law of the considered constitutive model as already discussed by (Runesson et al. 1999) .
To go further
Feedback on this example
For any feedback on this example, please submit a GitHub issue on the project’s GitHub page.