12 #ifndef MFEM_FE_COLLECTION 13 #define MFEM_FE_COLLECTION 15 #include "../config/config.hpp" 29 template <Geometry::Type geom>
30 static inline void GetNVE(
int &nv,
int &ne);
32 template <Geometry::Type geom,
typename v_t>
33 static inline void GetEdge(
int &nv, v_t &v,
int &ne,
int &e,
int &eo,
37 typename v_t,
typename e_t,
typename eo_t>
38 static inline void GetFace(
int &nv, v_t &v,
int &ne, e_t &e, eo_t &eo,
73 virtual const char *
Name()
const {
return "Undefined"; }
188 return var_orders[
p]->FiniteElementForGeometry(geom);
212 return var_orders[
p]->DofOrderForOrientation(geom, ori);
269 {
return H1_dof[GeomType]; }
343 if (L2_Elements[GeomType])
345 return L2_Elements[GeomType]->
GetDof();
351 virtual const char *
Name()
const {
return d_name; }
358 return Tr_Elements[GeomType];
385 void InitFaces(
const int p,
const int dim,
const int map_type,
408 {
return RT_dof[GeomType]; }
467 {
return ND_dof[GeomType]; }
512 {
return ND_dof[GeomType]; }
539 {
return RT_dof[GeomType]; }
567 {
return ND_dof[GeomType]; }
599 void InitFaces(
const int p,
const int dim,
const int map_type,
616 {
return RT_dof[GeomType]; }
651 mutable char name[16];
664 ParallelepipedFE->
Reset();
684 virtual const char *
Name()
const {
return name; }
717 virtual const char *
Name()
const {
return "Linear"; }
746 virtual const char *
Name()
const {
return "Quadratic"; }
769 virtual const char *
Name()
const {
return "QuadraticPos"; }
800 virtual const char *
Name()
const {
return "Cubic"; }
823 virtual const char *
Name()
const {
return "CrouzeixRaviart"; }
848 virtual const char *
Name()
const {
return "LinearNonConf3D"; }
873 virtual const char *
Name()
const {
return "RT0_2D"; }
897 virtual const char *
Name()
const {
return "RT1_2D"; }
921 virtual const char *
Name()
const {
return "RT2_2D"; }
945 virtual const char *
Name()
const {
return "Const2D"; }
970 virtual const char *
Name()
const {
return "LinearDiscont2D"; }
994 virtual const char *
Name()
const {
return "GaussLinearDiscont2D"; }
1011 virtual const char *
Name()
const {
return "P1OnQuad"; }
1035 virtual const char *
Name()
const {
return "QuadraticDiscont2D"; }
1053 virtual const char *
Name()
const {
return "QuadraticPosDiscont2D"; }
1076 virtual const char *
Name()
const {
return "GaussQuadraticDiscont2D"; }
1100 virtual const char *
Name()
const {
return "CubicDiscont2D"; }
1126 virtual const char *
Name()
const {
return "Const3D"; }
1152 virtual const char *
Name()
const {
return "LinearDiscont3D"; }
1177 virtual const char *
Name()
const {
return "QuadraticDiscont3D"; }
1203 virtual const char *
Name()
const {
return "RefinedLinear"; }
1229 virtual const char *
Name()
const {
return "ND1_3D"; }
1255 virtual const char *
Name()
const {
return "RT0_3D"; }
1278 virtual const char *
Name()
const {
return "RT1_3D"; }
1295 {
return (GeomType == GeomType_) ? Local_Element : NULL; }
1297 {
return (GeomType == GeomType_) ? Local_Element->
GetDof() : 0; }
1301 virtual const char *
Name()
const {
return d_name; }
Abstract class for all finite elements.
virtual const char * Name() const
A 2D 2nd order Raviart-Thomas vector element on a triangle.
virtual const char * Name() const
virtual int GetContType() const
Arbitrary order non-uniform rational B-splines (NURBS) finite elements.
virtual const char * Name() const
virtual int GetContType() const
H1_Trace_FECollection(const int p, const int dim, const int btype=BasisType::GaussLobatto)
virtual int GetContType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
Piecewise-cubic discontinuous finite elements in 2D. This class is kept only for backward compatibili...
Version of QuadraticDiscont2DFECollection with dofs in the Gaussian points.
virtual const char * Name() const
BiLinear2DFiniteElement QuadrilateralFE
int RT_dof[Geometry::NumGeom]
FiniteElement * ND_Elements[Geometry::NumGeom]
void SubDofOrder(Geometry::Type Geom, int SDim, int Info, Array< int > &dofs) const
Get the local dofs for a given sub-manifold.
virtual int DofForGeometry(Geometry::Type GeomType) const
A 2D 1st order Raviart-Thomas vector element on a square.
FiniteElementCollection * GetTraceCollection() const
virtual int DofForGeometry(Geometry::Type GeomType) const
A 1D constant element on a segment.
A 1D linear element with nodes at 1/3 and 2/3 (trace of RT1)
A 1D quadratic element with nodes at the Gaussian points (trace of RT2)
virtual const char * Name() const
virtual int DofForGeometry(Geometry::Type GeomType) const
int RT_dof[Geometry::NumGeom]
virtual const char * Name() const
GaussQuadraticDiscont2DFECollection()
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual ~NURBSFECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual int GetContType() const
RT_FECollection(const int p, const int dim, const int map_type, const bool signs, const int ob_type=BasisType::GaussLegendre)
A 3D 1st order Nedelec element on a tetrahedron.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const char * Name() const
ErrorMode
How to treat errors in FiniteElementForGeometry() calls.
Linear1DFiniteElement SegmentFE
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
Field is discontinuous across element interfaces.
virtual int DofForGeometry(Geometry::Type GeomType) const
A 3D 1st order Nedelec element on a pyramid.
virtual int GetContType() const =0
virtual int GetContType() const
const FiniteElement * GetFE(Geometry::Type geom, int p) const
Variable order version of FiniteElementForGeometry().
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
QuadraticDiscont3DFECollection()
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
A 2D 3rd order Raviart-Thomas vector element on a square.
Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 1D.
virtual ~L2_FECollection()
LinearNonConf3DFECollection()
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
Normal component of vector field.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
int GetOrder() const
Return the order (polynomial degree) of the FE collection, corresponding to the order/degree returned...
RefinedLinearFECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const =0
int GetClosedBasisType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
Piecewise-(bi/tri)linear continuous finite elements.
virtual int GetContType() const
virtual int GetContType() const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
A 2D quadratic element on triangle with nodes at the vertices and midpoints of the triangle...
virtual const char * Name() const
A 0D point finite element.
Arbitrary order 3D H(curl)-trace finite elements in 2D defined on the interface between mesh elements...
virtual int GetContType() const
A 3D 0th order Raviert-Thomas element on a cube.
virtual const char * Name() const
A 1D quadratic finite element with uniformly spaced nodes.
virtual int GetContType() const
virtual int GetContType() const
Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 2D.
int GetClosedBasisType() const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual ~RT_R2D_FECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
const int base_p
Order as returned by GetOrder().
Second order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility...
void InitFaces(const int p, const int dim, const int map_type, const bool signs)
virtual int GetContType() const
virtual const FiniteElement * TraceFiniteElementForGeometry(Geometry::Type GeomType) const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
A 3D constant element on a tetrahedron.
virtual int DofForGeometry(Geometry::Type GeomType) const
DG_Interface_FECollection(const int p, const int dim, const int map_type=FiniteElement::VALUE, const int ob_type=BasisType::GaussLegendre)
virtual int DofForGeometry(Geometry::Type GeomType) const
RT_R2D_FECollection(const int p, const int dim, const int map_type, const bool signs, const int ob_type=BasisType::GaussLegendre)
A 3D Crouzeix-Raviart element on the tetrahedron.
virtual const char * Name() const
virtual const char * Name() const
A 2D bi-cubic element on a square with uniformly spaces nodes.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
virtual const char * Name() const
Finite element collection on a macro-element.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
A 2D refined bi-linear FE on a square.
Possible basis types. Note that not all elements can use all BasisType(s).
virtual const char * Name() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
QuadraticPosDiscont2DFECollection()
NURBSFECollection(int Order=VariableOrder)
The parameter Order must be either a positive number, for fixed order, or VariableOrder (default)...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const =0
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetRangeType(int dim) const
virtual ~RT_FECollection()
L2_FECollection(const int p, const int dim, const int btype=BasisType::GaussLegendre, const int map_type=FiniteElement::VALUE)
virtual const FiniteElement * FiniteElementForDim(int dim) const
Returns the first non-NULL FiniteElement for the given dimension.
virtual FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
Piecewise-(bi)cubic continuous finite elements.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
Class for finite elements with basis functions that return scalar values.
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
FiniteElementCollection * GetTraceCollection() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
A 2D bi-linear element on a square with nodes at the "Gaussian" points.
A 1D refined linear element.
int H1_dof[Geometry::NumGeom]
A 2D refined linear element on a triangle.
double f(const Vector &xvec)
A 2D refined linear element on a tetrahedron.
static void GetFace(int &nv, v_t &v, int &ne, e_t &e, eo_t &eo, int &nf, int &f, Geometry::Type &fg, int &fo, const int face_info)
const int * GetDofOrdering(Geometry::Type geom, int p, int ori) const
Variable order version of DofOrderForOrientation().
FiniteElement * RT_Elements[Geometry::NumGeom]
virtual const int * DofOrderForOrientation(Geometry::Type GeomType_, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
A 2D constant element on a triangle.
static void GetNVE(int &nv, int &ne)
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
FiniteElement * ND_Elements[Geometry::NumGeom]
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int GetDerivType(int dim) const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
A linear element defined on a triangular prism.
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
Piecewise-linear discontinuous finite elements in 2D. This class is kept only for backward compatibil...
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
FiniteElement * ND_Elements[Geometry::NumGeom]
virtual const char * Name() const
H1_FECollection(const int p, const int dim=3, const int btype=BasisType::GaussLobatto)
virtual const char * Name() const
virtual int GetContType() const
ND_Trace_FECollection(const int p, const int dim, const int cb_type=BasisType::GaussLobatto, const int ob_type=BasisType::GaussLegendre)
A 3D 0th order Raviert-Thomas element on a wedge.
Arbitrary order "H^{1/2}-conforming" trace finite elements defined on the interface between mesh elem...
virtual int GetContType() const
ND_R2D_Trace_FECollection(const int p, const int dim, const int cb_type=BasisType::GaussLobatto, const int ob_type=BasisType::GaussLegendre)
ND_FECollection(const int p, const int dim, const int cb_type=BasisType::GaussLobatto, const int ob_type=BasisType::GaussLegendre)
ErrorMode error_mode
How to treat errors in FiniteElementForGeometry() calls.
A 3D refined tri-linear element on a cube.
Discontinuous collection defined locally by a given finite element.
Arbitrary order H(curl)-trace finite elements defined on the interface between mesh elements (faces...
CubicDiscont2DFECollection()
Version of QuadraticDiscont2DFECollection with positive basis functions.
virtual ~ND_FECollection()
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
A 3D quadratic element on a tetrahedron with uniformly spaced nodes.
RT_R1D_FECollection(const int p, const int dim, const int cb_type=BasisType::GaussLobatto, const int ob_type=BasisType::GaussLegendre)
virtual int GetContType() const
virtual int GetContType() const
QuadraticDiscont2DFECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual FiniteElementCollection * GetTraceCollection() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
Array< FiniteElementCollection * > var_orders
Third order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility...
First order Raviart-Thomas finite elements in 3D. This class is kept only for backward compatibility...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
Version of QuadraticFECollection with positive basis functions.
virtual ~Local_FECollection()
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual ~H1_FECollection()
Piecewise-constant discontinuous finite elements in 3D. This class is kept only for backward compatib...
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const char * Name() const
LinearDiscont3DFECollection()
A 3D linear element on a tetrahedron with nodes at the vertices of the tetrahedron.
A 1D linear element with nodes on the endpoints.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
int ND_dof[Geometry::NumGeom]
A 2D Crouzeix-Raviart finite element on square.
A 2D linear element on triangle with nodes at the vertices of the triangle.
LinearDiscont2DFECollection()
A quadratic element on triangle with nodes at the "Gaussian" points.
Piecewise-constant discontinuous finite elements in 2D. This class is kept only for backward compatib...
FiniteElement * H1_Elements[Geometry::NumGeom]
Piecewise-linear nonconforming finite elements in 3D.
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
Tangential components of vector field.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual int GetContType() const
Crouzeix-Raviart nonconforming elements in 2D.
FiniteElement * RT_Elements[Geometry::NumGeom]
virtual int DofForGeometry(Geometry::Type GeomType) const
Arbitrary order H(div)-conforming Raviart-Thomas finite elements.
L2_FECollection DG_FECollection
Declare an alternative name for L2_FECollection = DG_FECollection.
virtual const char * Name() const
H1Pos_FECollection(const int p, const int dim=3)
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
static void GetEdge(int &nv, v_t &v, int &ne, int &e, int &eo, const int edge_info)
H1Ser_FECollection(const int p, const int dim=2)
A 2D 2nd order Raviart-Thomas vector element on a square.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const =0
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
double p(const Vector &x, double t)
A 3D 1st order Raviert-Thomas element on a cube.
virtual int DofForGeometry(Geometry::Type GeomType) const
A 2D bi-quadratic element on a square with uniformly spaced nodes.
int GetNumDof(Geometry::Type geom, int p) const
Variable order version of DofForGeometry().
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
A 3D tri-linear element on a cube with nodes at the vertices of the cube.
ND_R1D_FECollection(const int p, const int dim, const int cb_type=BasisType::GaussLobatto, const int ob_type=BasisType::GaussLegendre)
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
Collection of finite elements from the same family in multiple dimensions. This class is used to matc...
FiniteElementCollection * GetTraceCollection() const
A 3D constant element on a wedge.
virtual const char * Name() const
virtual const FiniteElement * TraceFiniteElementForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
Piecewise-quadratic discontinuous finite elements in 3D. This class is kept only for backward compati...
virtual int GetContType() const
FiniteElementCollection * GetTraceCollection() const
FiniteElementCollection()
int GetDof() const
Returns the number of degrees of freedom in the finite element.
virtual int GetDerivMapType(int dim) const
A 3D constant element on a cube.
virtual int GetContType() const
A 2D bi-linear element on a square with nodes at the vertices of the square.
Version of LinearDiscont2DFECollection with dofs in the Gaussian points.
FiniteElementCollection(int p)
ND_R2D_FECollection(const int p, const int dim, const int cb_type=BasisType::GaussLobatto, const int ob_type=BasisType::GaussLegendre)
static FiniteElementCollection * New(const char *name)
Factory method: return a newly allocated FiniteElementCollection according to the given name...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType_) const
A linear element on a triangle with nodes at the 3 "Gaussian" points.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
Lowest order Nedelec finite elements in 3D. This class is kept only for backward compatibility, consider using the new ND_FECollection instead.
Arbitrary order H1-conforming (continuous) finite elements with positive basis functions.
GaussLinearDiscont2DFECollection()
FiniteElementCollection * GetTraceCollection() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
FiniteElementCollection * GetTraceCollection() const
int HasFaceDofs(Geometry::Type geom, int p) const
int GetOrder() const
Get the order of the NURBS collection: either a positive number, when using fixed order...
A 2D bi-quadratic element on a square with nodes at the 9 "Gaussian" points.
virtual const char * Name() const
virtual int GetMapType(int dim) const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
MFEM_EXPORT class LinearWedgeFiniteElement WedgeFE
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
virtual int GetContType() const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
A 1D quadratic positive element utilizing the 2nd order Bernstein basis.
A 3D 1st order Nedelec element on a wedge.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
void InitFaces(const int p, const int dim, const int map_type, const bool signs)
Piecewise-linear discontinuous finite elements in 3D. This class is kept only for backward compatibil...
RT_R2D_Trace_FECollection(const int p, const int dim, const int map_type=FiniteElement::INTEGRAL, const int ob_type=BasisType::GaussLegendre)
virtual int DofForGeometry(Geometry::Type GeomType_) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
int ND_dof[Geometry::NumGeom]
virtual const char * Name() const
virtual int GetContType() const
int RT_dof[Geometry::NumGeom]
virtual const char * Name() const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
int GetOpenBasisType() const
RT_Trace_FECollection(const int p, const int dim, const int map_type=FiniteElement::INTEGRAL, const int ob_type=BasisType::GaussLegendre)
QuadraticPosFECollection()
virtual int GetContType() const
Tensor products of 1D Lagrange1DFiniteElement (only degree 2 is functional)
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
Piecewise-(bi)quadratic continuous finite elements.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
First order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility...
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
A 3D constant element on a pyramid.
A 2D constant element on a square.
virtual ~RT_R1D_FECollection()
A linear element defined on a square pyramid.
const int * GetDofMap(Geometry::Type GeomType) const
Get the Cartesian to local H1 dof map.
virtual int GetDerivRangeType(int dim) const
virtual int DofForGeometry(Geometry::Type GeomType) const
Arbitrary order H(curl)-conforming Nedelec finite elements.
virtual const char * Name() const
virtual const char * Name() const
A 2D cubic element on a triangle with uniformly spaced nodes.
A 1D cubic element with uniformly spaced nodes.
Arbitrary order "H^{-1/2}-conforming" face finite elements defined on the interface between mesh elem...
virtual int DofForGeometry(Geometry::Type GeomType) const
A 2D 1st order Raviart-Thomas vector element on a triangle.
Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 2D.
virtual ~ND_R1D_FECollection()
virtual int GetContType() const
Arbitrary order H1-conforming (continuous) finite elements.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
Second order Raviart-Thomas finite elements in 3D. This class is kept only for backward compatibility...
virtual int DofForGeometry(Geometry::Type GeomType) const
A 2D linear element on a square with 3 nodes at the vertices of the lower left triangle.
A 3D 0th order Raviert-Thomas element on a pyramid.
FiniteElementCollection * GetTraceCollection() const
CrouzeixRaviartFECollection()
Field is continuous across element interfaces.
virtual const char * Name() const
virtual int GetContType() const
Piecewise-quadratic discontinuous finite elements in 2D. This class is kept only for backward compati...
virtual int DofForGeometry(Geometry::Type GeomType) const
Arbitrary order H1 elements in 3D on a wedge.
A 3D 0th order Raviert-Thomas element on a tetrahedron.
virtual ~FiniteElementCollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
Arbitrary order 3D "H^{-1/2}-conforming" face finite elements defined on the interface between mesh e...
virtual const char * Name() const
A 2D 3rd order Raviart-Thomas vector element on a triangle.
Local_FECollection(const char *fe_name)
FiniteElementCollection * GetTraceCollection() const
virtual int GetContType() const
virtual int GetContType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
void SetOrder(int Order) const
Set the order and the name, based on the given Order: either a positive number for fixed order...
Linear (P1) finite elements on quadrilaterals.
void InitVarOrder(int p) const
Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 1D.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
virtual int GetContType() const
An arbitrary order 3D NURBS element on a cube.
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
An arbitrary order 1D NURBS element on a segment.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
int ND_dof[Geometry::NumGeom]
virtual const char * Name() const
virtual const char * Name() const
virtual int GetContType() const
FiniteElement * RT_Elements[Geometry::NumGeom]
An arbitrary order 2D NURBS element on a square.
A 3D 1st order Nedelec element on a cube.
virtual const char * Name() const
A 2D Crouzeix-Raviart element on triangle.
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
virtual ~ND_R2D_FECollection()
int GetOpenBasisType() const
virtual const int * DofOrderForOrientation(Geometry::Type GeomType, int Or) const
Returns an array, say p, that maps a local permuted index i to a local base index: base_i = p[i]...
Arbitrary order "L2-conforming" discontinuous finite elements.
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const