Hardening Functions

Internal variables evolve accoding with their own laws to provide plastic hardening to the constitutive model. These laws are specified as hardening functions that specify an ODE for the evolution of the internal variable. Two types of internal variable are considered: scalar-valued and tensor-valued internal variables. These evolve in the following manner: .. math:

\newcommand{\vec}[1]{\boldsymbol{#1}}
\newcommand{\state}{\sigma, \left\lbrace iv \right\rbrace, \left\lbrace param \right\rbrace }

s^{\text{trial}} = s^{\text{commit}} + \Delta \lambda  h_s(\state)

\vec{T}^{\text{trial}} = \vec{T}^{\text{commit}} + \Delta \lambda  \vec{h}_T(\state)

Where \(s\) is a scalar-valued internal variable and \(\vec{T}\) is a tensor-valued. These functions are used to define the hardening term in the plastic multiplier (see ASDPlasticTheory).

Note

When using ASDPlasticMaterial3D, hardening function parameters can be updated during analysis using setParameter. Internal variables can be accessed by name for monitoring and recording. This enables real-time tracking of hardening evolution and allows for modeling of complex material behavior including state-dependent hardening, temperature effects, or damage-coupled hardening laws.

Available functions:

Hardening Functions for Scalar-Valued Internal Variables

ScalarLinearHardeningFunction

Provides linear hardening for the scalar variable, as a function of the plastic flow direction :

\[h_s(\state) = H \cdot \sqrt{ (2/3) \vec{m} \cdot \vec{m} }\]

Where \(\vec{m}\) is the plastic flow direction computed at the current state.

Parameters required

Parameter name

Type

Symbol

Description

ScalarLinearHardeningParameter

scalar

\(H\)

Linear hardening constant (Pa per unit plastic strain)

Usage in ASDPlasticMaterial3D

When used with ASDPlasticMaterial3D, ScalarLinearHardeningFunction provides:

  • Linear increase/decrease of scalar variable with plastic deformation

  • Isotropic hardening/softening behavior

  • Simple calibration with single parameter

Monitor scalar internal variable evolution:

recorder Node -file radius.out -time -node 1 -dof 1 VonMisesRadius
# Update hardening parameter during analysis
setParameter 1 ScalarLinearHardeningParameter 5e6

Hardening Functions for Tensor-Valued Internal Variables

TensorLinearHardeningFunction

Provides linear hardening for the tensor variable, as a function of the deviatoric plastic flow direction :

\[h_T(\state) = H \vec{m}_{dev}\]

Where \(\vec{m}_{dev}\) is the deviatoric part of the plastic flow direction computed at the current state.

Parameters required

Parameter name

Type

Symbol

Description

TensorLinearHardeningParameter

scalar

\(H\)

Linear hardening constant (dimensionless)

Usage in ASDPlasticMaterial3D

When used with ASDPlasticMaterial3D, TensorLinearHardeningFunction provides:

  • Linear evolution of backstress tensor

  • Kinematic hardening behavior

  • Translation of yield surface in stress space

The backstress evolves in the direction of deviatoric plastic flow, providing Bauschinger effect modeling.

Monitor tensor internal variable evolution:

recorder Node -file backstress.out -time -node 1 -dof 1 2 3 4 5 6 BackStress
# Update hardening parameter during analysis
setParameter 1 TensorLinearHardeningParameter 0.01

ArmstrongFrederickHardeningFunction

A type of hardening with saturation.

\[h_T(\state) = (2 / 3) h_a \vec{m}_{dev} - c_r \sqrt{ (2/3) \vec{m}_{dev} \cdot \vec{m}_{dev} } \cdot \vec{T}\]

Where \(\vec{m}_{dev}\) is the deviatoric part of the plastic flow direction computed at the current state. Model paramters \(h_a\) and \(c_r\) specify the maximum (saturation) value and the saturation rate. The saturation value for the internal variable will be such that:

\[\Vert \vec{T} \Vert = \sqrt{\dfrac{2}{3}} \dfrac{h_a}{c_r}\]

Setting \(c_r = 0\) results in linear hardening.

Parameters required

Parameter name

Type

Symbol

Description

AF_ha

scalar

\(h_a\)

Model constant for the linear part of the hardening model. Controls the rate of saturation (Pa).

AF_cr

scalar

\(c_r\)

Model constant for saturation part of the hardening model. Controls saturation value (dimensionless).

Usage in ASDPlasticMaterial3D

When used with ASDPlasticMaterial3D, ArmstrongFrederickHardeningFunction provides:

  • Non-linear kinematic hardening with saturation

  • Dynamic recovery term for realistic cyclic response

  • Bauschinger effect modeling with memory

The hardening combines:

  • Linear term: (2/3) \(h_a \vec{m}_{dev}\) - drives hardening

  • Recovery term: \(-c_r \sqrt{(2/3) \vec{m}_{dev} \cdot \vec{m}_{dev}} \cdot \vec{T}\) - provides saturation

Setting \(c_r = 0\) reduces to linear kinematic hardening.

The saturation value for the internal variable will be:

\[\Vert \vec{T} \Vert = \sqrt{\dfrac{2}{3}} \dfrac{h_a}{c_r}\]

Monitor non-linear hardening:

recorder Node -file backstress.out -time -node 1 -dof 1 2 3 4 5 6 BackStress
recorder Node -file eqpstrain.out -time -node 1 -dof 1 eqpstrain
# Update hardening parameters during analysis
setParameter 1 AF_ha 1e8
setParameter 1 AF_cr 100