MFEM
v3.3
Finite element discretization library
|
#include <fe.hpp>
Inherits mfem::ScalarFiniteElement.
Inherited by mfem::BiCubic2DFiniteElement, mfem::BiLinear2DFiniteElement, mfem::BiQuad2DFiniteElement, mfem::CrouzeixRaviartFiniteElement, mfem::CrouzeixRaviartQuadFiniteElement, mfem::Cubic1DFiniteElement, mfem::Cubic2DFiniteElement, mfem::Cubic3DFiniteElement, mfem::GaussBiLinear2DFiniteElement, mfem::GaussBiQuad2DFiniteElement, mfem::GaussLinear2DFiniteElement, mfem::GaussQuad2DFiniteElement, mfem::H1_HexahedronElement, mfem::H1_QuadrilateralElement, mfem::H1_SegmentElement, mfem::H1_TetrahedronElement, mfem::H1_TriangleElement, mfem::L2_HexahedronElement, mfem::L2_QuadrilateralElement, mfem::L2_SegmentElement, mfem::L2_TetrahedronElement, mfem::L2_TriangleElement, mfem::Lagrange1DFiniteElement, mfem::LagrangeHexFiniteElement, mfem::Linear1DFiniteElement, mfem::Linear2DFiniteElement, mfem::Linear3DFiniteElement, mfem::P0HexFiniteElement, mfem::P0QuadFiniteElement, mfem::P0SegmentFiniteElement, mfem::P0TetFiniteElement, mfem::P0TriangleFiniteElement, mfem::P1OnQuadFiniteElement, mfem::P1SegmentFiniteElement, mfem::P1TetNonConfFiniteElement, mfem::P2SegmentFiniteElement, mfem::PointFiniteElement, mfem::Quad1DFiniteElement, mfem::Quad2DFiniteElement, mfem::Quadratic3DFiniteElement, mfem::RefinedBiLinear2DFiniteElement, mfem::RefinedLinear1DFiniteElement, mfem::RefinedLinear2DFiniteElement, mfem::RefinedLinear3DFiniteElement, mfem::RefinedTriLinear3DFiniteElement, mfem::RotTriLinearHexFiniteElement, and mfem::TriLinear3DFiniteElement.
Public Member Functions | |
NodalFiniteElement (int D, int G, int Do, int O, int F=FunctionSpace::Pk) | |
NodalFiniteElement (int D, int G, int Do, int O, int F=FunctionSpace::Pk) | |
virtual void | GetLocalInterpolation (ElementTransformation &Trans, DenseMatrix &I) const |
virtual void | Project (Coefficient &coeff, ElementTransformation &Trans, Vector &dofs) const |
virtual void | Project (VectorCoefficient &vc, ElementTransformation &Trans, Vector &dofs) const |
virtual void | Project (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
virtual void | ProjectGrad (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &grad) const |
virtual void | ProjectDiv (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &div) const |
Public Member Functions inherited from mfem::ScalarFiniteElement | |
ScalarFiniteElement (int D, int G, int Do, int O, int F=FunctionSpace::Pk) | |
void | SetMapType (int M) |
Public Member Functions inherited from mfem::FiniteElement | |
FiniteElement (int D, int G, int Do, int O, int F=FunctionSpace::Pk) | |
int | GetDim () const |
Returns the reference space dimension for the finite element. More... | |
int | GetGeomType () const |
Returns the Geometry::Type of the reference element. More... | |
int | GetDof () const |
Returns the number of degrees of freedom in the finite element. More... | |
int | GetOrder () const |
Returns the order of the finite element. More... | |
int | Space () const |
Returns the type of space on each element. More... | |
int | GetRangeType () const |
int | GetDerivRangeType () const |
int | GetMapType () const |
int | GetDerivType () const |
int | GetDerivMapType () const |
virtual void | CalcShape (const IntegrationPoint &ip, Vector &shape) const =0 |
Evaluate the values of all shape functions of a scalar finite element in reference space at the given point ip. More... | |
void | CalcPhysShape (ElementTransformation &Trans, Vector &shape) const |
Evaluate the values of all shape functions of a scalar finite element in physical space at the point described by Trans. More... | |
virtual void | CalcDShape (const IntegrationPoint &ip, DenseMatrix &dshape) const =0 |
Evaluate the gradients of all shape functions of a scalar finite element in reference space at the given point ip. More... | |
void | CalcPhysDShape (ElementTransformation &Trans, DenseMatrix &dshape) const |
Evaluate the gradients of all shape functions of a scalar finite element in physical space at the point described by Trans. More... | |
const IntegrationRule & | GetNodes () const |
virtual void | CalcVShape (const IntegrationPoint &ip, DenseMatrix &shape) const |
Evaluate the values of all shape functions of a vector finite element in reference space at the given point ip. More... | |
virtual void | CalcVShape (ElementTransformation &Trans, DenseMatrix &shape) const |
Evaluate the values of all shape functions of a vector finite element in physical space at the point described by Trans. More... | |
void | CalcPhysVShape (ElementTransformation &Trans, DenseMatrix &shape) const |
Equivalent to the CalcVShape() method with the same arguments. More... | |
virtual void | CalcDivShape (const IntegrationPoint &ip, Vector &divshape) const |
Evaluate the divergence of all shape functions of a vector finite element in reference space at the given point ip. More... | |
void | CalcPhysDivShape (ElementTransformation &Trans, Vector &divshape) const |
Evaluate the divergence of all shape functions of a vector finite element in physical space at the point described by Trans. More... | |
virtual void | CalcCurlShape (const IntegrationPoint &ip, DenseMatrix &curl_shape) const |
Evaluate the curl of all shape functions of a vector finite element in reference space at the given point ip. More... | |
void | CalcPhysCurlShape (ElementTransformation &Trans, DenseMatrix &curl_shape) const |
Evaluate the curl of all shape functions of a vector finite element in physical space at the point described by Trans. More... | |
virtual void | GetFaceDofs (int face, int **dofs, int *ndofs) const |
virtual void | CalcHessian (const IntegrationPoint &ip, DenseMatrix &h) const |
virtual void | ProjectDelta (int vertex, Vector &dofs) const |
virtual void | ProjectCurl (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
virtual | ~FiniteElement () |
Protected Member Functions | |
void | NodalLocalInterpolation (ElementTransformation &Trans, DenseMatrix &I, const NodalFiniteElement &fine_fe) const |
void | ProjectCurl_2D (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
Protected Attributes | |
Vector | c_shape |
Protected Attributes inherited from mfem::FiniteElement | |
int | Dim |
Dimension of reference space. More... | |
int | GeomType |
Geometry::Type of the reference element. More... | |
int | Dof |
Number of degrees of freedom. More... | |
int | Order |
Order/degree of the shape functions. More... | |
int | FuncSpace |
int | RangeType |
int | MapType |
int | DerivType |
int | DerivRangeType |
int | DerivMapType |
IntegrationRule | Nodes |
DenseMatrix | vshape |
Additional Inherited Members | |
Public Types inherited from mfem::FiniteElement | |
enum | { SCALAR, VECTOR } |
Enumeration for RangeType and DerivRangeType. More... | |
enum | { VALUE, INTEGRAL, H_DIV, H_CURL } |
Enumeration for MapType: defines how reference functions are mapped to physical space. More... | |
enum | { NONE, GRAD, DIV, CURL } |
Enumeration for DerivType: defines which derivative method is implemented. More... | |
Static Public Member Functions inherited from mfem::FiniteElement | |
static int | VerifyClosed (int pt_type) |
static int | VerifyOpen (int pt_type) |
|
inline |
|
inline |
|
inlinevirtual |
Return the local interpolation matrix I (Dof x Dof) where the fine element is the image of the base geometry under the given transformation.
Reimplemented from mfem::FiniteElement.
|
protected |
|
virtual |
Given a coefficient and a transformation, compute its projection (approximation) in the local finite dimensional space in terms of the degrees of freedom.
Reimplemented from mfem::FiniteElement.
|
virtual |
Given a vector coefficient and a transformation, compute its projection (approximation) in the local finite dimensional space in terms of the degrees of freedom. (VectorFiniteElements)
Reimplemented from mfem::FiniteElement.
|
virtual |
Compute the embedding/projection matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the projection depends on it.
Reimplemented from mfem::FiniteElement.
|
protected |
|
virtual |
Compute the discrete divergence matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the matrix depends on it.
Reimplemented from mfem::FiniteElement.
|
virtual |
Compute the discrete gradient matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the matrix depends on it.
Reimplemented from mfem::FiniteElement.