SOFA API  651e7a3a
Open source framework for multi-physics simuation
sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes > Class Template Reference

#include <StableNeoHookean.h>

Inheritance diagram for sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes >:

Detailed Description

template<class DataTypes>
class sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes >

Stable Neo-Hookean material From: "Smith, Breannan, Fernando De Goes, and Theodore Kim. "Stable neo-hookean flesh simulation." ACM Transactions on Graphics (TOG) 37.2 (2018): 1-15.)"

Static Public Attributes

static constexpr std::string_view Name = "StableNeoHookean"
 

Public Member Functions

Real getStrainEnergy (StrainInformation< DataTypes > *sinfo, const MaterialParameters< DataTypes > &param) override
 
void deriveSPKTensor (StrainInformation< DataTypes > *sinfo, const MaterialParameters< DataTypes > &param, MatrixSym &SPKTensorGeneral) override
 
void applyElasticityTensor (StrainInformation< DataTypes > *sinfo, const MaterialParameters< DataTypes > &param, const MatrixSym &inputTensor, MatrixSym &outputTensor) override
 
void ElasticityTensor (StrainInformation< DataTypes > *sinfo, const MaterialParameters< DataTypes > &param, Matrix6 &outputTensor) override
 
- Public Member Functions inherited from sofa::component::solidmechanics::fem::hyperelastic::material::HyperelasticMaterial< DataTypes >
virtual ~HyperelasticMaterial ()
 

Attribute details

◆ Name

template<class DataTypes >
constexpr std::string_view sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes >::Name = "StableNeoHookean"
staticconstexpr

Function details

◆ applyElasticityTensor()

template<class DataTypes >
void sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes >::applyElasticityTensor ( StrainInformation< DataTypes > *  ,
const MaterialParameters< DataTypes > &  ,
const MatrixSym ,
MatrixSym  
)
inlineoverridevirtual

computes the Elasticity Tensor of the current configuration

Reimplemented from sofa::component::solidmechanics::fem::hyperelastic::material::HyperelasticMaterial< DataTypes >.

◆ deriveSPKTensor()

template<class DataTypes >
void sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes >::deriveSPKTensor ( StrainInformation< DataTypes > *  sinfo,
const MaterialParameters< DataTypes > &  param,
MatrixSym SPKTensorGeneral 
)
inlineoverridevirtual

Compute the second Piola-Kirchhoff stress tensor in terms of the right Cauchy-Green deformation tensor

Reimplemented from sofa::component::solidmechanics::fem::hyperelastic::material::HyperelasticMaterial< DataTypes >.

◆ ElasticityTensor()

◆ getStrainEnergy()

template<class DataTypes >
Real sofa::component::solidmechanics::fem::hyperelastic::material::StableNeoHookean< DataTypes >::getStrainEnergy ( StrainInformation< DataTypes > *  sinfo,
const MaterialParameters< DataTypes > &  param 
)
inlineoverridevirtual

Strain energy density function for a stable Neo-Hookean material. The regularized origin barrier is removed according to "Kim, Theodore, and David Eberle. "Dynamic deformables: implementation and production practicalities (now with code!)." ACM SIGGRAPH 2022 Courses. 2022. 1-259."

Reimplemented from sofa::component::solidmechanics::fem::hyperelastic::material::HyperelasticMaterial< DataTypes >.