template<class FES, class Lambda, class Mu>
Rodin::Elasticity::LinearElasticity class

Linear elasticity system for small deformations.

This class implements the linear elasticity equations in the context of small deformation theory. The governing equations are:

\[ -\nabla \cdot \boldsymbol{\sigma}(\mathbf{u}) = \mathbf{f} \]

where $ \mathbf{u} $ is the displacement field, $ \mathbf{f} $ is the body force, and the stress tensor is given by:

\[ \boldsymbol{\sigma} = \lambda (\nabla \cdot \mathbf{u}) \mathbf{I} + 2\mu \boldsymbol{\varepsilon}(\mathbf{u}) \]

with the strain tensor:

\[ \boldsymbol{\varepsilon}(\mathbf{u}) = \frac{1}{2}(\nabla \mathbf{u} + (\nabla \mathbf{u})^T) \]

Parameters

  • $ \lambda $ : Lamé's first parameter (related to bulk modulus)
  • $ \mu $ : Lamé's second parameter (shear modulus)

Material Relations

The Lamé parameters can be expressed in terms of 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)} \]

Usage Example

// Vector-valued FE space for displacement
VectorP1 fes(mesh);
RealFunction lambda(1.0);
RealFunction mu(0.5);
LinearElasticity<VectorP1, RealFunction, RealFunction> elasticity(lambda, mu, fes);

Constructors, destructors, conversion operators

LinearElasticity(const Lambda& l, const Mu& m, const FES& fes)
Constructs a linear elasticity model.
template<class MuDerived, class LambdaDerived>
LinearElasticity(const Variational::FunctionBase<LambdaDerived>& lambda, const Variational::FunctionBase<MuDerived>& mu, const FES& fes)
Constructs a linear elasticity model with function parameters.

Function documentation

template<class FES, class Lambda, class Mu>
Rodin::Elasticity::LinearElasticity<FES, Lambda, Mu>::LinearElasticity(const Lambda& l, const Mu& m, const FES& fes)

Constructs a linear elasticity model.

Parameters
in Lamé's first parameter $ \lambda $
in Shear modulus $ \mu $
fes in Finite element space for the displacement field

template<class FES, class Lambda, class Mu> template<class MuDerived, class LambdaDerived>
Rodin::Elasticity::LinearElasticity<FES, Lambda, Mu>::LinearElasticity(const Variational::FunctionBase<LambdaDerived>& lambda, const Variational::FunctionBase<MuDerived>& mu, const FES& fes)

Constructs a linear elasticity model with function parameters.

Template parameters
MuDerived Derived type for shear modulus function
LambdaDerived Derived type for Lamé's first parameter function
Parameters
lambda in Lamé's first parameter function
mu in Shear modulus function
fes in Finite element space for the displacement field

Overload accepting FunctionBase objects for spatially varying material parameters.