Rodin::Solid::MooneyRivlin class final

Compressible Mooney-Rivlin hyperelastic law.

Parameterized by material constants $ c_1, c_2 $ and bulk modulus $ \kappa $ .

Base classes

template<class Derived>
class HyperElasticLaw<MooneyRivlin>
CRTP base class for hyperelastic constitutive laws.

Public types

struct Cache
Precomputed cache for the Mooney-Rivlin law.

Constructors, destructors, conversion operators

MooneyRivlin(Real c1, Real c2, Real kappa)
Constructs a Mooney-Rivlin law.
MooneyRivlin(const MooneyRivlin& other) defaulted
Copy constructor.
MooneyRivlin(MooneyRivlin&& other) defaulted
Move constructor.

Public functions

auto getMaterialConstantC1() const -> Real
Gets $ c_1 $ .
auto getMaterialConstantC2() const -> Real
Gets $ c_2 $ .
auto getBulkModulus() const -> Real
Gets the bulk modulus $ \kappa $ .
void setCache(Cache& cache, const ConstitutivePoint& cp) const
Populates the invariant cache at a constitutive point.
auto getStrainEnergyDensity(const Cache& cache, const ConstitutivePoint& cp) const -> Real
Returns the stored strain-energy density.
void getFirstPiolaKirchhoffStress(Math::SpatialMatrix<Real>& P, const Cache& cache, const ConstitutivePoint& cp) const
Computes the first Piola-Kirchhoff stress.
void getMaterialTangent(Math::SpatialMatrix<Real>& dP, const Cache& cache, const ConstitutivePoint& cp, const Math::SpatialMatrix<Real>& dF) const
Computes the material tangent action.

Function documentation

Rodin::Solid::MooneyRivlin::MooneyRivlin(Real c1, Real c2, Real kappa)

Constructs a Mooney-Rivlin law.

Parameters
c1 First material constant
c2 Second material constant
kappa Bulk modulus $ \kappa $

Rodin::Solid::MooneyRivlin::MooneyRivlin(const MooneyRivlin& other) defaulted

Copy constructor.

Parameters
other Object to copy from.

Rodin::Solid::MooneyRivlin::MooneyRivlin(MooneyRivlin&& other) defaulted

Move constructor.

Parameters
other Object to move from.

Real Rodin::Solid::MooneyRivlin::getMaterialConstantC1() const

Gets $ c_1 $ .

Returns $ c_1 $ .

Real Rodin::Solid::MooneyRivlin::getMaterialConstantC2() const

Gets $ c_2 $ .

Returns $ c_2 $ .

Real Rodin::Solid::MooneyRivlin::getBulkModulus() const

Gets the bulk modulus $ \kappa $ .

Returns The bulk modulus $ \kappa $ .

void Rodin::Solid::MooneyRivlin::setCache(Cache& cache, const ConstitutivePoint& cp) const

Populates the invariant cache at a constitutive point.

Parameters
cache Storage for the constitutive invariant cache.
cp Constitutive evaluation point.

Real Rodin::Solid::MooneyRivlin::getStrainEnergyDensity(const Cache& cache, const ConstitutivePoint& cp) const

Returns the stored strain-energy density.

Parameters
cache Constitutive invariant cache populated by setCache().
cp Constitutive evaluation point.
Returns The stored strain-energy density.

void Rodin::Solid::MooneyRivlin::getFirstPiolaKirchhoffStress(Math::SpatialMatrix<Real>& P, const Cache& cache, const ConstitutivePoint& cp) const

Computes the first Piola-Kirchhoff stress.

Parameters
P Storage for the first Piola-Kirchhoff stress.
cache Constitutive invariant cache populated by setCache().
cp Constitutive evaluation point.

void Rodin::Solid::MooneyRivlin::getMaterialTangent(Math::SpatialMatrix<Real>& dP, const Cache& cache, const ConstitutivePoint& cp, const Math::SpatialMatrix<Real>& dF) const

Computes the material tangent action.

Parameters
dP Storage for the resulting stress increment.
cache Constitutive invariant cache populated by setCache().
cp Constitutive evaluation point.
dF Increment of the deformation gradient.