Rodin::Solid::Yeoh class final

Compressible Yeoh hyperelastic law.

Parameterized by material constants $ c_1, c_2, c_3 $ and bulk modulus $ \kappa $ . The small-strain shear modulus is $ \mu = 2 c_1 $ ; $ c_2, c_3 $ control the strain-stiffening.

Base classes

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

Public types

struct Cache
Precomputed cache for the Yeoh law.

Constructors, destructors, conversion operators

Yeoh(Real c1, Real c2, Real c3, Real bulkModulus)
Constructs a Yeoh law.
Yeoh(const Yeoh&) defaulted
Copy constructor.
Yeoh(Yeoh&&) defaulted
Move constructor.

Public functions

auto getMaterialConstantC1() const -> Real
Gets $ c_1 $ .
auto getMaterialConstantC2() const -> Real
Gets $ c_2 $ .
auto getMaterialConstantC3() const -> Real
Gets $ c_3 $ .
auto getBulkModulus() const -> Real
Gets the bulk modulus $ \kappa $ .
void setCache(Cache& cache, const ConstitutivePoint& cp) const
Populates the constitutive cache at the current state.
auto getStrainEnergyDensity(const Cache& cache, const ConstitutivePoint& cp) const -> Real
Computes the 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
Applies the material tangent to a deformation-gradient increment.

Function documentation

Rodin::Solid::Yeoh::Yeoh(Real c1, Real c2, Real c3, Real bulkModulus)

Constructs a Yeoh law.

Parameters
c1 First material constant (small-strain: $ \mu = 2 c_1 $ )
c2 Second material constant (quadratic stiffening)
c3 Third material constant (cubic stiffening)
bulkModulus Bulk modulus $ \kappa $

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

Populates the constitutive cache at the current state.

Parameters
cache The cache to fill
cp The constitutive point

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

Computes the strain-energy density.

Parameters
cache The precomputed constitutive cache
cp The constitutive point
Returns The stored energy density

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

Computes the first Piola-Kirchhoff stress.

Parameters
out The resulting stress tensor
cache The precomputed constitutive cache
cp The constitutive point

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

Applies the material tangent to a deformation-gradient increment.

Parameters
dP out The resulting stress increment
cache The precomputed constitutive cache
cp The constitutive point
dF The deformation-gradient increment