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 :
Where \(\vec{m}\) is the plastic flow direction computed at the current state.
Parameters required
Parameter name |
Type |
Symbol |
Description |
|---|---|---|---|
|
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 :
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 |
|---|---|---|---|
|
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.
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:
Setting \(c_r = 0\) results in linear hardening.
Parameters required
Parameter name |
Type |
Symbol |
Description |
|---|---|---|---|
|
scalar |
\(h_a\) |
Model constant for the linear part of the hardening model. Controls the rate of saturation (Pa). |
|
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:
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