MFEM v4.7.0
Finite element discretization library
|
Abstract class for local mesh quality metrics in the target-matrix 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 reference-element -> target-element Jacobian matrix for the point of interest. | |
virtual real_t | EvalWMatrixForm (const DenseMatrix &Jpt) const |
Evaluates the metric in matrix form (opposed to invariant form). Used for validating the invariant evaluations. | |
virtual real_t | 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. | |
virtual void | EvalP (const DenseMatrix &Jpt, DenseMatrix &P) const =0 |
Evaluate the 1st Piola-Kirchhoff stress tensor, P = P(Jpt). | |
virtual void | AssembleH (const DenseMatrix &Jpt, const DenseMatrix &DS, const real_t 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'. | |
virtual int | Id () const |
Return the metric ID. | |
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. | |
Protected Attributes | |
const DenseMatrix * | Jtr |
Protected Attributes inherited from mfem::HyperelasticModel | |
ElementTransformation * | Ttr |
Abstract class for local mesh quality metrics in the target-matrix optimization paradigm (TMOP) by P. Knupp et al.
|
inlinevirtual |
|
pure virtual |
Evaluate the derivative of the 1st Piola-Kirchhoff 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_011, mfem::TMOP_AMetric_014a, mfem::TMOP_AMetric_036, mfem::TMOP_AMetric_107a, mfem::TMOP_Combo_QualityMetric, mfem::TMOP_Metric_001, mfem::TMOP_Metric_002, mfem::TMOP_Metric_004, mfem::TMOP_Metric_007, mfem::TMOP_Metric_009, mfem::TMOP_Metric_014, mfem::TMOP_Metric_022, mfem::TMOP_Metric_050, mfem::TMOP_Metric_055, mfem::TMOP_Metric_056, mfem::TMOP_Metric_058, mfem::TMOP_Metric_077, mfem::TMOP_Metric_085, mfem::TMOP_Metric_098, mfem::TMOP_Metric_211, mfem::TMOP_Metric_252, mfem::TMOP_Metric_301, mfem::TMOP_Metric_302, mfem::TMOP_Metric_303, mfem::TMOP_Metric_304, mfem::TMOP_Metric_311, mfem::TMOP_Metric_313, mfem::TMOP_Metric_315, mfem::TMOP_Metric_316, mfem::TMOP_Metric_318, mfem::TMOP_Metric_321, mfem::TMOP_Metric_322, mfem::TMOP_Metric_323, mfem::TMOP_Metric_352, mfem::TMOP_Metric_360, mfem::TMOP_Metric_aspratio2D, mfem::TMOP_Metric_aspratio3D, mfem::TMOP_Metric_skew2D, mfem::TMOP_Metric_skew3D, and mfem::TMOP_WorstCaseUntangleOptimizer_Metric.
|
pure virtual |
Evaluate the 1st Piola-Kirchhoff stress tensor, P = P(Jpt).
[in] | Jpt | Represents the target->physical transformation Jacobian matrix. |
[out] | P | The evaluated 1st Piola-Kirchhoff stress tensor. |
Implements mfem::HyperelasticModel.
Implemented in mfem::TMOP_AMetric_011, mfem::TMOP_AMetric_014a, mfem::TMOP_AMetric_036, mfem::TMOP_AMetric_107a, mfem::TMOP_Combo_QualityMetric, mfem::TMOP_Metric_001, mfem::TMOP_Metric_002, mfem::TMOP_Metric_004, mfem::TMOP_Metric_007, mfem::TMOP_Metric_009, mfem::TMOP_Metric_014, mfem::TMOP_Metric_022, mfem::TMOP_Metric_050, mfem::TMOP_Metric_055, mfem::TMOP_Metric_056, mfem::TMOP_Metric_058, mfem::TMOP_Metric_077, mfem::TMOP_Metric_085, mfem::TMOP_Metric_098, mfem::TMOP_Metric_211, mfem::TMOP_Metric_252, mfem::TMOP_Metric_301, mfem::TMOP_Metric_302, mfem::TMOP_Metric_303, mfem::TMOP_Metric_304, mfem::TMOP_Metric_311, mfem::TMOP_Metric_313, mfem::TMOP_Metric_315, mfem::TMOP_Metric_316, mfem::TMOP_Metric_318, mfem::TMOP_Metric_321, mfem::TMOP_Metric_322, mfem::TMOP_Metric_323, mfem::TMOP_Metric_352, mfem::TMOP_Metric_360, mfem::TMOP_Metric_aspratio2D, mfem::TMOP_Metric_aspratio3D, mfem::TMOP_Metric_skew2D, mfem::TMOP_Metric_skew3D, and mfem::TMOP_WorstCaseUntangleOptimizer_Metric.
|
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_011, mfem::TMOP_AMetric_014a, mfem::TMOP_AMetric_036, mfem::TMOP_AMetric_107a, mfem::TMOP_Combo_QualityMetric, mfem::TMOP_Metric_001, mfem::TMOP_Metric_002, mfem::TMOP_Metric_004, mfem::TMOP_Metric_007, mfem::TMOP_Metric_009, mfem::TMOP_Metric_014, mfem::TMOP_Metric_022, mfem::TMOP_Metric_050, mfem::TMOP_Metric_055, mfem::TMOP_Metric_056, mfem::TMOP_Metric_058, mfem::TMOP_Metric_077, mfem::TMOP_Metric_085, mfem::TMOP_Metric_098, mfem::TMOP_Metric_211, mfem::TMOP_Metric_252, mfem::TMOP_Metric_301, mfem::TMOP_Metric_302, mfem::TMOP_Metric_303, mfem::TMOP_Metric_304, mfem::TMOP_Metric_311, mfem::TMOP_Metric_313, mfem::TMOP_Metric_315, mfem::TMOP_Metric_316, mfem::TMOP_Metric_318, mfem::TMOP_Metric_321, mfem::TMOP_Metric_322, mfem::TMOP_Metric_323, mfem::TMOP_Metric_352, mfem::TMOP_Metric_360, mfem::TMOP_Metric_aspratio2D, mfem::TMOP_Metric_aspratio3D, mfem::TMOP_Metric_skew2D, mfem::TMOP_Metric_skew3D, and mfem::TMOP_WorstCaseUntangleOptimizer_Metric.
|
inlinevirtual |
Evaluates the metric in matrix form (opposed to invariant form). Used for validating the invariant evaluations.
Reimplemented in mfem::TMOP_Combo_QualityMetric, mfem::TMOP_Metric_002, mfem::TMOP_Metric_014, mfem::TMOP_Metric_050, mfem::TMOP_Metric_056, mfem::TMOP_Metric_058, mfem::TMOP_Metric_077, mfem::TMOP_Metric_301, mfem::TMOP_Metric_302, mfem::TMOP_Metric_303, mfem::TMOP_Metric_304, mfem::TMOP_Metric_316, mfem::TMOP_Metric_318, mfem::TMOP_Metric_321, mfem::TMOP_Metric_322, mfem::TMOP_Metric_323, and mfem::TMOP_Metric_360.
|
inlinevirtual |
Return the metric ID.
Reimplemented in mfem::TMOP_Metric_001, mfem::TMOP_Metric_002, mfem::TMOP_Metric_004, mfem::TMOP_Metric_007, mfem::TMOP_Metric_066, mfem::TMOP_Metric_077, mfem::TMOP_Metric_080, mfem::TMOP_Metric_090, mfem::TMOP_Metric_094, mfem::TMOP_Metric_302, mfem::TMOP_Metric_303, mfem::TMOP_Metric_304, mfem::TMOP_Metric_313, mfem::TMOP_Metric_315, mfem::TMOP_Metric_318, mfem::TMOP_Metric_321, mfem::TMOP_Metric_322, mfem::TMOP_Metric_323, mfem::TMOP_Metric_328, mfem::TMOP_Metric_332, mfem::TMOP_Metric_334, mfem::TMOP_Metric_338, mfem::TMOP_Metric_347, and mfem::TMOP_Metric_360.
|
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.
|
inlineprotected |
The method HyperelasticModel::SetTransformation() is hidden for TMOP_QualityMetrics, because it is not used.
|
protected |