small_deform3.png
Drucker-Prager yield envelopes on the meridional plane

small_deform2.png
Various Drucker-Prager yield envelopes

This article uses notation defined in Plasticity and the Return-Map Algorithm.

Define the cohesion $$$A$$$ (a non-negative number) and a parameter $$$B$$$ (dimensionless, non-negative number). Drucker-Prager plasticity is defined by the yield function $$$$f = \sqrt{J_{2}} + B\,\mbox{Tr}\sigma - A$$$$ Here $$$J_{2}$$$ is the second invariant of the deviatoric part of the stress tensor $$$\sigma$$$ (see Identities). Often the so-called friction angle is introduced: it is $$$\arctan B$$$. In this article, the term ``friction angle'' is used to denote the Mohr-Coulomb friction angle which is described below.

The flow rule is described by $$$$r_{ij} = \frac{\partial \tilde{f}}{\partial\sigma_{ij}} \ ,$$$$ where $$$$\tilde{f} = \sqrt{J_{2}} + \tilde{B}\,\mbox{Tr}\sigma - A \ .$$$$ Notice the tilde on the $$$\tilde{B}$$$: it means that this plasticity is nonassociative for $$$\tilde{B}\neq B$$$.

It is customary to define $$$A$$$, $$$B$$$ and $$$\tilde{B}$$$ via a Mohr-Coulomb cohesion ($$$C$$$), friction angle ($$$\phi$$$) and dilation angle ($$$\psi$$$). Various schemes are available in MOOSE that allow the user to approximate the Mohr-Coulomb yield function with the Drucker-Prager yield function. This is highly advantageous numerically, because the Drucker-Prager yield function is smooth and simple. A nice reference for this subject is H Jiang and X Yongli ``A note on the Mohr-Coulomb and Drucker-Prager strength criteria'' Mechanics Research Communications 38 (2011) 309-314.

Consider the Drucker-Prager and Mohr-Coulomb yield functions on the deviatoric (octahedral) plane. The Drucker-Prager yield function is a circle, while the Mohr-Coulomb yield function is a hexagon (see Mohr-Coulomb). The following schemes are available.

  1. Outer_tip: the DP circle touches the outer tips of the MC hexagon (see D-P1 in Fig4 of the above reference).
  2. Inner_tip: the DP circle touches the inner tips of the MC hexagon (see D-P3 in Fig4 of the above reference).
  3. Lode_zero (default): the DP circle intersects the MC hexagon at lode angle = 0. This is the default since there is least error between the DP and MC descriptions (see D-P2 in Fig4 of the above reference).
  4. Inner_edge: the DP circle is the largest circle that wholey fits inside the MC hexagon (see D-P4 in Fig4 of the above reference).
  5. Native: The DP cohesion ($$$A=C$$$), friction angle ($$$B=\tan\phi$$$) and dilation angle ($$$\tilde{B}=\tan\tilde{\psi}$$$) are set directly from their input values.

Finally, because the Drucker-Prager cone's tip is a singularity, MOOSE offers the ability to smooth it using a hyperbolic smoothing: $$$$f = \sqrt{J_{2}+\epsilon^2} + B\,\mbox{Tr}\sigma - A$$$$ Here $$$\epsilon$$$ is a small non-hardening parameter. The same smoothing is also used for $$$\tilde{f}$$$. Smoothing is recommended even if you chop off the tip using a MeanCap or Tensile tensile failure yield function in conjunction with Drucker-Prager.

The test suite contains tests demonstrating that the above five methods of setting the parameters $$$A$$$, $$$B$$$ and $$$\tilde{B}$$$ work correctly. The figures on this page were generated using the python scripts that are part of the MOOSE Tensor Mechanics test suite. There are also tests demonstrating the correctness of the consistent tangent operator, and that MOOSE correctly returns to the yield surface for random applied strains (even very large strains).