MFEM  v4.5.2 Finite element discretization library
mfem::NeoHookeanModel Class Reference

#include <nonlininteg.hpp>

Inheritance diagram for mfem::NeoHookeanModel:
[legend]
Collaboration diagram for mfem::NeoHookeanModel:
[legend]

## Public Member Functions

NeoHookeanModel (double mu_, double K_, double g_=1.0)

NeoHookeanModel (Coefficient &mu_, Coefficient &K_, Coefficient *g_=NULL)

virtual double EvalW (const DenseMatrix &J) const
Evaluate the strain energy density function, W = W(Jpt). More...

virtual void EvalP (const DenseMatrix &J, DenseMatrix &P) const
Evaluate the 1st Piola-Kirchhoff stress tensor, P = P(Jpt). More...

virtual void AssembleH (const DenseMatrix &J, const DenseMatrix &DS, const double weight, DenseMatrix &A) const
Evaluate the derivative of the 1st Piola-Kirchhoff stress tensor and assemble its contribution to the local gradient matrix 'A'. More...

Public Member Functions inherited from mfem::HyperelasticModel
HyperelasticModel ()

virtual ~HyperelasticModel ()

void SetTransformation (ElementTransformation &Ttr_)

## Protected Member Functions

void EvalCoeffs () const

## Protected Attributes

double mu

double K

double g

Coefficientc_mu

Coefficientc_K

Coefficientc_g

bool have_coeffs

DenseMatrix Z

DenseMatrix G

DenseMatrix C

Protected Attributes inherited from mfem::HyperelasticModel
ElementTransformationTtr

## Detailed Description

Neo-Hookean hyperelastic model with a strain energy density function given by the formula: $$(\mu/2)(\bar{I}_1 - dim) + (K/2)(det(J)/g - 1)^2$$ where J is the deformation gradient and $$\bar{I}_1 = (det(J))^{-2/dim} Tr(J J^t)$$. The parameters $$\mu$$ and K are the shear and bulk moduli, respectively, and g is a reference volumetric scaling.

Definition at line 262 of file nonlininteg.hpp.

## ◆ NeoHookeanModel() [1/2]

 mfem::NeoHookeanModel::NeoHookeanModel ( double mu_, double K_, double g_ = 1.0 )
inline

Definition at line 275 of file nonlininteg.hpp.

## ◆ NeoHookeanModel() [2/2]

 mfem::NeoHookeanModel::NeoHookeanModel ( Coefficient & mu_, Coefficient & K_, Coefficient * g_ = NULL )
inline

Definition at line 278 of file nonlininteg.hpp.

## ◆ AssembleH()

 void mfem::NeoHookeanModel::AssembleH ( const DenseMatrix & Jpt, const DenseMatrix & DS, const double weight, DenseMatrix & A ) const
virtual

Evaluate the derivative of the 1st Piola-Kirchhoff stress tensor and assemble its contribution to the local gradient matrix 'A'.

Parameters
 [in] Jpt Represents the target->physical transformation Jacobian matrix. [in] DS Gradient of the basis matrix (dof x dim). [in] weight Quadrature weight coefficient for the point. [in,out] A Local gradient matrix where the contribution from this point will be added.

Computes weight * d(dW_dxi)_d(xj) at the current point, for all i and j, where x1 ... xn are the FE dofs. This function is usually defined using the matrix invariants and their derivatives.

Implements mfem::HyperelasticModel.

Definition at line 318 of file nonlininteg.cpp.

## ◆ EvalCoeffs()

 void mfem::NeoHookeanModel::EvalCoeffs ( ) const
inlineprotected

Definition at line 271 of file nonlininteg.cpp.

## ◆ EvalP()

 void mfem::NeoHookeanModel::EvalP ( const DenseMatrix & Jpt, DenseMatrix & P ) const
virtual

Evaluate the 1st Piola-Kirchhoff stress tensor, P = P(Jpt).

Parameters
 [in] Jpt Represents the target->physical transformation Jacobian matrix. [out] P The evaluated 1st Piola-Kirchhoff stress tensor.

Implements mfem::HyperelasticModel.

Definition at line 297 of file nonlininteg.cpp.

## ◆ EvalW()

 double mfem::NeoHookeanModel::EvalW ( const DenseMatrix & Jpt ) const
virtual

Evaluate the strain energy density function, W = W(Jpt).

Parameters
 [in] Jpt Represents the target->physical transformation Jacobian matrix.

Implements mfem::HyperelasticModel.

Definition at line 281 of file nonlininteg.cpp.

## ◆ C

 DenseMatrix mfem::NeoHookeanModel::C
mutableprotected

Definition at line 270 of file nonlininteg.hpp.

## ◆ c_g

 Coefficient * mfem::NeoHookeanModel::c_g
protected

Definition at line 266 of file nonlininteg.hpp.

## ◆ c_K

 Coefficient * mfem::NeoHookeanModel::c_K
protected

Definition at line 266 of file nonlininteg.hpp.

## ◆ c_mu

 Coefficient* mfem::NeoHookeanModel::c_mu
protected

Definition at line 266 of file nonlininteg.hpp.

## ◆ g

 double mfem::NeoHookeanModel::g
mutableprotected

Definition at line 265 of file nonlininteg.hpp.

## ◆ G

 DenseMatrix mfem::NeoHookeanModel::G
mutableprotected

Definition at line 270 of file nonlininteg.hpp.

## ◆ have_coeffs

 bool mfem::NeoHookeanModel::have_coeffs
protected

Definition at line 267 of file nonlininteg.hpp.

## ◆ K

 double mfem::NeoHookeanModel::K
mutableprotected

Definition at line 265 of file nonlininteg.hpp.

## ◆ mu

 double mfem::NeoHookeanModel::mu
mutableprotected

Definition at line 265 of file nonlininteg.hpp.

## ◆ Z

 DenseMatrix mfem::NeoHookeanModel::Z
mutableprotected

Definition at line 269 of file nonlininteg.hpp.

The documentation for this class was generated from the following files: