MFEM
v4.6.0
Finite element discretization library
|
#include <doftrans.hpp>
Public Member Functions | |
void | SetFaceOrientations (const Array< int > &face_orientation) |
Configure the transformation using face orientations for the current element. More... | |
const Array< int > & | GetFaceOrientations () const |
void | TransformPrimal (double *v) const |
void | TransformPrimal (Vector &v) const |
void | TransformPrimalCols (DenseMatrix &V) const |
Transform groups of DoFs stored as dense matrices. More... | |
void | InvTransformPrimal (double *v) const |
void | InvTransformPrimal (Vector &v) const |
void | TransformDual (double *v) const |
void | TransformDual (Vector &v) const |
void | InvTransformDual (double *v) const |
void | InvTransformDual (Vector &v) const |
void | TransformDual (DenseMatrix &V) const |
void | TransformDualRows (DenseMatrix &V) const |
Transform rows of a dense matrix containing dual DoFs. More... | |
void | TransformDualCols (DenseMatrix &V) const |
Transform columns of a dense matrix containing dual DoFs. More... | |
virtual | ~DofTransformation ()=default |
virtual void | TransformPrimal (const Array< int > &face_orientation, double *v) const=0 |
void | TransformPrimal (const Array< int > &face_orientation, Vector &v) const |
virtual void | InvTransformPrimal (const Array< int > &face_orientation, double *v) const=0 |
void | InvTransformPrimal (const Array< int > &face_orientation, Vector &v) const |
virtual void | TransformDual (const Array< int > &face_orientation, double *v) const=0 |
void | TransformDual (const Array< int > &face_orientation, Vector &v) const |
virtual void | InvTransformDual (const Array< int > &face_orientation, double *v) const=0 |
void | InvTransformDual (const Array< int > &face_orientation, Vector &v) const |
Public Member Functions inherited from mfem::StatelessDofTransformation | |
int | Size () const |
int | Height () const |
int | NumRows () const |
int | Width () const |
int | NumCols () const |
virtual void | TransformPrimal (const Array< int > &face_orientation, double *v) const =0 |
void | TransformPrimal (const Array< int > &face_orientation, Vector &v) const |
virtual void | InvTransformPrimal (const Array< int > &face_orientation, double *v) const =0 |
void | InvTransformPrimal (const Array< int > &face_orientation, Vector &v) const |
virtual void | TransformDual (const Array< int > &face_orientation, double *v) const =0 |
void | TransformDual (const Array< int > &face_orientation, Vector &v) const |
virtual void | InvTransformDual (const Array< int > &face_orientation, double *v) const =0 |
void | InvTransformDual (const Array< int > &face_orientation, Vector &v) const |
Protected Member Functions | |
DofTransformation (int size) | |
Protected Member Functions inherited from mfem::StatelessDofTransformation | |
StatelessDofTransformation (int size) | |
Protected Attributes | |
Array< int > | Fo |
Protected Attributes inherited from mfem::StatelessDofTransformation | |
int | size_ |
The DofTransformation class is an extension of the StatelessDofTransformation which stores the face orientations used to select the necessary transformations which allows it to offer a collection of convenience methods.
DofTransformation objects are provided by the FiniteElementSpace which has access to the mesh and can therefore provide the face orientations. This is convenient when working with GridFunction, LinearForm, or BilinearForm objects or their parallel counterparts.
StatelessDofTransformation objects are provided by FiniteElement or FiniteElementCollection objects which do not have access to face orientation information. This can be useful in non-standard contexts such as transferring finite element degrees of freedom between different meshes. For examples of its use see the TransferMap used by the SubMesh class.
Definition at line 136 of file doftrans.hpp.
|
inlineprotected |
Definition at line 141 of file doftrans.hpp.
|
virtualdefault |
|
inline |
Definition at line 152 of file doftrans.hpp.
virtual void mfem::StatelessDofTransformation::InvTransformDual |
Inverse Transform dual DoFs
|
inline |
Definition at line 115 of file doftrans.hpp.
|
inline |
Inverse Transform dual DoFs
Definition at line 195 of file doftrans.hpp.
|
inline |
Definition at line 197 of file doftrans.hpp.
virtual void mfem::StatelessDofTransformation::InvTransformPrimal |
Inverse transform local DoFs. Used to transform DoFs from a global vector back to their element-local form. For example, this must be used to transform the vector obtained using GridFunction::GetSubVector before it can be used to compute a local interpolation.
|
inline |
Definition at line 100 of file doftrans.hpp.
|
inline |
Inverse transform local DoFs. Used to transform DoFs from a global vector back to their element-local form. For example, this must be used to transform the vector obtained using GridFunction::GetSubVector before it can be used to compute a local interpolation.
Definition at line 182 of file doftrans.hpp.
|
inline |
Definition at line 184 of file doftrans.hpp.
|
inline |
Configure the transformation using face orientations for the current element.
The face_orientation array can be obtained from Mesh::GetElementFaces.
Definition at line 149 of file doftrans.hpp.
virtual void mfem::StatelessDofTransformation::TransformDual |
Transform dual DoFs as computed by a LinearFormIntegrator before summing into a LinearForm object.
|
inline |
Definition at line 108 of file doftrans.hpp.
|
inline |
Transform dual DoFs as computed by a LinearFormIntegrator before summing into a LinearForm object.
Definition at line 189 of file doftrans.hpp.
|
inline |
Definition at line 191 of file doftrans.hpp.
|
inline |
Transform a matrix of dual DoFs entries as computed by a BilinearFormIntegrator before summing into a BilinearForm object.
Definition at line 202 of file doftrans.hpp.
|
inline |
Transform columns of a dense matrix containing dual DoFs.
Definition at line 221 of file doftrans.hpp.
|
inline |
Transform rows of a dense matrix containing dual DoFs.
Definition at line 209 of file doftrans.hpp.
|
inline |
Definition at line 89 of file doftrans.hpp.
virtual void mfem::StatelessDofTransformation::TransformPrimal |
Transform local DoFs to align with the global DoFs. For example, this transformation can be used to map the local vector computed by FiniteElement::Project() to the transformed vector stored within a GridFunction object.
|
inline |
Transform local DoFs to align with the global DoFs. For example, this transformation can be used to map the local vector computed by FiniteElement::Project() to the transformed vector stored within a GridFunction object.
Definition at line 163 of file doftrans.hpp.
|
inline |
Definition at line 165 of file doftrans.hpp.
|
inline |
Transform groups of DoFs stored as dense matrices.
Definition at line 169 of file doftrans.hpp.
|
protected |
Definition at line 139 of file doftrans.hpp.