A Modified Version of "Local resolution of constitutive laws", code_aster / salome_meca course material authored and published by EDF S.A. under the GNU Free Documentation License. The content and the figures are the original course, unchanged; only the layout is new.
Authors: EDF S.A. (the original course material); Simvia (the modifications).
Publisher of this Modified Version: Simvia.
Copyright © 2026 Simvia, for the modifications. The original course material carries no copyright notice.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
The course runs in four parts, in the order the original deck presents them:
| Part | What it covers | |
|---|---|---|
| 1 | General concepts | why a behaviour law is needed, and how a plasticity model is built |
| 2 | Solving behaviour laws | the algorithm code_aster runs, and where it sits in the global loop |
| 3 | Behaviour laws in code_aster | the catalogue of available laws |
| 4 | Syntax in code_aster | the COMPORTEMENT keywords that drive the integration |
| — | Conclusion | where the documentation lives |
In this part Why a behaviour law · Example: a metal in a 1D tensile test · A general theoretical framework · A formalism for plasticity · Hardening · The final system to solve
Original deck: slides 2–17.
Consider a solid
$$ \int_\Omega \underline{\underline{\sigma}}(\vec{u}) : \underline{\underline{\varepsilon}}(\delta\vec{u}),d\Omega = \int_\Omega \vec{f}(\vec{u}) : \delta\vec{u},d\Omega
- \int_{\Gamma_g} g(\vec{u}) : \delta\vec{u},d\Gamma $$
| In 3D | Count |
|---|---|
| Unknowns — displacement field | 3 components |
| Unknowns — stress field | 6 components |
| Equations — (weak) equilibrium | 3 equations |
Six equations are missing ⟹ a behaviour law is required to close the system.
Building the behaviour law is a cycle, not a sequence — testing sends you back to identification:
- Identify from experimental: from try to complete structure (representativity).
- Using formalism (general prooves for convergence).
- Develop in non-linear framework.
- Test (verification and validation).
Behaviour law for metal from 1D tensile-test (plasticity).
Slide 6 — monotone loading, the specimen, and the response it produces.
We can observe:
- an elasticity domain with a Yield Stress
$\sigma^Y$ ; - an irreversible strain
$\varepsilon^P$ ; - a hardening caracterized by
$\sigma^P > \sigma^Y$ ; - plasticity, a phenomenon that is independent of velocity.
First part: the elastic domain until
Slide 7 — the elasticity domain in stress space.
Experimentaly:
-
$f$ is a function of$\underline{\underline{\sigma}}^D = \mathrm{dev}(\underline{\underline{\sigma}})$ - more particulary
$f(\underline{\underline{\sigma}}^D) = f(J_1, J_2)$
with
Second part: the plastic domain from
Slide 8 — unloading is parallel to the elastic branch, which splits the
total strain into εp and εe.
For elastic case:
Mechanics and thermodynamics. First law of thermodynamics:
With PPV, we can formulate a variational internal energy:
The second law of thermodynamics: the Inegality of Clausius-Duhem
$$ D = \underline{\underline{\sigma}} : \dot{\underline{\underline{\varepsilon}}}
- \rho\left(\frac{d\Psi}{dt} - s\dot{T}\right)
- \frac{\underline{q}}{T}.\nabla T ;\ge; 0 $$
with
The method of local state
The thermodynamic state, at the point and the instant considered, is entirely defined at this instant by the state variables (observable
$(T, \underline{\underline{\varepsilon}})$ and internal $(V_1 = \underline{\underline{\varepsilon}}^p, V_k)$).
$$ \frac{d\Psi}{dt} = \frac{\partial\Psi}{\partial\underline{\underline{\varepsilon}}^e},\dot{\underline{\underline{\varepsilon}}}^e
- \frac{\partial\Psi}{\partial T},\dot{T}
- \frac{\partial\Psi}{\partial V_k},\dot{V_k} $$
$$ D_{\mathrm{int}} = \left(\underline{\underline{\sigma}} - \rho\frac{d\Psi}{d\underline{\underline{\varepsilon}}^e}\right) : \dot{\underline{\underline{\varepsilon}}}^e
- \underline{\underline{\sigma}} : \dot{\underline{\underline{\varepsilon}}}^p
- \rho\left(s + \frac{d\Psi}{dt}\right)
- \frac{d\Psi}{dV_k}.\dot{V_k} $$
| If | Then |
|---|---|
|
the first state law: |
|
|
the second state law: |
Collecting the state variables, their associated forces and the state laws:
| State Variables | Associated thermodynamic forces |
State laws | |
|---|---|---|---|
| observable | internal | ||
| T | s | s = −∂Ψ/∂T | |
| εe | σ | σ = ρ ∂Ψ/∂εe | |
| εp | −σ | σ = −ρ ∂Ψ/∂εp | |
| Vk | Ak | Ak = ρ ∂Ψ/∂Vk | |
Evolution of internal state variables ⟹ irreversible dissipation formalism.
The maximum plastic work (Hill 1951). In short, the principle postulate two important ideas:
- the yield surface must be convex function,
- the plastic strain rate is normal to the yield surface
Slide 12 — the plastic strain rate is normal to the yield surface.
| Evolution law (or law of normality) | Outward normal to the boundary of the domain |
|---|---|
Intensity of the flow. The plasticity multiplier is determined by the consistency relation:
Summary, a plasticity theory:
- Defining hardening
- Defining yield surface
- Defining flow direction (normal = associative law)
- Défining flow intensity (plastic multiplicator)
Slide 15 — the elasticity domain dilates.
An isotropic extension of the elasticity domain is taking into account:
- Dilatation of the elasticity domain
- Evolution of criterion is governed by a single scalar (internal state variable: cumulated plastic strain)
Slide 16 — the elasticity domain translates, which produces the
Bauschinger effect.
An translation of the elasticity domain is taking into account:
- Translation of the elasticity domain
- Evolution of criterion is governed by a tensor (internal state variable: centre of the elasticity domain)
The first two rows are common to both models, as in the original: they span the full width. Below them, the left column is isotropic hardening and the right column kinematic.
| Isotropic hardening | Kinematic hardening | |
|---|---|---|
| Partition of strains | ε = εe + εp | |
| Elastic strains | σ = λ tr(εe) + 2μ·εe | |
| Plasticity criterion | f(σ, p) = √(3/2)·‖σD‖ − R(p) − σy | f(σ, p) = ‖σD − X‖ − σy |
| Flow law (normality) | ε̇p = √(3/2)·ṗ·σD ⁄ ‖σD‖ | ε̇p = √(3/2)·ṗ·(σD − X) ⁄ ‖σD − X‖ |
| ṗ > 0 if f(σ, p) = 0 · ṗ = 0 if f(σ, p) < 0 | ||
| Material parameters | R(p) | C, with X = C·ε̇p |
In this part The functional and the global loop · Time discretisation · Example of algorithm · Integration of constitutive laws: sum up
Original deck: slides 18–24.
Algorithm:
- Define functional
- Solve functional
Behaviour law is a functional for stress from strains, external state variables (temperature…) and internal state variables
Newton's method: need jacobian too!
Slide 20 — the red box is the local resolution: it runs once per Gauss
point per iteration, and returns both the stress and the tangent operator.
From ODE equations ⟹ time discretization.
- Implicit choice: stability
- The choice of the time step depends on the radial nature of the problem
- Unknown variables at time step: incremental scheme for stress
- Scheme for internal state variables
Incremental choice for stress update: only for small strains!
Slide 22 — the test, its two branches, and the same step drawn in the
deviatoric plane.
Depending of
- (pseudo)-time integration: implicit or explicit (code_aster: mainly implicit)
- Non-linear solving: Newton's method, line-search, …
- Warning! Hypothesis to solve non-linear equation! Implicit algorithm ⟹ unconditional stability BUT when solve ODE using RADIAL hypothesis of loads
- Parameters for non-linear solving of behaviours laws:
- In the
COMPORTEMENTkeyword - Sometimes, you can choose local non-linear algorithm to solve
- In the
General non-linear algorithm:
- In practice, only a few laws in code_aster
- Solving the NL local system of n equations
- Explicit method (Runge-Kutta) or implicit method (Newton)
Specific non-linear algorithms:
- For some laws (in fact, most of the laws in code_aster!)
- The system is reduced to one single scalar equation
- Solved by various methods (secant, Newton, Dekker, Brent)
- Analytical solution for some laws (ex: Von Mises isotropic hardening and / or linear kinematic)
In this part Constitutive laws available · 2D and 3D continuum media · Beyond continuum media
Original deck: slides 25–30.
More than 160 laws in the 13 stable version.
Various fields of applications
- Metals, polycrystalline metals
- Concrete
- Soils
Various phenomena
- Irradiation
- Damage or cracking
- Metallurgical phases
Documentation
- Synthesis of non-linear constitutive laws: U4.51.11
DEFI_MATERIAUsyntax: U4.43.01
| Family | Laws |
|---|---|
| Non linear elasticity — Von Mises isotropic Pseudo-hardening | ELAS_VMIS_LINE, ELAS_VMIS_TRAC, ELAS_HYPER |
| Incremental elasto-plasticity — Von Mises isotropic hardening, kinematic linear, mixed | VMIS_ISOT_TRAC, VMIS_ISOT_PUIS, VMIS_ISOT_LINE, VMIS_CINE_LINE, VMIS_ECMI_TRAC, VMIS_ECMI_LINE |
| Other elastoplastic models (metals) | VMIS_CIN1_CHAB, VMIS_CIN2_CHAB, VMIS_CIN2_MEMO |
| Elasto-visco-plasticity (metals) | LEMAITRE, LEMA_SEUIL, VISC_CIN1_CHAB, VISC_CIN2_CHAB, VISC_ISOT_LINE, VISC_ISOT_TRAC, VISC_TAHERI, VISCOCHAB |
| Limit loads | NORTON_HOFF |
| Polycrystalline metals | POLY_CFC, MONOCRISTAL, POLYCRISTAL |
| Elasto-visco-plasticity under irradiation | LMARC, LEMAITRE_IRRA, GATT_MONNERIE, VISC_IRRA_LOG, GRAN_IRRA_LOG, IRRAD3M |
| Damage or cracking of metals | ENDO_FRAGILE, VENDOCHAB, ROUSSELIER, ROUSS_PR, ROUSS_VISC, RUPT_FRAG, BARENBLATT |
| Concrete | BETON_DOUBLE_DP, GRANGER_FP, GRANGER_FP_V, GRANGER_FP_INDT, BAZANT_FP, ENDO_ISOT_BETON, ENDO_ORTH_BETON, MAZARS, JOINT_BA, CORR_ACIER, KIT_DDI, BETON_REGLE_PR, BETON_UMLV_FP, BETON_BURGER_FP, BETON_RAG |
| Soils and geomaterials | DRUCK_PRAGER(N_A), CAM_CLAY, BARCELONE, CJS, HUJEUX, LAIGLE, LETK, HOEK_BROWN, KIT_HM, KIT_HHM, KIT_THH, KIT_THM, KIT_THHM |
Metallurgical phases (elasto-visco-plastic) for steel or zirconium:
META_X_Y_Z where
X=P(plasticity) orV(viscosity)Y=IL(linear isotropic) orINL(nonlinear isotropic) orCL(linear kinematic)Z=RE(restoration) and/orPT(transformation plasticity)
- Plates, shells and pipes (local behaviour = plane stress): all 3D
constitutive laws (thanks to the method if
C_PLANis not supported:ALGO_C_PLAN = 'DEBORST') - Bars, multi-fiber beams, grids: all the laws of 1D behaviour (thanks to
the DeBorst method if
1Dis not supported:ALGO_1D = 'DEBORST') - Discrete elements, shear connections, reinforcements
In this part General algorithm · Specific algorithms
Original deck: slides 31–34.
Choice of parameters for the integration: under the factor key word
COMPORTEMENT.
Resolution of the local NL system of n equations, selected with ALGO_INTE:
| Explicit resolution | Implicit resolution by a local Newton, with the possibility of LInear REsearch for certain laws | |
|---|---|---|
RUNGE_KUTTA |
NEWTON |
NEWTON_RELI |
VISCOCHAB, VENDOCHAB,
POLYCRISTAL, MONOCRISTAL,
VMIS_POU_FLEJOU, VMIS_POU_LINE |
VISCOCHAB, LMARC,
MONOCRISTAL, IRRAD3M, CJS,
HUJEUX… |
VISCOCHAB, LMARC,
MONOCRISTAL, IRRAD3M |
Convergence
| Keyword | Meaning | Default |
|---|---|---|
RESI_INTE_RELA |
Residue to achieve | |
ITER_INTE_MAXI |
Maximum number of iterations | 20 |
Tips
For behaviour which are "difficult" to integrate, increase ITER_INTE_MAXI:
| Test case | Setting | Law |
|---|---|---|
| ssnd105b | ITER_INTE_MAXI = 250 |
VISCOCHAB |
| ssnv172a | ITER_INTE_MAXI = 100 |
MONOCRISTAL |
| ssnl106i | ITER_INTE_MAXI = 500 |
VMIS_POU_LINE |
For certain behaviours, it is better to integrate finely the behaviour
(ex: Hujeux) RESI_INTE_RELA = 10⁻⁸.
- For some laws (in fact, most of the laws in code_aster!)
- The system is reduced to one single scalar equation
$\Delta\lambda : \gamma(\Delta\lambda) = 0$ - Solved by various methods:
-
ALGO_INTE = 'SECANTE','DEKKER','NEWTON_1D','BRENT' - Convergence:
RESI_INTE_RELA($10^{-6}$ ),ITER_INTE_MAXI(20)
-
-
Analytical resolution
-
VMIS_ISOT_LINE,VMIS_ISOT_TRAC,VMIS_ISOT_PUIS, … -
CZM_*,ENDO_SCALAIRE, … - No additional keyword is required! (except for plane stresses)
- Ex: hsnv125a:
VMIS_ISOT_LINEin 3D andITER_INTE_MAXI = 100
-
Documentation — utilisation
| Doc | Content |
|---|---|
| U4.51.11 | synthesis of non-linear behaviour |
| U4.43.01 | syntax of the command DEFI_MATERIAU |
Documentation — reference
| Doc | Content |
|---|---|
| R5.03.02 | integration of isotropic hardening or kinematic linear laws |
| R5.03.03 | taking into account the plane stresses |
| R5.03.XX | integration of other behaviours |
| R5.03.14 | implicit and explicit integration of nonlinear laws |
| R5.03.03 | Hypothesis of plane stresses in non-linear behaviours |
| R3.06.08 | Finite elements dealing with the quasi-incompressibility |
| R5.03.21 | Elasto(visco)plastic modelling with isotropic hardening in large strains (SIMO_MIEHE) |
All of these are in the code_aster documentation index.
Is something missing or unclear in this document? Or feeling happy to have read such a clear tutorial?
Please, we welcome any feedbacks about Code_Aster training materials. Do not hesitate to share with us your comments on the Code_Aster forum.
- Local resolution of constitutive laws — code_aster / salome_meca course material, authored and published by EDF S.A. under the GNU Free Documentation License, distributed as a slide deck. Its Title Page states no year.
- Local resolution of constitutive laws — Simvia web edition, 2026, modified and published by Simvia. Converted from the slide deck into a web page: text and figures unchanged, layout new. https://simvia-tech.github.io/tutorials-code_aster/
The full text of the license is in LICENSE at the root of this repository.