Hardening Soil (MN)
The implementation of the Hardening Soil (HS) model uses an implicit (backward Euler) return-mapping framework with stress-dependent stiffness, a hyperbolic shear hardening law, and an elliptical volumetric cap.
Distinctively, this implementation utilises the Matsuoka–Nakai (MN) failure criterion to account for the intermediate principal stress effect (Lode angle dependency) via a shape factor \(\chi(\theta)\), and applies this factor consistently to both the shear (cone) and compression (cap) yield surfaces.
Contents
- Overview
- Stress Measures, Invariants and Lode Angle
- Elasticity
- Yield Surfaces
- Hardening Laws
- Flow Rules
- Integration Algorithm Notes
- Internal Optimisation
- Material Parameters
Overview
The model assumes non-linear elasticity and two distinct plasticity mechanisms:
- Shear mechanism: a non-associative hyperbolic hardening cone, modified by the Matsuoka–Nakai shape factor \(\chi\).
- Volumetric mechanism: an associative elliptical cap controlling plastic compression, also modified by \(\chi\) for consistency.
The integration is performed via a backward Euler return mapping scheme. If the trial state overshoots the frictional strength (based on the mobilised friction angle), the increment is integrated with sub-stepping. A tensile-apex (vertex) cut-off is enforced explicitly.
Stress Measures, Invariants and Lode Angle
Sign convention and mean stress
The solver stress components in stress follow an Abaqus-like sign convention (compression is negative). However, the mean stress measure used internally is positive in compression and computed as
Shifted mean stress (cohesive apex)
To account for cohesion \(c\), the stress origin is shifted to the tensile apex of the failure envelope:
Matsuoka–Nakai shape factor
The MN shape factor \(\chi(\theta)\) is evaluated from the deviatoric invariants \(J_2\) and \(J_3\) of the current (trial) stress state. In the code, the Lode angle \(\theta\) is obtained from
with clamping to avoid numerical issues when \(J_2 \to 0\). The friction-angle dependent parameter is
and the shape factor is computed as
where \(\upsilon\) is a function of \(\theta\). In the local return-mapping subroutines, \(\chi\) is passed in and treated as constant for that local solve.
Elasticity
The model uses isotropic linear elasticity, but with stress-dependent moduli following a power law. The stiffness update is based on a positive magnitude of the least compressive principal stress (minor principal stress magnitude)
where \(\sigma_i\) are principal stresses in the solver sign convention (compression negative). The lower bound \(\sigma_{\min}\) prevents singular stiffness updates.
The unloading/reloading modulus is
and the initial tangent stiffness used in the hyperbolic hardening law scales identically:
The Lamé constants are computed from \(E_{ur}\) and \(\nu_{ur}\) and assembled into the isotropic elastic Jacobian.
Yield Surfaces
Shear Yield Function (Cone)
The shear yield function \(f_s\) is defined as the residual of the hyperbolic hardening law (Eq. 7.54 in Benz (2007)1), expressed in terms of the deviatoric stress measure \(q\) and the accumulated plastic shear strain \(\gamma^p\) (stored as statev(2)):
The mobilisation factor is
The mobilised friction angle is computed from the stress ratio including the MN factor:
with clamping in the code to avoid invalid \(\arcsin(\cdot)\) arguments and to avoid non-positive mobilisation.
Cap Yield Function
The cap yield function \(f_c\) closes the elastic domain along the isotropic axis. It is an ellipse in the \(p^\prime-q\) plane with Lode-dependent scaling of the \(q\)-axis via \(\chi\):
where
- \(\alpha\) is the cap aspect ratio parameter,
- \(p_p\) is the (unshifted) preconsolidation stress stored as
statev(3), - \(p_p^\prime = p_p + c\cot\varphi\) is the shifted preconsolidation stress.
Hardening Laws
-
Shear hardening: driven by the accumulated plastic shear strain \(\gamma^p\) through the implicit definition of \(f_s\).
-
Cap hardening: the preconsolidation stress \(p_p\) evolves with the cap plastic multiplier \(\lambda_c\) (the cap return mapping uses \(\Delta p_p = H_c\,\Delta\lambda_c\)). In the implementation, the stress-dependent hardening modulus is
Flow Rules
- Cap mechanism: associative (plastic potential equals \(f_c\)).
- Shear mechanism: non-associative, using a Rowe-type stress–dilatancy approach via a mobilised dilatancy angle \(\psi_{\text{mob}}\).
First, a critical-state angle is computed:
Then:
- If \(\sin\varphi_{\text{mob}} - \sin\varphi_{\text{cs}} \ge 0\) (dilative branch),
- Otherwise, a contractive branch is used in the code, based on \(\eta = |q/(p+c\cot\varphi)|\) and an exponential interpolation.
For the tensile-apex check, the code forms
and enforces the apex if
Integration Algorithm Notes
- Elastic predictor: \(\sigma_{n+1}^{\text{trial}} = \sigma_n + D^e:\Delta\varepsilon\) using the current stress-dependent \(D^e\).
-
Sub-stepping trigger: if the trial mobilisation exceeds the friction angle, i.e. \(\varphi_{\text{mob}}^{\text{trial}} \ge \varphi\), the increment is sub-stepped. The number of subincrements is
\[ n_{\text{sub}} = \max\!\left(\left\lfloor\frac{\|\Delta\varepsilon\|_2}{5\times10^{-6}}\right\rfloor,\ 10\right), \]and \(\Delta\varepsilon\) is split uniformly.
-
Return mapping sequence: depending on which yield functions are violated, the algorithm returns to the cone, the cap, or their intersection (“mixed”).
- Tangent operator: the current implementation returns an elastic tangent (not a consistent algorithmic tangent) from all local return mappings; in sub-stepping the elastic tangent is accumulated over subincrements.
Internal Optimisation
The parameters \(\alpha\) and \(H_{pp}\) are internal cap parameters that are typically calibrated from:
- \(E_{oed}^{ref}\) (reference oedometer stiffness),
- \(K_0^{nc}\) (at-rest earth pressure coefficient for normally consolidated state).
An internal routine optimize_hs_internal_constants(...) is provided to compute \((\alpha, H_{pp})\) by matching a virtual oedometer response.
Objective
The routine runs a virtual oedometer loading path (plane strain-like, uniaxial strain condition) at the reference stress level and forms
with
- \(E_{oed}^{\text{sim}} = \Delta\sigma_{v}/\Delta\varepsilon_{v}\),
- \(K_0^{\text{sim}} = \Delta\sigma_{h}/\Delta\sigma_{v}\).
Algorithm (as implemented)
- Initial guesses: \(\alpha_0=1.20\), \(H_{pp,0}=2E_{oed}^{ref}\).
- Jacobian: computed every iteration via central differences with a relative perturbation of \(1\%\).
- Update: solved as a \(2\times2\) system using Cramer’s rule.
Convergence criterion (as coded)
The loop exits when either residual satisfies the relative tolerance (\(10^{-6}\)):
Material Parameters
The parameters must be provided in the props array in the following order:
| Index | Symbol | Unit | Description |
|---|---|---|---|
| 1 | \(E_{50}^{ref}\) | F/A | Secant stiffness in standard drained triaxial test. |
| 2 | \(E_{oed}^{ref}\) | F/A | Tangent stiffness for primary oedometer loading (target for optimisation). |
| 3 | \(E_{ur}^{ref}\) | F/A | Unloading/reloading stiffness. |
| 4 | \(m\) | - | Power law exponent for stress-dependent stiffness. |
| 5 | \(c\) | F/A | Cohesion. |
| 6 | \(\varphi\) | deg | Friction angle (internally converted to radians). |
| 7 | \(\psi\) | deg | Dilatancy angle (internally converted to radians). |
| 8 | \(\nu_{ur}\) | - | Poisson’s ratio for unloading/reloading. |
| 9 | \(p_{\text{ref}}\) | F/A | Reference mean stress level. |
| 10 | \(K_0^{nc}\) | - | At-rest earth pressure coefficient (normally consolidated). |
| 11 | \(R_f\) | - | Failure ratio. |
| 12 | \(E_i^{ref}\) | F/A | Initial tangent stiffness. |
| 13 | \(\alpha\) | - | Cap aspect ratio parameter. |
| 14 | \(H_{pp}\) | - | Cap hardening parameter. |
Automatic determination of cap parameters
If \(\alpha = 0\) and/or \(H_{pp} = 0\), numgeo determines the missing parameter(s) such that the model reproduces the target oedometric stiffness \(E_{oed}^{ref}\) and the target \(K_0^{nc}\) under oedometric loading at the reference stress level.
Internal State Variables (statev):
void_ratio: void ratio (only meaningful if initialised at analysis start)gammapss: accumulated plastic shear strain measure \(\gamma^p\)pp: preconsolidation stress \(p_p\)p: current mean stress \(p\)q: current deviatoric stress \(q\)
-
Reference manual
-
Benchmark manual
References
-
Thomas Benz. Small-Strain Stiffness of Soils and Its Numerical Consequences. PhD thesis, Inst. für Geotechnik, 2007. URL: https://www.igs.uni-stuttgart.de/dokumente/Mitteilungen/55_Benz.pdf. ↩