MFEM  v4.4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Attributes | List of all members
mfem::HyperelasticModel Class Referenceabstract

Abstract class for hyperelastic models. More...

#include <nonlininteg.hpp>

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

Public Member Functions

 HyperelasticModel ()
 
virtual ~HyperelasticModel ()
 
void SetTransformation (ElementTransformation &Ttr_)
 
virtual double EvalW (const DenseMatrix &Jpt) const =0
 Evaluate the strain energy density function, W = W(Jpt). More...
 
virtual void EvalP (const DenseMatrix &Jpt, DenseMatrix &P) const =0
 Evaluate the 1st Piola-Kirchhoff stress tensor, P = P(Jpt). More...
 
virtual void AssembleH (const DenseMatrix &Jpt, const DenseMatrix &DS, const double weight, DenseMatrix &A) const =0
 Evaluate the derivative of the 1st Piola-Kirchhoff stress tensor and assemble its contribution to the local gradient matrix 'A'. More...
 

Protected Attributes

ElementTransformationTtr
 

Detailed Description

Abstract class for hyperelastic models.

Definition at line 193 of file nonlininteg.hpp.

Constructor & Destructor Documentation

mfem::HyperelasticModel::HyperelasticModel ( )
inline

Definition at line 200 of file nonlininteg.hpp.

virtual mfem::HyperelasticModel::~HyperelasticModel ( )
inlinevirtual

Definition at line 201 of file nonlininteg.hpp.

Member Function Documentation

virtual void mfem::HyperelasticModel::AssembleH ( const DenseMatrix Jpt,
const DenseMatrix DS,
const double  weight,
DenseMatrix A 
) const
pure virtual

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

Parameters
[in]JptRepresents the target->physical transformation Jacobian matrix.
[in]DSGradient of the basis matrix (dof x dim).
[in]weightQuadrature weight coefficient for the point.
[in,out]ALocal 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.

Implemented in mfem::TMOP_AMetric_107a, mfem::TMOP_AMetric_036, mfem::TMOP_AMetric_014a, mfem::TMOP_AMetric_011, mfem::TMOP_Metric_352, mfem::TMOP_Metric_321, mfem::TMOP_Metric_316, mfem::TMOP_Metric_315, mfem::TMOP_Metric_313, mfem::TMOP_Metric_311, mfem::TMOP_Metric_303, mfem::TMOP_Metric_302, mfem::TMOP_Metric_301, mfem::TMOP_Metric_252, mfem::TMOP_Metric_211, mfem::TMOP_Metric_098, mfem::TMOP_Metric_085, mfem::TMOP_Metric_077, mfem::TMOP_Metric_058, mfem::TMOP_Metric_056, mfem::TMOP_Metric_055, mfem::NeoHookeanModel, mfem::TMOP_Metric_050, mfem::TMOP_Metric_022, mfem::InverseHarmonicModel, mfem::TMOP_Metric_014, mfem::TMOP_Metric_009, mfem::TMOP_Metric_007, mfem::TMOP_Metric_002, mfem::TMOP_Metric_aspratio3D, mfem::TMOP_Metric_aspratio2D, mfem::TMOP_Metric_skew3D, mfem::TMOP_Metric_skew2D, mfem::TMOP_Metric_001, mfem::TMOP_Combo_QualityMetric, and mfem::TMOP_QualityMetric.

virtual void mfem::HyperelasticModel::EvalP ( const DenseMatrix Jpt,
DenseMatrix P 
) const
pure virtual
virtual double mfem::HyperelasticModel::EvalW ( const DenseMatrix Jpt) const
pure virtual
void mfem::HyperelasticModel::SetTransformation ( ElementTransformation Ttr_)
inline

A reference-element to target-element transformation that can be used to evaluate Coefficients.

Note
It is assumed that Ttr_.SetIntPoint() is already called for the point of interest.

Definition at line 207 of file nonlininteg.hpp.

Member Data Documentation

ElementTransformation* mfem::HyperelasticModel::Ttr
protected

Reference-element to target-element transformation.

Definition at line 196 of file nonlininteg.hpp.


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