Rodin::Solid::NeoHookean class final

Compressible Neo-Hookean hyperelastic law.

Base classes

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

Public types

struct Cache
Precomputed cache for the Neo-Hookean law.

Constructors, destructors, conversion operators

NeoHookean(Real lambda, Real mu)
Constructs a Neo-Hookean law with the given Lamé parameters.
NeoHookean(const NeoHookean& other) defaulted
Copy constructor.
NeoHookean(NeoHookean&& other) defaulted
Move constructor.

Public functions

auto getLameFirstParameter() const -> Real
Gets the first Lamé parameter.
auto getShearModulus() const -> Real
Gets the shear modulus.
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::NeoHookean::NeoHookean(Real lambda, Real mu)

Constructs a Neo-Hookean law with the given Lamé parameters.

Parameters
lambda First Lamé parameter $ \lambda $
mu Second Lamé parameter (shear modulus) $ \mu $

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

Copy constructor.

Parameters
other Object to copy from.

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

Move constructor.

Parameters
other Object to move from.

Real Rodin::Solid::NeoHookean::getLameFirstParameter() const

Gets the first Lamé parameter.

Returns The first Lamé parameter.

Real Rodin::Solid::NeoHookean::getShearModulus() const

Gets the shear modulus.

Returns The shear modulus.

void Rodin::Solid::NeoHookean::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::NeoHookean::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::NeoHookean::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::NeoHookean::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.