Background

Often in geological settings, rocks are deposited in layers, and between the layers there are joints, which are usually weak, and which we call "weak planes" here. Upon applying stresses/strains, these joints often fail by opening (Weak-plane tensile failure), or by shearing (Weak-plane shear failure).

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

tensile_yield_function.png
Weak plane tensile yield function

Definition

Define a vector, $$$n$$$, which is normal to the weak plane. The user may choose two options:

  1. This vector rotates with the large deformations
  2. This vector remains fixed in an external reference frame

Usually the first choice would be made.

Denote the so-called "tensile strength" of the weak plane by $$$T$$$. It may be constant, or governed by some Hardening or Softening law. At the start of each "time-step" (increment), rotate $$$\sigma$$$ so that $$$n$$$ aligns with the $$$z$$$ axis. Denote the rotated stress by $$$\tilde{\sigma}$$$.
Then the tensile yield function is $$$$f = \tilde{\sigma}_{zz} - T \ .$$$$ The flow potential is $$$$r_{ij} = \frac{\partial f}{\partial \tilde{\sigma}_{ij}} \ ,$$$$ so this plasticity is associative. The hardening law is defined via $$$$h = -1 \ ,$$$$ so that $$$q = q^{\mathrm{old}} + \gamma$$$, so that $$$q$$$ is the accumulated sum of $$$\gamma$$$ over all "time steps".

The test suite

A number of tests have been implemented demonstrating that the MOOSE code correctly implements the return-map algorithm for weak-plane tensile plasticity, both for small strains and large strains. These are:

  1. small_deform1. The normal direction is chosen $$$n=(0,0,1)$$$. A small displacement of magnitude 1E-6 m is applied to a single element. Youngs' modulus and tensile strength are set to 2 MPa and 1 Pa respectively. Then the trial stress has $$$\tilde{\sigma}_{zz}$$$ = 2 Pa, which is inadmissible, so the return-map algorithm is invoked. MOOSE results show that final stress value accurately returns to the yield surface.

  2. small_deform2. The normal direction is chosen $$$n=(0,0,1)$$$. A small displacement of magnitude 1E-6 m is applied to a single element. Youngs' modulus and tensile strength are set to 2 MPa and 5 Pa respectively. Then the trial stress is $$$\tilde{\sigma}_{zz}$$$ = 2 Pa. Since this is less than tension cutoff, no plasticity should be observed, and the final stress should be equal to $$$\tilde{\sigma}_{zz}$$$ = 2 Pa.

  3. large_deform1. The normal direction is chosen $$$n=(0,0,1)$$$, and it rotates with the mesh. A single element is rotated through 90 degrees about the $$$x$$$ axis, and then deformed in $$$z$$$ direction. No plastic deformation is observed, in agreement with expectations.

  4. large_deform2. The normal direction is chosen $$$n=(0,0,1)$$$, and it rotates with the mesh. Youngs' modulus and tensile strength are set to 20 MPa and 1 MPa respectively. A single element is rotated through 45 degrees about the $$$x$$$ axis, and then deformed in $$$y=z$$$ direction. This should create a pure tensile load, and MOOSE returns to the correct point on the yield surface which is $$$$T/2 = \sigma_{zz} = \sigma_{yy} = \sigma_{yz} = 0.5\,\mbox{MPa} \ .$$$$

  5. small_deform_hard1. This checks the internal-parameter evolution in the case of exponential hardening/softening. A single element is stretched with strain $$$$\epsilon_{zz} = t/10^{6} \ ,$$$$ The Young's modulus is chosen to be 20 MPa, and the tensile strength $$$T=10$$$ Pa. Two time steps are used. In the first $$$t$$$ is incremented from zero to 1. This means the trial stress will be $$$$\sigma^{\mathrm{trial}}_{zz} = 20\,\mbox{Pa} \ .$$$$ This stress is inadmissible, so it must return to $$$\sigma_{zz} = T = 10\,\mbox{Pa}$$$, and half the deformation is plastic, and half elastic, yielding $$$\epsilon_{zz}^{\mathrm{plastic}} = 0.5\times 10^{-6}$$$. In the second time step, $$$t$$$ is incremented from 1 to 2. This time the trial stress is $$$\sigma^{\mathrm{trial}}_{zz} = 30$$$Pa, and all the strain increment is plastic, yielding a total plastic strain after this step of $$$1.5\times 10^{-6}$$$. Moose produces the correct answer.

  6. small_deform_hard2. This checks the solution of a exponential hardening problem. A single element is stretched with strain $$$\epsilon_{zz} = 10^{-6}$$$. The Young's modulus is chosen to be 20 MPa. The trial stress is $$$$\sigma_{zz}^{\mathrm{trial}} = 20\,\mbox{Pa} \ .$$$$ The initial value of the tensile strength is $$$T_{0} = 10$$$ Pa, the residual $$$T_{\mathrm{res}} = 0$$$, and the rate $$$\zeta = 10^6$$$. Therefore, the trial stress is inadmissible, and the following equations must be solved $$$$0 = f = \sigma_{zz} - 10\exp(-10^{6}q)$$$$ $$$$0 = \mbox{epp} = \gamma - (20 - \sigma_{zz})/(2\times 10^{7})$$$$ $$$$0 = \mbox{intnl} = q - \gamma$$$$ (Here is use the notation "epp" and "intnl" which is MOOSE-code notation described in Plasticity and the Return-Map Algorithm.) The solution is $$$q = \gamma = 0.768039\times 10^{-6}$$$, and $$$\sigma_{zz} = T = 4.63922$$$ Pa. Moose yields these results.

  7. small_deform_hard3. The evolution of the tensile strength with exponential hardening is checked. A single unit-sized element is stretched in the $$$z$$$ direction with deformation $$$10^{-6}t$$$, and the Young's modulus is chosen to be 10 MPa. With the ever-increasing stretches, the yield-surface and the tensile strength are mapped out. The result is shown in the Figure below.

  8. small_deform_hard_cubic. The evolution of the tensile strength with cubic hardening is checked in the same way as small_deform_hard3. The result is shown in the Figure below.

small_deform_hard3.png
Evolution of exponentially-softening tensile strength

wpt_cubic.png
Evolution of cubic-softening tensile strength