Rodin::Solid::Hooke class

Isotropic Hooke's law for linear elasticity.

Given the Lamé parameters $ \lambda $ and $ \mu $ , computes:

\[ \boldsymbol{\sigma} = \lambda (\operatorname{tr}\boldsymbol{\varepsilon})\mathbf{I} + 2\mu \boldsymbol{\varepsilon} \]

Material parameter conversions

From Young's modulus $ E $ and Poisson's ratio $ \nu $ :

\[ \lambda = \frac{E\nu}{(1+\nu)(1-2\nu)}, \quad \mu = \frac{E}{2(1+\nu)} \]

Public static functions

static auto YoungPoisson(Real E, Real nu) -> Hooke
Constructs Hooke's law from Young's modulus and Poisson's ratio.

Constructors, destructors, conversion operators

Hooke(Real lambda, Real mu)
Constructs Hooke's law with the given elastic parameters.
Hooke(const Hooke&) defaulted
Copy constructor.
Hooke(Hooke&&) defaulted
Move constructor.

Public functions

auto getLameFirstParameter() const -> Real
Gets the first Lamé parameter.
auto getShearModulus() const -> Real
Gets the shear modulus.
void getStress(Math::SpatialMatrix<Real>& sigma, const Math::SpatialMatrix<Real>& epsilon) const
Computes the Cauchy stress from the infinitesimal strain.

Function documentation

static Hooke Rodin::Solid::Hooke::YoungPoisson(Real E, Real nu)

Constructs Hooke's law from Young's modulus and Poisson's ratio.

Parameters
E Young's modulus
nu Poisson's ratio
Returns Hooke object with computed Lamé parameters

Rodin::Solid::Hooke::Hooke(Real lambda, Real mu)

Constructs Hooke's law with the given elastic parameters.

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

void Rodin::Solid::Hooke::getStress(Math::SpatialMatrix<Real>& sigma, const Math::SpatialMatrix<Real>& epsilon) const

Computes the Cauchy stress from the infinitesimal strain.

Parameters
sigma out Output stress tensor
epsilon in Infinitesimal strain tensor $ \boldsymbol{\varepsilon} $