16 Homework 3
Rate-Independent Plasticity — Return Mapping and Hardening
Due date: TBD — submitted via Moodle
Notation: Following the canonical convention set in L08-appendix, we use \(H_\text{iso}\) for the isotropic hardening modulus and \(H_\text{kin}\) for the kinematic hardening modulus throughout this homework.
Goal: Implement the radial return algorithm for J2 plasticity and study hardening effects.
16.1 Task 1 — Radial Return Implementation
Write a function j2_plasticity_update(sigma_tr, ep_bar_n, E, nu, sigma_y0, H_iso) implementing the implicit radial return for J2 plasticity with linear isotropic hardening.
Inputs:
sigma_tr: elastic trial stress (3×3 array, MPa)ep_bar_n: accumulated equivalent plastic strain at step \(n\)- Material parameters: \(E\), \(\nu\), \(\sigma_{y0}\), \(H_\text{iso}\)
Algorithm:
- Compute trial deviatoric stress \(\mathbf{s}^\text{tr}\) and \(\sigma_\text{eq}^\text{tr}\).
- Check yield: \(f^\text{tr} = \sigma_\text{eq}^\text{tr} - (\sigma_{y0} + H_\text{iso}\bar{\varepsilon}^p_n)\).
- If \(f^\text{tr} \leq 0\): elastic step.
- If \(f^\text{tr} > 0\): compute \(\Delta\gamma\), update stress and \(\bar{\varepsilon}^p\).
Outputs: updated stress \(\boldsymbol{\sigma}_{n+1}\), updated \(\bar{\varepsilon}^p_{n+1}\), consistent tangent \(\mathbb{C}^\text{alg}\) (recommended).
16.2 Task 2 — Verification
Apply an initial elastic state, then increment to cause yielding. Verify: \(\sigma_\text{eq}(\boldsymbol{\sigma}_{n+1}) \approx \sigma_{y0} + H_\text{iso}\bar{\varepsilon}^p_{n+1}\).
16.3 Task 3 — Uniaxial Simulation
Simulate a uniaxial tension test (successive strain increments \(\Delta\varepsilon_{11}\), \(\Delta\varepsilon_{22} = \Delta\varepsilon_{33} = -\nu\Delta\varepsilon_{11}\) in the elastic predictor).
Run:
- Case (a): perfect plasticity (\(H_\text{iso} = 0\))
- Case (b): linear isotropic hardening (\(H_\text{iso} > 0\))
Plot \(\sigma_{11}\) vs \(\varepsilon_{11}\) for both cases on the same graph (up to ~5% strain).
Discuss: How does \(H_\text{iso}\) affect the stress-strain response?
Note: 4th-order tensors are represented in Voigt 6×6 matrix form throughout (components: \([1,1] \to 1, [2,2] \to 2, [3,3] \to 3, [2,3] \to 4, [1,3] \to 5, [1,2] \to 6\)).