Rodin/Solid/Constitutive/NeoHookean.h file

Compressible Neo-Hookean hyperelastic constitutive law.

Implements the stored energy density:

\[ W(\mathbf{F}) = \frac{\mu}{2}(I_1 - d) - \mu \ln J + \frac{\lambda}{2}(\ln J)^2 \]

where $ I_1 = \operatorname{tr}(\mathbf{F}^T \mathbf{F}) $ , $ J = \det(\mathbf{F}) $ , and $ d $ is the spatial dimension.

The first Piola-Kirchhoff stress is:

\[ \mathbf{P} = \mu(\mathbf{F} - \mathbf{F}^{-T}) + \lambda \ln(J) \, \mathbf{F}^{-T} \]

The material tangent action on $ \delta\mathbf{F} $ is:

\[ D\mathbf{P}[\delta\mathbf{F}] = \mu \, \delta\mathbf{F} + \lambda (\mathbf{F}^{-T} : \delta\mathbf{F}) \, \mathbf{F}^{-T} + (\mu - \lambda \ln J) \, \mathbf{F}^{-T} \delta\mathbf{F}^T \mathbf{F}^{-T} \]

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::Solid
Hyperelastic solid mechanics module for large-deformation problems.

Classes

class Rodin::Solid::NeoHookean
Compressible Neo-Hookean hyperelastic law.
struct Rodin::Solid::NeoHookean::Cache
Precomputed cache for the Neo-Hookean law.