Model::Solid::Affine::J2

src/Model/Solid/Affine/J2.H

This models an isotropic elastic-perfectly-plastic, non-time-dependent solid model.

The energy and derivatives are:

\begin{gather} W = \frac{1}{2}(\varepsilon - \varepsilon_p):\mathbb{C}(\varepsilon-\varepsilon_p) \\ DW = \mathbb{C}(\varepsilon-\varepsilon_p) \\ DDW = \mathbb{C} \end{gather}

where \(\mathbb{C}\) is an isotropic Set::Matrix4 and \(\varepsilon_p\) is is stored in the F0 eigenstrain.

The plastic strain is evolved according to the following:

  1. Calculate the deviatoric stress \(\sigma_v=\sigma - \frac{1}{3}tr(\sigma)\mathbf{I}\)

  2. Calculate \(J_2=\sqrt{\frac{3}{2}\sigma_v:\sigma_v}\)

  3. If \(J_2<\sigma_0\) then quit - no plasticity occurs

  4. Calculate \(\Delta\sigma = (1-\frac{\sigma_0}{J_2})\), which projects the stress back on the yield surface.

  5. Convert to change in plastic strain, \(\Delta\varepsilon=\mathbb{C}^{-1}\Delta\sigma\)

  6. Update plastic strain: \(\varepsilon_p += \Delta\varepsilon\)

Notes:

  • This does not implement any kind of hardening model. Rate hardening, isotropic hardening, and kinematic hardening have yet to be implemneted.

sigma0
1 conditional

J2 Yield criterion

Names by executable 2 executables, 2 uses
mechanics-2d-coverage-g++
model0.sigma0
mechanics-3d-coverage-g++
model0.sigma0
hardening
-1 conditional

Hardening coefficient (negative value disables rate hardening)

Names by executable 2 executables, 2 uses
mechanics-2d-coverage-g++
model0.hardening
mechanics-3d-coverage-g++
model0.hardening
ratecoeff
-1 conditional

Rate coefficient (negative value disables rate hardening)

Names by executable 2 executables, 2 uses
mechanics-2d-coverage-g++
model0.ratecoeff
mechanics-3d-coverage-g++
model0.ratecoeff