MFEM v4.9.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::TMOP_Metric_014 Class Reference

2D non-barrier Shape+Size+Orientation (VOS) metric (polyconvex). More...

#include <tmop.hpp>

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

Public Member Functions

real_t EvalWMatrixForm (const DenseMatrix &Jpt) const override
 Evaluates the metric in matrix form (opposed to invariant form). Used for validating the invariant evaluations.
 
real_t EvalW (const DenseMatrix &Jpt) const override
 Evaluate the strain energy density function, W = W(Jpt), by using the 2D or 3D matrix invariants, see linalg/invariants.hpp.
 
void EvalP (const DenseMatrix &Jpt, DenseMatrix &P) const override
 Evaluate the 1st Piola-Kirchhoff stress tensor, P = P(Jpt).
 
void AssembleH (const DenseMatrix &Jpt, const DenseMatrix &DS, const real_t weight, DenseMatrix &A) const override
 Evaluate the derivative of the 1st Piola-Kirchhoff stress tensor and assemble its contribution to the local gradient matrix 'A'.
 
AD1Type EvalW_AD1 (const std::vector< AD1Type > &T, const std::vector< AD1Type > &W) const override
 First-derivative hook for AD-based computations.
 
AD2Type EvalW_AD2 (const std::vector< AD2Type > &T, const std::vector< AD2Type > &W) const override
 Second-derivative hook for AD-based computations.
 
int Id () const override
 Return the metric ID.
 
- Public Member Functions inherited from mfem::TMOP_QualityMetric
 TMOP_QualityMetric ()
 
virtual ~TMOP_QualityMetric ()
 
virtual void SetTargetJacobian (const DenseMatrix &Jtr_)
 Specify the reference-element -> target-element Jacobian matrix for the point of interest.
 
virtual void EvalPW (const DenseMatrix &Jpt, DenseMatrix &PW) const
 
- Public Member Functions inherited from mfem::HyperelasticModel
 HyperelasticModel ()
 
virtual ~HyperelasticModel ()
 
void SetTransformation (ElementTransformation &Ttr_)
 

Protected Member Functions

template<typename type >
type EvalW_AD_impl (const std::vector< type > &T, const std::vector< type > &W) const
 
- Protected Member Functions inherited from mfem::TMOP_QualityMetric
void SetTransformation (ElementTransformation &)
 The method HyperelasticModel::SetTransformation() is hidden for TMOP_QualityMetrics, because it is not used.
 
void DefaultAssembleH (const DenseTensor &H, const DenseMatrix &DS, const real_t weight, DenseMatrix &A) const
 See AssembleH(). This is a default implementation for the case when the 2nd derivatives of the metric are pre-computed and stored into H. This function is used in combination with AD-based computations.
 

Protected Attributes

InvariantsEvaluator2D< real_tie
 
- Protected Attributes inherited from mfem::TMOP_QualityMetric
const DenseMatrixJtr
 
- Protected Attributes inherited from mfem::HyperelasticModel
ElementTransformationTtr
 

Detailed Description

2D non-barrier Shape+Size+Orientation (VOS) metric (polyconvex).

Definition at line 460 of file tmop.hpp.

Member Function Documentation

◆ AssembleH()

void mfem::TMOP_Metric_014::AssembleH ( const DenseMatrix & Jpt,
const DenseMatrix & DS,
const real_t weight,
DenseMatrix & A ) const
overridevirtual

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.

Implements mfem::TMOP_QualityMetric.

Definition at line 1146 of file tmop.cpp.

◆ EvalP()

void mfem::TMOP_Metric_014::EvalP ( const DenseMatrix & Jpt,
DenseMatrix & P ) const
overridevirtual

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

Parameters
[in]JptRepresents the target->physical transformation Jacobian matrix.
[out]PThe evaluated 1st Piola-Kirchhoff stress tensor.

Implements mfem::TMOP_QualityMetric.

Definition at line 1134 of file tmop.cpp.

◆ EvalW()

real_t mfem::TMOP_Metric_014::EvalW ( const DenseMatrix & Jpt) const
overridevirtual

Evaluate the strain energy density function, W = W(Jpt), by using the 2D or 3D matrix invariants, see linalg/invariants.hpp.

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

Implements mfem::TMOP_QualityMetric.

Definition at line 1123 of file tmop.cpp.

◆ EvalW_AD1()

AD1Type mfem::TMOP_Metric_014::EvalW_AD1 ( const std::vector< AD1Type > & T,
const std::vector< AD1Type > & W ) const
overridevirtual

First-derivative hook for AD-based computations.

Warning
Not for public use. Internal use for AD-based computations.

Reimplemented from mfem::TMOP_QualityMetric.

Definition at line 1169 of file tmop.cpp.

◆ EvalW_AD2()

AD2Type mfem::TMOP_Metric_014::EvalW_AD2 ( const std::vector< AD2Type > & T,
const std::vector< AD2Type > & W ) const
overridevirtual

Second-derivative hook for AD-based computations.

Warning
Not for public use. Internal use for AD-based computations.

Reimplemented from mfem::TMOP_QualityMetric.

Definition at line 1175 of file tmop.cpp.

◆ EvalW_AD_impl()

template<typename type >
type mfem::TMOP_Metric_014::EvalW_AD_impl ( const std::vector< type > & T,
const std::vector< type > & W ) const
protected

Definition at line 1163 of file tmop.cpp.

◆ EvalWMatrixForm()

real_t mfem::TMOP_Metric_014::EvalWMatrixForm ( const DenseMatrix & Jpt) const
overridevirtual

Evaluates the metric in matrix form (opposed to invariant form). Used for validating the invariant evaluations.

Reimplemented from mfem::TMOP_QualityMetric.

Definition at line 1114 of file tmop.cpp.

◆ Id()

int mfem::TMOP_Metric_014::Id ( ) const
inlineoverridevirtual

Return the metric ID.

Reimplemented from mfem::TMOP_QualityMetric.

Definition at line 487 of file tmop.hpp.

Member Data Documentation

◆ ie

InvariantsEvaluator2D<real_t> mfem::TMOP_Metric_014::ie
mutableprotected

Definition at line 463 of file tmop.hpp.


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