Finite-Strain Isotropic Biot Viscoelasticity
A finite-strain isotropic viscoelastic material model based on a generalized Maxwell model formulated in terms of the Biot stress and the right stretch tensor \(\boldsymbol{U}\). The hyperelastic base follows a Neo-Hookean Biot potential. The consistent algorithmic tangent is computed via automatic differentiation.
Index |
Model Parameter |
Description |
|---|---|---|
0 |
\(K\) |
Bulk modulus |
1 |
\(G\) |
Shear modulus |
2 |
nM |
Number of Maxwell elements |
3 … 3+2nM−1 |
\(\gamma_i,\,\tau_i\) |
Pairs of relative stiffness weight \(\gamma_i\) and relaxation time \(\tau_i\) for each Maxwell element (\(i=1,\ldots,n_M\)) |
3+2nM (optional) |
\(\rho\) |
Density |
State Variable |
Description |
|---|---|
|
Biot stress from the previous increment |
|
Creep state tensors for each Maxwell element |
Theory
The model employs the polar decomposition \(\boldsymbol{F} = \boldsymbol{R}\,\boldsymbol{U}\), where \(\boldsymbol{U}\) is the right stretch tensor obtained from the spectral decomposition of the right Cauchy–Green tensor \(\boldsymbol{C} = \boldsymbol{Q}\,\boldsymbol{\Lambda}\,\boldsymbol{Q}^{\mathsf{T}}\).
The Biot stress is derived from a Neo-Hookean strain energy density function \(\Psi(\boldsymbol{U})\) as
The total Biot stress is decomposed into instantaneous and viscous contributions following the generalized Maxwell model:
The overstress evolution and algorithmic update are identical to the finite-strain Maxwell model described in Liu et al. (2021), with the Biot stress increment as the driving quantity. The second Piola–Kirchhoff stress is recovered from the Biot stress via the spectral representation
where \(\lambda_I\) are the principal stretches. The Kirchhoff stress follows by push-forward: \(\boldsymbol{\tau} = \boldsymbol{F}\,\boldsymbol{S}\,\boldsymbol{F}^{\mathsf{T}}\).
Primary reference: Liu et al. 2021, A continuum and computational framework for viscoelastodynamics: I. Finite deformation linear models, Comput. Meth. Appl. Mech. Engrg. 385, 114059.
Implementation
-
class FiniteStrainIsotropicBiotViscoelasticity : public MarmotMaterialFiniteStrainAD
Inheritance diagram for Marmot::Materials::FiniteStrainIsotropicBiotViscoelasticity:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="Marmot::Materials::FiniteStrainIsotropicBiotViscoelasticity" tooltip="Marmot::Materials::FiniteStrainIsotropicBiotViscoelasticity" fillcolor="#BFBFBF"]
"3" [label="MarmotMaterialFiniteStrain" tooltip="MarmotMaterialFiniteStrain"]
"2" [label="MarmotMaterialFiniteStrainAD" tooltip="MarmotMaterialFiniteStrainAD"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-d7a9e260a1957c8d3f3290017875fbb3336a2ce8.png)
Collaboration diagram for Marmot::Materials::FiniteStrainIsotropicBiotViscoelasticity:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"5" [label="Marmot::ContinuumMechanics::FiniteStrain::Viscoelasticity::MaxwellProperties" tooltip="Marmot::ContinuumMechanics::FiniteStrain::Viscoelasticity::MaxwellProperties"]
"1" [label="Marmot::Materials::FiniteStrainIsotropicBiotViscoelasticity" tooltip="Marmot::Materials::FiniteStrainIsotropicBiotViscoelasticity" fillcolor="#BFBFBF"]
"3" [label="MarmotMaterialFiniteStrain" tooltip="MarmotMaterialFiniteStrain"]
"2" [label="MarmotMaterialFiniteStrainAD" tooltip="MarmotMaterialFiniteStrainAD"]
"4" [label="MarmotStateLayoutDynamic" tooltip="MarmotStateLayoutDynamic"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
"1" -> "5" [dir=forward tooltip="usage"]
"3" -> "4" [dir=forward tooltip="usage"]
"2" -> "3" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-7941adc52b92128f59353dd2cfe51f57ccaacc99.png)
Finite-strain isotropic Biot-viscoelastic material model.
The model combines isotropic Biot-type hyperelasticity with a generalized Maxwell evolution in Biot stress space.
- Material parameters
K - bulk modulus
G - shear modulus
n_Maxwell - number of Maxwell elements
tau[i], beta[i] (i = 1..n_Maxwell) - Maxwell retardation times and relative weights
rho - density (optional; read from the last material property entry)
- State variables
S0_old- Biot stress from the previous incrementcreepStateVars- internal variables for the generalized Maxwell chain
Public Functions
-
FiniteStrainIsotropicBiotViscoelasticity(const double *materialProperties, int nMaterialProperties, int materialLabel)
Construct a FiniteStrainIsotropicBiotViscoelasticity material.
- Parameters:
materialProperties – Pointer to the material properties vector.
nMaterialProperties – Length of
materialProperties.materialLabel – Material label.
-
virtual void computeStressAD(ConstitutiveResponseAD<3>&, const DeformationAD<3>&, const TimeIncrement&) const override
Compute Kirchhoff stress using automatic differentiation.
- Parameters:
response – [inout] Constitutive response including stress, energy density and state variables.
deformation – [in] Deformation information with deformation gradient \(\mathbf{F}\).
timeIncrement – [in] Time increment information.
-
virtual double getDensity(const double *stateVars) const override
Get the material density.
- Parameters:
stateVars – [in] Pointer to state variables (unused).
- Returns:
Density from the last entry in
materialProperties.
-
inline MarmotMaterialFiniteStrainAD(const double *matProperties_, int nMaterialProperties_, int materialNumber_)
Construct a MarmotMaterialFiniteStrainAD.
- Parameters:
matProperties_ – [in] Pointer to the array of material property values.
nMaterialProperties_ – [in] Number of material property values.
materialNumber_ – [in] Unique identifier for this material instance.
Protected Functions
-
inline void initializeStateLayout()
Define the layout of persistent state variables.
Protected Attributes
-
const double K
Bulk modulus.
-
const double G
Shear modulus.
-
const ContinuumMechanics::FiniteStrain::Viscoelasticity::MaxwellProperties maxwellProperties
Generalized Maxwell model parameters.
-
const FastorStandardTensors::Tensor3333t<autodiff::dual> initialCompliance
Initial compliance tensor used for viscoelastic stress update.