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

Abstract class for local mesh quality metrics in the target-matrix optimization paradigm (TMOP) by P. Knupp et al. More...

#include <tmop.hpp>

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

Public Member Functions

 TMOP_QualityMetric ()
 
virtual ~TMOP_QualityMetric ()
 
virtual void SetTargetJacobian (const DenseMatrix &Jtr_)
 Specify the reference-element -> target-element Jacobian matrix for the point of interest. More...
 
virtual double EvalWMatrixForm (const DenseMatrix &Jpt) const
 Evaluates the metric in matrix form (opposed to invariant form). Used for validating the invariant evaluations. More...
 
virtual double EvalW (const DenseMatrix &Jpt) const =0
 Evaluate the strain energy density function, W = W(Jpt), by using the 2D or 3D matrix invariants, see linalg/invariants.hpp. 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...
 
virtual int Id () const
 Return the metric ID. More...
 
- Public Member Functions inherited from mfem::HyperelasticModel
 HyperelasticModel ()
 
virtual ~HyperelasticModel ()
 
void SetTransformation (ElementTransformation &Ttr_)
 

Protected Member Functions

void SetTransformation (ElementTransformation &)
 The method HyperelasticModel::SetTransformation() is hidden for TMOP_QualityMetrics, because it is not used. More...
 

Protected Attributes

const DenseMatrixJtr
 
- Protected Attributes inherited from mfem::HyperelasticModel
ElementTransformationTtr
 

Detailed Description

Abstract class for local mesh quality metrics in the target-matrix optimization paradigm (TMOP) by P. Knupp et al.

Definition at line 23 of file tmop.hpp.

Constructor & Destructor Documentation

mfem::TMOP_QualityMetric::TMOP_QualityMetric ( )
inline

Definition at line 34 of file tmop.hpp.

virtual mfem::TMOP_QualityMetric::~TMOP_QualityMetric ( )
inlinevirtual

Definition at line 35 of file tmop.hpp.

Member Function Documentation

virtual void mfem::TMOP_QualityMetric::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.

Implements mfem::HyperelasticModel.

Implemented in mfem::TMOP_AMetric_107a, mfem::TMOP_AMetric_036, mfem::TMOP_AMetric_014a, mfem::TMOP_AMetric_011, mfem::TMOP_Metric_360, mfem::TMOP_Metric_352, mfem::TMOP_Metric_323, mfem::TMOP_Metric_322, mfem::TMOP_Metric_321, mfem::TMOP_Metric_316, mfem::TMOP_Metric_315, mfem::TMOP_Metric_313, mfem::TMOP_Metric_311, mfem::TMOP_Metric_304, 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::TMOP_Metric_050, mfem::TMOP_Metric_022, mfem::TMOP_Metric_014, mfem::TMOP_Metric_009, mfem::TMOP_Metric_007, mfem::TMOP_Metric_004, 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_WorstCaseUntangleOptimizer_Metric, and mfem::TMOP_Combo_QualityMetric.

virtual void mfem::TMOP_QualityMetric::EvalP ( const DenseMatrix Jpt,
DenseMatrix P 
) const
pure virtual
virtual double mfem::TMOP_QualityMetric::EvalW ( const DenseMatrix Jpt) const
pure virtual
virtual double mfem::TMOP_QualityMetric::EvalWMatrixForm ( const DenseMatrix Jpt) const
inlinevirtual

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

Reimplemented in mfem::TMOP_Metric_360, mfem::TMOP_Metric_323, mfem::TMOP_Metric_322, mfem::TMOP_Metric_321, mfem::TMOP_Metric_316, mfem::TMOP_Metric_304, mfem::TMOP_Metric_303, mfem::TMOP_Metric_302, mfem::TMOP_Metric_301, mfem::TMOP_Metric_058, mfem::TMOP_Metric_002, and mfem::TMOP_Combo_QualityMetric.

Definition at line 47 of file tmop.hpp.

virtual int mfem::TMOP_QualityMetric::Id ( ) const
inlinevirtual
virtual void mfem::TMOP_QualityMetric::SetTargetJacobian ( const DenseMatrix Jtr_)
inlinevirtual

Specify the reference-element -> target-element Jacobian matrix for the point of interest.

The specified Jacobian matrix, Jtr, can be used by metrics that cannot be written just as a function of the target->physical Jacobian matrix, Jpt.

Reimplemented in mfem::TMOP_Combo_QualityMetric.

Definition at line 43 of file tmop.hpp.

void mfem::TMOP_QualityMetric::SetTransformation ( ElementTransformation )
inlineprotected

The method HyperelasticModel::SetTransformation() is hidden for TMOP_QualityMetrics, because it is not used.

Definition at line 31 of file tmop.hpp.

Member Data Documentation

const DenseMatrix* mfem::TMOP_QualityMetric::Jtr
protected

Jacobian of the reference-element to target-element transformation.

Definition at line 26 of file tmop.hpp.


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