Models for Small Strains

Implementations of mechanical (stress-strain) material models following the MaterialModelsBase.jl interface.

Elasticity

Linear Isotropic Elasticity

MechanicalMaterialModels.LinearElasticMethod
LinearElastic(; 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)}\]

source

Linear Anisotropic Elasticity

MechanicalMaterialModels.LinearElasticMethod
LinearElastic(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}$.

source
MechanicalMaterialModels.LinearElasticMethod
LinearElastic{: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}\]

source

Plasticity

MechanicalMaterialModels.PlasticType
Plastic(;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. If yield::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 to RateIndependent()

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))
source

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))\]