Models for Small Strains
Implementations of mechanical (stress-strain) material models following the MaterialModelsBase.jl
interface.
Elasticity
Linear Isotropic Elasticity
MechanicalMaterialModels.LinearElastic
— MethodLinearElastic(; E, ν)
LinearElastic{:isotropic}(; E, ν)
Create an isotropic LinearElastic
material with Young's modulus, E
, and Poisson's ratio ν
, such that
\[\boldsymbol{\sigma} = 2\mu \boldsymbol{\epsilon} + \lambda \mathrm{tr}(\boldsymbol{\epsilon}) \boldsymbol{I} \\\]
where the Lamé parameters, $\mu$ and $\lambda$ are defined as
\[\mu = \frac{E}{2(1+\nu)}, \quad \lambda=\frac{E\nu}{(1+\nu)(1-2\nu)}\]
Linear Anisotropic Elasticity
MechanicalMaterialModels.LinearElastic
— MethodLinearElastic(C::SymmetricTensor{4,3})
LinearElastic{:general}(C::SymmetricTensor{4,3})
Create a general LinearElastic
material with the 4th order elastic stiffness tensor $\boldsymbol{C}$, such that $\boldsymbol{\sigma} = \boldsymbol{C}:\boldsymbol{\epsilon}$.
MechanicalMaterialModels.LinearElastic
— MethodLinearElastic{:cubicsymmetry}(; C1111::T, C1122::T, C1212::T) where {T}
Create a LinearElastic
material where the stiffness tensor, $\boldsymbol{C}$, possesses cubic symmetry along the coordinate axes. Using the 9-component Voigt notation, $\boldsymbol{C}$ can be expressed as
\[\boldsymbol{C} = \begin{bmatrix} C_{1111} & C_{1122} & C_{1122} & 0 & 0 & 0 & 0 & 0 & 0 \\ C_{1122} & C_{1111} & C_{1122} & 0 & 0 & 0 & 0 & 0 & 0 \\ C_{1122} & C_{1122} & C_{1111} & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2C_{1212} & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 2C_{1212} & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 2C_{1212} & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 2C_{1212} & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 2C_{1212} & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 2C_{1212} \\ \end{bmatrix}\]
Plasticity
MechanicalMaterialModels.Plastic
— TypePlastic(;elastic, yield, isotropic, kinematic, overstress)
A small-strain plasticity model with modular elastic laws, yield criteria, multiple isotropic and kinematic hardening contributions, and either rate-independent or viscoplastic response.
Keyword arguments
elastic::AbstractMaterial
Elastic law, see e.g.LinearElastic
yield::YieldCriterion
Yield criterion, including the initial yield limit. Ifyield::Real
is given,VonMises(yield)
is used.isotropic::Union{AbstractIsotropicHardening,Tuple}
Isotropic hardening laws, see e.g.Voce
kinematic::Union{AbstractKinematicHardening,Tuple}
Kinematic hardening laws, see e.g.ArmstrongFrederick
overstress::Union{RateIndependent,OverstressFunction}
Rate dependence, see e.g.NortonOverstress
Defaults toRateIndependent()
Example
m = Plastic(elastic = LinearElastic(E=210.e3, ν=0.3),
yield = 100.0,
isotropic = (Voce(Hiso=-100.e3, κ∞=-100.0),Voce(Hiso=10.e3, κ∞=200.0)),
kinematic = (ArmstrongFrederick(Hkin=200.e3, β∞=200.0),
OhnoWang(Hkin=1000.e3, β∞=200.0, m=3.0)),
overstress = NortonOverstress(;tstar=1.0, nexp=2.0))
Theory
While the exact model response is given by the laws in elastic
, yield
, isotropic
, kinematic
, and overstress
, the generic model equations are described below.
The stress is calculated from the elastic strains, $\boldsymbol{\epsilon}_\mathrm{e}$, obtained via the additive decomposition, $\boldsymbol{\epsilon} = \boldsymbol{\epsilon}_\mathrm{e} + \boldsymbol{\epsilon}_\mathrm{p}$. The elastic law is specified by m.elastic
and is evaluated by giving it the elastic strain.
Yield Criterion
A yield criterion of the type
\[\varPhi = f\left( \boldsymbol{\sigma} - \boldsymbol{\beta} \right) - \left[Y_0 + \kappa\right]\]
is assumed. Here, $\boldsymbol{\beta} = \sum_{i=1}^{N_\mathrm{kin}} \boldsymbol{\beta}_i$ is the total back-stress, and $\kappa = \sum_{i=1}^{N_\mathrm{iso}} \kappa_i$ is the total isotropic hardening stress. The initial yield limit is passed to the yield criterion along with potentially other parameters. The evolution laws for $\boldsymbol{\beta}_i$ and $\kappa_i$ are given by the kinematic and isotropic hardening laws.
Associative plastic flow is used to obtain the plastic strains,
\[\dot{\epsilon}_{\mathrm{p}} = \dot{\lambda} \left.\frac{\partial f}{\partial \boldsymbol{\sigma}}\right\vert_{\left( \boldsymbol{\sigma} - \boldsymbol{\beta} \right)} = \dot{\lambda} \boldsymbol{\nu}\]
Isotropic Hardening
The isotropic hardening stress is $\kappa_i = -H_{\mathrm{iso},i} k_i$, where the evolution law for $k_i$ is
\[\dot{k}_i = \dot{\lambda} g_{\mathrm{iso},i}(\kappa_i)\]
where $g_{\mathrm{iso},i}$ is specified by an isotropic hardening law, see Isotropic hardening. The hardening modulus, $H_{\mathrm{iso},i}$, is a parameter given to the isotropic hardening law.
Kinematic Hardening
The back-stress is $\boldsymbol{\beta}_i = - [2/3]H_{\mathrm{kin},i} \boldsymbol{b}_i$, where the evolution law for $\boldsymbol{b}_i$ is
\[\dot{\boldsymbol{b}}_i = \dot{\lambda} \boldsymbol{g}_{\mathrm{kin},i}(\boldsymbol{\nu}, \boldsymbol{\beta}_i)\]
where $g_{\mathrm{kin},i}$ is specified by a kinematic hardening law, see Kinematic hardening. The hardening modulus, $H_{\mathrm{kin},i}$, is a parameter given to the kinematic hardening law.
Rate Dependence
If overstress=RateIndependent()
, the plastic multiplier, $\lambda$, is obtained via the KKT-conditions,
\[\dot{\lambda} \geq 0, \quad \varPhi \leq 0, \quad \dot{\lambda}\varPhi = 0\]
Otherwise, the overstress function, $\eta(\varPhi)$, determines the evolution of $\lambda$ as
\[\dot{\lambda} = \eta(\varPhi, (Y_0 + \kappa))\]