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&) defaulted
Copy constructor.
MooneyRivlin(MooneyRivlin&&) 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 $