Finite-Strain Orthotropic Biot Viscoelasticity

A finite-strain orthotropic viscoelastic material model based on a generalized Maxwell model formulated in terms of the Biot stress and the right stretch tensor \(\boldsymbol{U}\). The instantaneous elastic response is governed by an orthotropic linear Biot constitutive law. The consistent algorithmic tangent is computed via automatic differentiation.

Index

Model Parameter

Description

0

\(E_1\)

Young’s modulus in material direction 1

1

\(E_2\)

Young’s modulus in material direction 2

2

\(E_3\)

Young’s modulus in material direction 3

3

\(\nu_{12}\)

Poisson’s ratio (1–2 plane)

4

\(\nu_{13}\)

Poisson’s ratio (1–3 plane)

5

\(\nu_{23}\)

Poisson’s ratio (2–3 plane)

6

\(G_{12}\)

Shear modulus in the 1–2 plane

7

\(G_{13}\)

Shear modulus in the 1–3 plane

8

\(G_{23}\)

Shear modulus in the 2–3 plane

9

nM

Number of Maxwell elements

10 … 10+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\))

10+2nM (optional)

\(\rho\)

Density

The Poisson’s ratio \(\nu_{ij}\) is defined as the ratio of lateral strain in direction \(x_j\) to axial strain in direction \(x_i\) under uniaxial stress in direction \(x_i\). See namespace Marmot::ContinuumMechanics::Elasticity for details.

State Variable

Description

S0_old (9 components)

Biot stress from the previous increment

creepStateVars (9 × nM components)

Creep state tensors for each Maxwell element

Theory

The model is the orthotropic counterpart of the Finite-Strain Isotropic Biot Viscoelasticity. It replaces the isotropic Neo-Hookean Biot potential with a fully orthotropic linear Biot constitutive relation.

The polar decomposition \(\boldsymbol{F} = \boldsymbol{R}\,\boldsymbol{U}\) is used. The right stretch tensor \(\boldsymbol{U}\) is obtained from the spectral decomposition of \(\boldsymbol{C} = \boldsymbol{Q}\,\boldsymbol{\Lambda}\,\boldsymbol{Q}^{\mathsf{T}}\).

The instantaneous Biot stress is given by the orthotropic linear relation

\[\boldsymbol{T}_{\rm Biot} = \mathbb{C}_{\rm Biot} : (\boldsymbol{U} - \boldsymbol{I}),\]

where \(\mathbb{C}_{\rm Biot}\) is the fourth-order orthotropic stiffness tensor assembled from the nine independent engineering constants \(E_1,\,E_2,\,E_3,\,\nu_{12},\,\nu_{13},\,\nu_{23},\,G_{12},\,G_{13},\,G_{23}\).

The generalized Maxwell model introduces non-equilibrium overstresses:

\[\boldsymbol{T}_{\rm Biot} = \boldsymbol{T}_{\rm Biot,\infty} + \sum_{i=1}^{n_M} \boldsymbol{h}_i.\]

The algorithmic update for each overstress is

\[\boldsymbol{h}_i^{n+1} = e^{-\Delta t/\tau_i}\,\boldsymbol{h}_i^n + \gamma_i\,\Delta\boldsymbol{T}_{\rm Biot,0}\, \frac{1 - e^{-\Delta t/\tau_i}}{\Delta t/\tau_i}.\]

The second Piola–Kirchhoff stress is recovered from the Biot stress in the principal-stretch frame via

\[\boldsymbol{S}_{IJ} = \frac{2\,T_{\rm Biot,IJ}}{\lambda_I + \lambda_J}, \quad \lambda_I = \sqrt{\Lambda_{II}},\]

and 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 FiniteStrainOrthotropicBiotViscoelasticity : public MarmotMaterialFiniteStrainAD

Inheritance diagram for Marmot::Materials::FiniteStrainOrthotropicBiotViscoelasticity:

digraph {
    graph [bgcolor="#00000000"]
    node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
    edge [color="#1414CE"]
    "1" [label="Marmot::Materials::FiniteStrainOrthotropicBiotViscoelasticity" tooltip="Marmot::Materials::FiniteStrainOrthotropicBiotViscoelasticity" 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"]
}

Collaboration diagram for Marmot::Materials::FiniteStrainOrthotropicBiotViscoelasticity:

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::FiniteStrainOrthotropicBiotViscoelasticity" tooltip="Marmot::Materials::FiniteStrainOrthotropicBiotViscoelasticity" 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"]
}

Finite-strain orthotropic Biot-viscoelastic material model.

The model combines orthotropic Biot-type hyperelasticity with a generalized Maxwell evolution in Biot stress space.

Material parameters

  • E1, E2, E3 - Young’s moduli in principal material directions

  • nu12, nu13, nu23 - Poisson ratios

  • G12, G13, G23 - shear moduli

  • 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 increment

  • creepStateVars - internal variables for the generalized Maxwell chain

Public Functions

FiniteStrainOrthotropicBiotViscoelasticity(const double *materialProperties, int nMaterialProperties, int materialLabel)

Construct a FiniteStrainOrthotropicBiotViscoelasticity 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 E1

Young’s modulus in principal material direction 1.

const double E2

Young’s modulus in principal material direction 2.

const double E3

Young’s modulus in principal material direction 3.

const double nu12

Poisson ratio relating directions 1 and 2.

const double nu13

Poisson ratio relating directions 1 and 3.

const double nu23

Poisson ratio relating directions 2 and 3.

const double G12

Shear modulus in the 1-2 plane.

const double G13

Shear modulus in the 1-3 plane.

const double G23

Shear modulus in the 2-3 plane.

const ContinuumMechanics::FiniteStrain::Viscoelasticity::MaxwellProperties maxwellProperties

Generalized Maxwell model parameters.

const FastorStandardTensors::Tensor3333t<autodiff::dual> dBiotStress_dU

Constant derivative of Biot stress with respect to right stretch tensor.