MFEM
v4.6.0
Finite element discretization library

Abstract class for local mesh quality metrics in the targetmatrix optimization paradigm (TMOP) by P. Knupp et al. More...
#include <tmop.hpp>
Public Member Functions  
TMOP_QualityMetric ()  
virtual  ~TMOP_QualityMetric () 
virtual void  SetTargetJacobian (const DenseMatrix &Jtr_) 
Specify the referenceelement > targetelement 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 PiolaKirchhoff 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 PiolaKirchhoff 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 DenseMatrix *  Jtr 
Protected Attributes inherited from mfem::HyperelasticModel  
ElementTransformation *  Ttr 
Abstract class for local mesh quality metrics in the targetmatrix optimization paradigm (TMOP) by P. Knupp et al.

inlinevirtual 

pure virtual 
Evaluate the derivative of the 1st PiolaKirchhoff stress tensor and assemble its contribution to the local gradient matrix 'A'.
[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.
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_318, 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.

pure virtual 
Evaluate the 1st PiolaKirchhoff stress tensor, P = P(Jpt).
[in]  Jpt  Represents the target>physical transformation Jacobian matrix. 
[out]  P  The evaluated 1st PiolaKirchhoff stress tensor. 
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_318, 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.

pure virtual 
Evaluate the strain energy density function, W = W(Jpt), by using the 2D or 3D matrix invariants, see linalg/invariants.hpp.
[in]  Jpt  Represents the target>physical transformation Jacobian matrix. 
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_318, 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.

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_318, mfem::TMOP_Metric_316, mfem::TMOP_Metric_304, mfem::TMOP_Metric_303, mfem::TMOP_Metric_302, mfem::TMOP_Metric_301, mfem::TMOP_Metric_077, mfem::TMOP_Metric_058, mfem::TMOP_Metric_056, mfem::TMOP_Metric_050, mfem::TMOP_Metric_002, and mfem::TMOP_Combo_QualityMetric.

inlinevirtual 
Return the metric ID.
Reimplemented in mfem::TMOP_Metric_360, mfem::TMOP_Metric_347, mfem::TMOP_Metric_338, mfem::TMOP_Metric_334, mfem::TMOP_Metric_332, mfem::TMOP_Metric_328, mfem::TMOP_Metric_323, mfem::TMOP_Metric_322, mfem::TMOP_Metric_321, mfem::TMOP_Metric_318, mfem::TMOP_Metric_315, mfem::TMOP_Metric_313, mfem::TMOP_Metric_304, mfem::TMOP_Metric_303, mfem::TMOP_Metric_302, mfem::TMOP_Metric_094, mfem::TMOP_Metric_090, mfem::TMOP_Metric_080, mfem::TMOP_Metric_077, mfem::TMOP_Metric_066, mfem::TMOP_Metric_007, mfem::TMOP_Metric_004, mfem::TMOP_Metric_002, and mfem::TMOP_Metric_001.

inlinevirtual 
Specify the referenceelement > targetelement 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.

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

protected 