MFEM
v4.4.0
Finite element discretization library
|
A specialized ElementTransformation class representing a face and its two neighboring elements. More...
#include <eltrans.hpp>
Public Types | |
enum | ConfigMasks { HAVE_ELEM1 = 1, HAVE_ELEM2 = 2, HAVE_LOC1 = 4, HAVE_LOC2 = 8, HAVE_FACE = 16 } |
Public Types inherited from mfem::ElementTransformation | |
enum | { ELEMENT = 1, BDR_ELEMENT = 2, EDGE = 3, FACE = 4, BDR_FACE = 5 } |
Public Member Functions | |
FaceElementTransformations () | |
void | SetGeometryType (Geometry::Type g) |
Method to set the geometry type of the face. More... | |
int | GetConfigurationMask () const |
Return the mask defining the configuration state. More... | |
void | SetIntPoint (const IntegrationPoint *face_ip) |
Set the integration point in the Face and the two neighboring elements, if present. More... | |
void | SetAllIntPoints (const IntegrationPoint *face_ip) |
Set the integration point in the Face and the two neighboring elements, if present. More... | |
const IntegrationPoint & | GetElement1IntPoint () |
Get a const reference to the integration point in neighboring element 1 corresponding to the currently set integration point on the face. More... | |
const IntegrationPoint & | GetElement2IntPoint () |
Get a const reference to the integration point in neighboring element 2 corresponding to the currently set integration point on the face. More... | |
virtual void | Transform (const IntegrationPoint &, Vector &) |
Transform integration point from reference coordinates to physical coordinates and store them in the vector. More... | |
virtual void | Transform (const IntegrationRule &, DenseMatrix &) |
Transform all the integration points from the integration rule from reference coordinates to physical coordinates and store them as column vectors in the matrix. More... | |
virtual void | Transform (const DenseMatrix &matrix, DenseMatrix &result) |
Transform all the integration points from the column vectors of matrix from reference coordinates to physical coordinates and store them as column vectors in result. More... | |
ElementTransformation & | GetElement1Transformation () |
ElementTransformation & | GetElement2Transformation () |
IntegrationPointTransformation & | GetIntPoint1Transformation () |
IntegrationPointTransformation & | GetIntPoint2Transformation () |
double | CheckConsistency (int print_level=0, std::ostream &out=mfem::out) |
Check for self-consistency: compares the result of mapping the reference face vertices to physical coordinates using the three transformations: face, element 1, and element 2. More... | |
Public Member Functions inherited from mfem::IsoparametricTransformation | |
IsoparametricTransformation () | |
void | SetFE (const FiniteElement *FE) |
Set the element that will be used to compute the transformations. More... | |
const FiniteElement * | GetFE () const |
Get the current element used to compute the transformations. More... | |
void | SetPointMat (const DenseMatrix &pm) |
Set the underlying point matrix describing the transformation. More... | |
const DenseMatrix & | GetPointMat () const |
Return the stored point matrix. More... | |
DenseMatrix & | GetPointMat () |
Write access to the stored point matrix. Use with caution. More... | |
void | SetIdentityTransformation (Geometry::Type GeomType) |
Set the FiniteElement Geometry for the reference elements being used. More... | |
virtual int | Order () const |
Return the order of the current element we are using for the transformation. More... | |
virtual int | OrderJ () const |
Return the order of the elements of the Jacobian of the transformation. More... | |
virtual int | OrderW () const |
Return the order of the determinant of the Jacobian (weight) of the transformation. More... | |
virtual int | OrderGrad (const FiniteElement *fe) const |
Return the order of \( adj(J)^T \nabla fi \). More... | |
virtual int | GetSpaceDim () const |
Get the dimension of the target (physical) space. More... | |
virtual int | TransformBack (const Vector &v, IntegrationPoint &ip) |
Transform a point pt from physical space to a point ip in reference space. More... | |
virtual | ~IsoparametricTransformation () |
MFEM_DEPRECATED void | FinalizeTransformation () |
Public Member Functions inherited from mfem::ElementTransformation | |
ElementTransformation () | |
void | Reset () |
Force the reevaluation of the Jacobian in the next call. More... | |
void | SetIntPoint (const IntegrationPoint *ip) |
Set the integration point ip that weights and Jacobians will be evaluated at. More... | |
const IntegrationPoint & | GetIntPoint () |
Get a const reference to the currently set integration point. This will return NULL if no integration point is set. More... | |
const DenseMatrix & | Jacobian () |
Return the Jacobian matrix of the transformation at the currently set IntegrationPoint, using the method SetIntPoint(). More... | |
const DenseMatrix & | Hessian () |
Return the Hessian matrix of the transformation at the currently set IntegrationPoint, using the method SetIntPoint(). More... | |
double | Weight () |
Return the weight of the Jacobian matrix of the transformation at the currently set IntegrationPoint. The Weight evaluates to \( \sqrt{\lvert J^T J \rvert} \). More... | |
const DenseMatrix & | AdjugateJacobian () |
Return the adjugate of the Jacobian matrix of the transformation at the currently set IntegrationPoint. More... | |
const DenseMatrix & | TransposeAdjugateJacobian () |
Return the transpose of the adjugate of the Jacobian matrix of the transformation at the currently set IntegrationPoint. More... | |
const DenseMatrix & | InverseJacobian () |
Return the inverse of the Jacobian matrix of the transformation at the currently set IntegrationPoint. More... | |
Geometry::Type | GetGeometryType () const |
Return the Geometry::Type of the reference element. More... | |
int | GetDimension () const |
Return the topological dimension of the reference element. More... | |
virtual | ~ElementTransformation () |
Public Attributes | |
int | Elem1No |
int | Elem2No |
Geometry::Type & | FaceGeom |
ElementTransformation * | Elem1 |
ElementTransformation * | Elem2 |
ElementTransformation * | Face |
IntegrationPointTransformation | Loc1 |
IntegrationPointTransformation | Loc2 |
Public Attributes inherited from mfem::ElementTransformation | |
int | Attribute |
int | ElementNo |
int | ElementType |
class Mesh * | mesh |
The Mesh object containing the element. More... | |
Protected Member Functions | |
void | SetConfigurationMask (int m) |
Set the mask indicating which portions of the object have been setup. More... | |
Protected Member Functions inherited from mfem::ElementTransformation | |
double | EvalWeight () |
const DenseMatrix & | EvalAdjugateJ () |
const DenseMatrix & | EvalTransAdjugateJ () |
const DenseMatrix & | EvalInverseJ () |
Friends | |
class | Mesh |
class | ParMesh |
Additional Inherited Members | |
Protected Types inherited from mfem::ElementTransformation | |
enum | StateMasks { JACOBIAN_MASK = 1, WEIGHT_MASK = 2, ADJUGATE_MASK = 4, INVERSE_MASK = 8, HESSIAN_MASK = 16, TRANS_ADJUGATE_MASK = 32 } |
Protected Attributes inherited from mfem::ElementTransformation | |
const IntegrationPoint * | IntPoint |
DenseMatrix | dFdx |
DenseMatrix | adjJ |
DenseMatrix | invJ |
DenseMatrix | d2Fdx2 |
DenseMatrix | adjJT |
double | Wght |
int | EvalState |
Geometry::Type | geom |
A specialized ElementTransformation class representing a face and its two neighboring elements.
This class can be used as a container for the element transformation data needed for integrating discontinuous fields on element interfaces in a Discontinuous Galerkin (DG) context.
The secondary purpose of this class is to enable the GridFunction::GetValue function, and various related functions, to properly evaluate fields with limited continuity on boundary elements.
Definition at line 480 of file eltrans.hpp.
Enumerator | |
---|---|
HAVE_ELEM1 |
Element on side 1 is configured. |
HAVE_ELEM2 |
Element on side 2 is configured. |
HAVE_LOC1 |
Point transformation for side 1 is configured. |
HAVE_LOC2 |
Point transformation for side 2 is configured. |
HAVE_FACE |
Face transformation is configured. |
Definition at line 511 of file eltrans.hpp.
|
inline |
Definition at line 526 of file eltrans.hpp.
double mfem::FaceElementTransformations::CheckConsistency | ( | int | print_level = 0 , |
std::ostream & | out = mfem::out |
||
) |
Check for self-consistency: compares the result of mapping the reference face vertices to physical coordinates using the three transformations: face, element 1, and element 2.
[in] | print_level | If set to a positive number, print the physical coordinates of the face vertices computed through all available transformations: face, element 1, and/or element 2. |
[in,out] | out | The output stream to use for printing. |
Definition at line 646 of file eltrans.cpp.
|
inline |
Return the mask defining the configuration state.
The mask value indicates which portions of FaceElementTransformations object have been configured.
mask & 1: Elem1 is configured mask & 2: Elem2 is configured mask & 4: Loc1 is configured mask & 8: Loc2 is configured mask & 16: The Face transformation itself is configured
Definition at line 549 of file eltrans.hpp.
|
inline |
Get a const reference to the integration point in neighboring element 1 corresponding to the currently set integration point on the face.
This IntegrationPoint object will only contain up-to-date data if SetIntPoint or SetAllIntPoints has been called with the latest integration point for the face and the appropriate point transformation has been configured.
Definition at line 577 of file eltrans.hpp.
ElementTransformation & mfem::FaceElementTransformations::GetElement1Transformation | ( | ) |
Definition at line 591 of file eltrans.cpp.
|
inline |
Get a const reference to the integration point in neighboring element 2 corresponding to the currently set integration point on the face.
This IntegrationPoint object will only contain up-to-date data if SetIntPoint or SetAllIntPoints has been called with the latest integration point for the face and the appropriate point transformation has been configured.
Definition at line 587 of file eltrans.hpp.
ElementTransformation & mfem::FaceElementTransformations::GetElement2Transformation | ( | ) |
Definition at line 599 of file eltrans.cpp.
IntegrationPointTransformation & mfem::FaceElementTransformations::GetIntPoint1Transformation | ( | ) |
Definition at line 607 of file eltrans.cpp.
IntegrationPointTransformation & mfem::FaceElementTransformations::GetIntPoint2Transformation | ( | ) |
Definition at line 615 of file eltrans.cpp.
|
inline |
Set the integration point in the Face and the two neighboring elements, if present.
This is a more expressive member function name than SetIntPoint, which in this special case, does the same thing. This function can be used for greater code clarity.
Definition at line 566 of file eltrans.hpp.
|
inlineprotected |
Set the mask indicating which portions of the object have been setup.
The argument m is a bitmask used in Mesh::GetFaceElementTransformations to indicate which portions of the FaceElementTransformations object have been configured.
mask & 1: Elem1 is configured mask & 2: Elem2 is configured mask & 4: Loc1 is configured mask & 8: Loc2 is configured mask & 16: The Face transformation itself is configured
Definition at line 507 of file eltrans.hpp.
|
inline |
Method to set the geometry type of the face.
Definition at line 536 of file eltrans.hpp.
void mfem::FaceElementTransformations::SetIntPoint | ( | const IntegrationPoint * | face_ip | ) |
Set the integration point in the Face and the two neighboring elements, if present.
The point face_ip must be in the reference coordinate system of the face.
Definition at line 568 of file eltrans.cpp.
|
virtual |
Transform integration point from reference coordinates to physical coordinates and store them in the vector.
Reimplemented from mfem::IsoparametricTransformation.
Definition at line 622 of file eltrans.cpp.
|
virtual |
Transform all the integration points from the integration rule from reference coordinates to physical coordinates and store them as column vectors in the matrix.
Reimplemented from mfem::IsoparametricTransformation.
Definition at line 630 of file eltrans.cpp.
|
virtual |
Transform all the integration points from the column vectors of matrix from reference coordinates to physical coordinates and store them as column vectors in result.
Reimplemented from mfem::IsoparametricTransformation.
Definition at line 638 of file eltrans.cpp.
|
friend |
Definition at line 491 of file eltrans.hpp.
|
friend |
Definition at line 493 of file eltrans.hpp.
ElementTransformation* mfem::FaceElementTransformations::Elem1 |
Definition at line 522 of file eltrans.hpp.
int mfem::FaceElementTransformations::Elem1No |
Definition at line 520 of file eltrans.hpp.
ElementTransformation * mfem::FaceElementTransformations::Elem2 |
Definition at line 522 of file eltrans.hpp.
int mfem::FaceElementTransformations::Elem2No |
Definition at line 520 of file eltrans.hpp.
ElementTransformation* mfem::FaceElementTransformations::Face |
Definition at line 523 of file eltrans.hpp.
Geometry::Type& mfem::FaceElementTransformations::FaceGeom |
Definition at line 521 of file eltrans.hpp.
IntegrationPointTransformation mfem::FaceElementTransformations::Loc1 |
Definition at line 524 of file eltrans.hpp.
IntegrationPointTransformation mfem::FaceElementTransformations::Loc2 |
Definition at line 524 of file eltrans.hpp.