Models for Finite Strains
Implementations of mechanical (stress-strain) material models following the MaterialModelsBase.jl
interface.
Hyperelasticity
Neo-Hookean Materials
MechanicalMaterialModels.NeoHooke
— TypeNeoHooke(; G)
The incompressible neo-Hookean formulation with shear modulus G
defined by the potential
\[\varPsi(\boldsymbol{C}) = \frac{G}{2} \left[ \frac{\mathrm{tr}(\boldsymbol{C})}{\sqrt[3]{\det(\boldsymbol{C})}} - 3\right]\]
where $\boldsymbol{C}$ is the Right Cauchy-Green deformation tensor.
Note that sometimes, the division by $\sqrt[3]{\det(\boldsymbol{C})}$ is omitted, which has no influence if C
truly is incompressible, i.e. $\det(\boldsymbol{C}) = 1$.
MechanicalMaterialModels.CompressibleNeoHooke
— TypeCompressibleNeoHooke(; G, K)
A compressible neo-Hookean formulation defined by the potential
\[\varPsi(\boldsymbol{C}) = \frac{G}{2} \left[ \frac{\mathrm{tr}(\boldsymbol{C})}{\sqrt[3]{\det(\boldsymbol{C})}} - 3\right] + \varPsi_\mathrm{vol}\left(\sqrt{\det(\boldsymbol{C})}\right), \quad \varPsi_\mathrm{vol}(J) = \frac{K}{2} \left[ J - 1 \right]^2\]
Note that there are many different variations of this model considering the volumetric part, $\varPsi_\mathrm{vol}$.
Plasticity
MechanicalMaterialModels.FiniteStrainPlastic
— TypeFiniteStrainPlastic(;elastic, yield, isotropic, kinematic, overstress)
A finite-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::AbstractHyperElastic
Hyperelastic law, see e.g.CompressibleNeoHooke
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 = FiniteStrainPlastic(elastic = CompressibleNeoHooke(G=80.e3, K=160.e3),
yield = 300.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
The overall modeling framework and general equations for FiniteStrainPlastic
is described below. The exact model is specified by the provided laws as keyword arguments during construction.
The model is based on the multiplicative split of the deformation gradient, $\boldsymbol{F}$, into elastic, $\boldsymbol{F}_\mathrm{e}$, and plastic, $\boldsymbol{F}_\mathrm{p}$, parts,
\[\boldsymbol{F}=\boldsymbol{F}_\mathrm{e} \boldsymbol{F}_\mathrm{p}\]
Elastic law
The 2nd Piola-Kirchhoff stress, $\boldsymbol{S}_\mathrm{e}$, on the intermediate (elastic) configuration is then calculated from the hyperelastic potential, $\varPsi(\boldsymbol{C}_\mathrm{e})$,
\[\boldsymbol{S}_\mathrm{e} = 2\frac{\partial \varPsi}{\partial \boldsymbol{C}_\mathrm{e}}\]
where the elastic Right Cauchy-Green deformation tensor, $\boldsymbol{C}_\mathrm{e} := \boldsymbol{F}_\mathrm{e}^\mathrm{T}\boldsymbol{F}_\mathrm{e}$. We further introduce the Mandel stress as
\[\boldsymbol{M} = 2 \boldsymbol{C}_\mathrm{e} \frac{\partial \varPsi}{\partial \boldsymbol{C}_\mathrm{e}}\]
where $\boldsymbol{M} = \boldsymbol{F}_\mathrm{e}^\mathrm{T} \boldsymbol{\tau} \boldsymbol{F}_\mathrm{e}^\mathrm{-T}$ and $\boldsymbol{\tau}$ is the Kirchhoff stress and $\boldsymbol{P} = \boldsymbol{F}_\mathrm{e} \boldsymbol{S}_\mathrm{e} \boldsymbol{F}_\mathrm{p}^{-T}$ is the 1st Piola-Kirchhoff stress.
In summary, the elastic response is determined by the potential, $\varPsi(\boldsymbol{C}_\mathrm{e})$, specified by the elastic law.
Yield Criterion
A yield criterion of the type
\[\varPhi = f\left( \boldsymbol{M} - \boldsymbol{M}_\mathrm{k} \right) - \left[Y_0 + \kappa\right]\]
is formulated in terms of Mandel stresses, where $\boldsymbol{M}_\mathrm{k}$ is the total back-stress, and $\kappa$ the total isotropic hardening stress.
\[\boldsymbol{M}_\mathrm{k} = \sum_{i=1}^{N_\mathrm{kin}} \boldsymbol{M}_{\mathrm{k},i}, \quad \kappa = \sum_{i=1}^{N_\mathrm{iso}} \kappa_i\]
How the back-stresses, $\boldsymbol{M}_{\mathrm{k},i}$, and isotropic hardening stresses, $\kappa_i$, are calculated is further described below.
The initial yield limit, $Y_0$, is passed to the yield criterion along with potentially other parameters affecting the function $f$.
In this framework, an associative plastic flow is used to obtain the plastic deformations, specifically
\[\boldsymbol{L}_\mathrm{p} := \dot{\boldsymbol{F}}_\mathrm{p} \boldsymbol{F}_\mathrm{p}^{-1} = \dot{\lambda} \mathrm{\nu}, \quad \mathrm{\nu} := \frac{\partial \varPhi}{\partial \boldsymbol{M}}\]
Isotropic Hardening
The isotropic hardening is formulated as $\kappa_i = g_{\mathrm{iso},i}(\lambda)$, determined by the specific isotropic hardening laws, see Isotropic hardening.
Kinematic Hardening
The back-stresses, $\boldsymbol{M}_{\mathrm{k},i}$, are calculated as
\[\boldsymbol{M}_{\mathrm{k},i} = 2\boldsymbol{c}_{\mathrm{k},i} \frac{\partial\varPsi_{\mathrm{k},i}}{\partial \boldsymbol{c}_{\mathrm{k},i}}\]
where the deformation tensor associated with kinematic hardening, $\boldsymbol{c}_{\mathrm{k},i} := \boldsymbol{F}_{\mathrm{k},i}^{-\mathrm{T}}\boldsymbol{F}_{\mathrm{k},i}^{-1}$. The free energy for the kinematic hardening stress, $\varPsi_{\mathrm{k},i}$, is always given by the incompressible NeoHooke
formulation, with modulus $G=H/3$, where $H$ is the hardening modulus given to the kinematic hardening law. The factor $1/3$ gives the same initial plastic stiffness for both isotropic and kinematic hardening.
The evolution of the kinematic hardening deformation gradient, $\boldsymbol{F}_{\mathrm{k},i}$, is then given by the specific kinematic hardening law,
\[\boldsymbol{L}_\mathrm{p} := \dot{\boldsymbol{F}}_\mathrm{p} \boldsymbol{F}_\mathrm{p}^{-1} = \dot{\lambda} \boldsymbol{g}_{\mathrm{k},i}(\boldsymbol{\nu}, \boldsymbol{M}_{\mathrm{k},i})\]
where $\boldsymbol{g}_{\mathrm{k},i}$ are determined by the specific hardening laws, see Kinematic hardening.
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)\]