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 lameFirstParameter, Real shearModulus)
Constructs Hooke's law with the given elastic parameters.

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

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} $