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,
61 virtual const char *
Name()
const {
return "Undefined"; }
165 return var_orders[
p]->FiniteElementForGeometry(geom);
189 return var_orders[
p]->DofOrderForOrientation(geom, ori);
233 {
return H1_dof[GeomType]; }
307 if (L2_Elements[GeomType])
309 return L2_Elements[GeomType]->
GetDof();
315 virtual const char *
Name()
const {
return d_name; }
322 return Tr_Elements[GeomType];
349 void InitFaces(
const int p,
const int dim,
const int map_type,
372 {
return RT_dof[GeomType]; }
431 {
return ND_dof[GeomType]; }
476 {
return ND_dof[GeomType]; }
503 {
return RT_dof[GeomType]; }
531 {
return ND_dof[GeomType]; }
563 void InitFaces(
const int p,
const int dim,
const int map_type,
580 {
return RT_dof[GeomType]; }
615 mutable char name[16];
627 QuadrilateralFE->
Reset();
628 ParallelepipedFE->
Reset();
648 virtual const char *
Name()
const {
return name; }
681 virtual const char *
Name()
const {
return "Linear"; }
710 virtual const char *
Name()
const {
return "Quadratic"; }
733 virtual const char *
Name()
const {
return "QuadraticPos"; }
753 ParallelepipedFE(3), WedgeFE(3,
BasisType::ClosedUniform)
764 virtual const char *
Name()
const {
return "Cubic"; }
787 virtual const char *
Name()
const {
return "CrouzeixRaviart"; }
812 virtual const char *
Name()
const {
return "LinearNonConf3D"; }
837 virtual const char *
Name()
const {
return "RT0_2D"; }
861 virtual const char *
Name()
const {
return "RT1_2D"; }
885 virtual const char *
Name()
const {
return "RT2_2D"; }
909 virtual const char *
Name()
const {
return "Const2D"; }
934 virtual const char *
Name()
const {
return "LinearDiscont2D"; }
958 virtual const char *
Name()
const {
return "GaussLinearDiscont2D"; }
975 virtual const char *
Name()
const {
return "P1OnQuad"; }
999 virtual const char *
Name()
const {
return "QuadraticDiscont2D"; }
1017 virtual const char *
Name()
const {
return "QuadraticPosDiscont2D"; }
1040 virtual const char *
Name()
const {
return "GaussQuadraticDiscont2D"; }
1064 virtual const char *
Name()
const {
return "CubicDiscont2D"; }
1090 virtual const char *
Name()
const {
return "Const3D"; }
1116 virtual const char *
Name()
const {
return "LinearDiscont3D"; }
1141 virtual const char *
Name()
const {
return "QuadraticDiscont3D"; }
1167 virtual const char *
Name()
const {
return "RefinedLinear"; }
1193 virtual const char *
Name()
const {
return "ND1_3D"; }
1219 virtual const char *
Name()
const {
return "RT0_3D"; }
1242 virtual const char *
Name()
const {
return "RT1_3D"; }
1259 {
return (GeomType == GeomType_) ? Local_Element : NULL; }
1261 {
return (GeomType == GeomType_) ? Local_Element->
GetDof() : 0; }
1265 virtual const char *
Name()
const {
return d_name; }
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]...
Abstract class for all finite elements.
int GetOrder() const
Get the order of the NURBS collection: either a positive number, when using fixed order...
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]...
A 2D 2nd order Raviart-Thomas vector element on a triangle.
Arbitrary order non-uniform rational B-splines (NURBS) finite elements.
Field is discontinuous across element interfaces.
virtual const char * Name() const
virtual const char * Name() const
virtual const char * Name() const
H1_Trace_FECollection(const int p, const int dim, const int btype=BasisType::GaussLobatto)
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
Piecewise-cubic discontinuous finite elements in 2D. This class is kept only for backward compatibili...
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]...
Version of QuadraticDiscont2DFECollection with dofs in the Gaussian points.
int GetOpenBasisType() const
int RT_dof[Geometry::NumGeom]
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
FiniteElement * ND_Elements[Geometry::NumGeom]
A 2D 1st order Raviart-Thomas vector element on a square.
const FiniteElement * GetFE(Geometry::Type geom, int p) const
Variable order version of FiniteElementForGeometry().
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 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 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 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
int RT_dof[Geometry::NumGeom]
virtual FiniteElementCollection * GetTraceCollection() const
virtual const char * Name() const
GaussQuadraticDiscont2DFECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual ~NURBSFECollection()
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]...
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 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]...
virtual int DofForGeometry(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]...
FiniteElementCollection * GetTraceCollection() const
A 3D 1st order Nedelec element on a pyramid.
virtual const char * Name() const
virtual int GetContType() const =0
Tangential components of vector field.
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]...
int GetClosedBasisType() 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 char * Name() const
virtual int GetContType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
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 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]...
RefinedLinearFECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const =0
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 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...
A 0D point finite element.
Arbitrary order 3D H(curl)-trace finite elements in 2D defined on the interface between mesh elements...
A 3D 0th order Raviert-Thomas element on a cube.
A 1D quadratic finite element with uniformly spaced nodes.
virtual int DofForGeometry(Geometry::Type GeomType) const
Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 2D.
virtual const char * Name() const
virtual int GetContType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual ~RT_R2D_FECollection()
FiniteElementCollection * GetTraceCollection() 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
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...
virtual int DofForGeometry(Geometry::Type GeomType) const
void InitFaces(const int p, const int dim, const int map_type, const bool signs)
FiniteElementCollection * GetTraceCollection() const
virtual const char * Name() const
A 3D constant element on a tetrahedron.
DG_Interface_FECollection(const int p, const int dim, const int map_type=FiniteElement::VALUE, const int ob_type=BasisType::GaussLegendre)
RT_R2D_FECollection(const int p, const int dim, const int map_type, const bool signs, const int ob_type=BasisType::GaussLegendre)
virtual const char * Name() const
A 3D Crouzeix-Raviart element on the tetrahedron.
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
A 2D bi-cubic element on a square with uniformly spaces nodes.
virtual const char * Name() const
virtual const char * Name() const
Finite element collection on a macro-element.
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 2D refined bi-linear FE on a square.
Possible basis types. Note that not all elements can use all BasisType(s).
int GetOrder() const
Return the order (polynomial degree) of the FE collection, corresponding to the order/degree returned...
QuadraticPosDiscont2DFECollection()
NURBSFECollection(int Order=VariableOrder)
The parameter Order must be either a positive number, for fixed order, or VariableOrder (default)...
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const =0
virtual const char * Name() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
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 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_FECollection()
L2_FECollection(const int p, const int dim, const int btype=BasisType::GaussLegendre, const int map_type=FiniteElement::VALUE)
virtual int GetContType() const
Piecewise-(bi)cubic continuous finite elements.
Class for finite elements with basis functions that return scalar values.
FiniteElementCollection * GetTraceCollection() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
const int * GetDofMap(Geometry::Type GeomType) const
Get the Cartesian to local H1 dof map.
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 int GetContType() const
int HasFaceDofs(Geometry::Type geom, int p) const
virtual int GetContType() const
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
virtual int GetContType() const
virtual int GetContType() 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)
FiniteElement * RT_Elements[Geometry::NumGeom]
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
A 2D constant element on a triangle.
static void GetNVE(int &nv, int &ne)
FiniteElement * ND_Elements[Geometry::NumGeom]
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
A linear element defined on a triangular prism.
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]...
Piecewise-linear discontinuous finite elements in 2D. This class is kept only for backward compatibil...
FiniteElement * ND_Elements[Geometry::NumGeom]
H1_FECollection(const int p, const int dim=3, const int btype=BasisType::GaussLobatto)
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)
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...
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]...
CubicDiscont2DFECollection()
Version of QuadraticDiscont2DFECollection with positive basis functions.
virtual ~ND_FECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
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)
QuadraticDiscont2DFECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
Array< FiniteElementCollection * > var_orders
Third order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
First order Raviart-Thomas finite elements in 3D. This class is kept only for backward compatibility...
virtual int DofForGeometry(Geometry::Type GeomType) const
void SubDofOrder(Geometry::Type Geom, int SDim, int Info, Array< int > &dofs) const
Get the local dofs for a given sub-manifold.
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 int DofForGeometry(Geometry::Type GeomType) const
Version of QuadraticFECollection with positive basis functions.
virtual ~Local_FECollection()
virtual const char * Name() const
virtual const FiniteElement * TraceFiniteElementForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual ~H1_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]...
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]...
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.
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
int ND_dof[Geometry::NumGeom]
virtual int GetContType() const
A 2D Crouzeix-Raviart finite element on square.
A 2D linear element on triangle with nodes at the vertices of the triangle.
LinearDiscont2DFECollection()
virtual int GetContType() const
A quadratic element on triangle with nodes at the "Gaussian" points.
virtual const char * Name() const
virtual const char * Name() const
FiniteElementCollection * GetTraceCollection() const
virtual int DofForGeometry(Geometry::Type GeomType) const
Piecewise-constant discontinuous finite elements in 2D. This class is kept only for backward compatib...
FiniteElement * H1_Elements[Geometry::NumGeom]
FiniteElementCollection * GetTraceCollection() const
const int * GetDofOrdering(Geometry::Type geom, int p, int ori) const
Variable order version of DofOrderForOrientation().
Piecewise-linear nonconforming finite elements in 3D.
Crouzeix-Raviart nonconforming elements in 2D.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
FiniteElementCollection * GetTraceCollection() const
FiniteElement * RT_Elements[Geometry::NumGeom]
virtual int DofForGeometry(Geometry::Type GeomType) const
int GetNumDof(Geometry::Type geom, int p) const
Variable order version of DofForGeometry().
virtual int DofForGeometry(Geometry::Type GeomType) const
Arbitrary order H(div)-conforming Raviart-Thomas finite elements.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
L2_FECollection DG_FECollection
Declare an alternative name for L2_FECollection = DG_FECollection.
H1Pos_FECollection(const int p, const int dim=3)
virtual int DofForGeometry(Geometry::Type GeomType) const
static void GetEdge(int &nv, v_t &v, int &ne, int &e, int &eo, const int edge_info)
virtual const FiniteElement * TraceFiniteElementForGeometry(Geometry::Type GeomType) const
H1Ser_FECollection(const int p, const int dim=2)
A 2D 2nd order Raviart-Thomas vector element on a square.
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]...
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)
virtual const char * Name() const
virtual const char * Name() const
void SetOrder(int Order) const
Set the order and the name, based on the given Order: either a positive number for fixed order...
virtual const char * Name() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
A 3D 1st order Raviert-Thomas element on a cube.
virtual const char * Name() const
int GetDof() const
Returns the number of degrees of freedom in the finite element.
A 2D bi-quadratic element on a square with uniformly spaced 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]...
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)
Collection of finite elements from the same family in multiple dimensions. This class is used to matc...
A 3D constant element on a wedge.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
Piecewise-quadratic discontinuous finite elements in 3D. This class is kept only for backward compati...
virtual int DofForGeometry(Geometry::Type GeomType) const
FiniteElementCollection()
Field is continuous across element interfaces.
virtual int GetContType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
A 3D constant element on a cube.
virtual const char * Name() const
A 2D bi-linear element on a square with nodes at the vertices of the square.
virtual int DofForGeometry(Geometry::Type GeomType) const
Version of LinearDiscont2DFECollection with dofs in the Gaussian points.
virtual const char * Name() const
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 int DofForGeometry(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
virtual int GetContType() const
virtual FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
virtual int GetContType() 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.
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]...
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
GaussLinearDiscont2DFECollection()
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
void InitVarOrder(int p) const
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
FiniteElementCollection * Clone(int p) const
Instantiate a new collection of the same type with a different order.
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 2D bi-quadratic element on a square with nodes at the 9 "Gaussian" points.
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]...
FiniteElementCollection * GetTraceCollection() const
A 1D quadratic positive element utilizing the 2nd order Bernstein basis.
A 3D 1st order Nedelec element on a wedge.
virtual int DofForGeometry(Geometry::Type GeomType) const
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 const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
int ND_dof[Geometry::NumGeom]
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]...
int RT_dof[Geometry::NumGeom]
virtual const char * Name() const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
virtual int GetContType() const
RT_Trace_FECollection(const int p, const int dim, const int map_type=FiniteElement::INTEGRAL, const int ob_type=BasisType::GaussLegendre)
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
QuadraticPosFECollection()
Tensor products of 1D Lagrange1DFiniteElement (only degree 2 is functional)
virtual int DofForGeometry(Geometry::Type GeomType) const
int GetOpenBasisType() const
Piecewise-(bi)quadratic continuous finite elements.
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 int DofForGeometry(Geometry::Type GeomType) const
virtual ~RT_R1D_FECollection()
A linear element defined on a square pyramid.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
Arbitrary order H(curl)-conforming Nedelec finite elements.
virtual int DofForGeometry(Geometry::Type GeomType) const
A 2D cubic element on a triangle with uniformly spaced nodes.
virtual int DofForGeometry(Geometry::Type GeomType) const
A 1D cubic element with uniformly spaced nodes.
virtual const char * Name() const
Arbitrary order "H^{-1/2}-conforming" face finite elements defined on the interface between mesh elem...
virtual int GetContType() 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()
Arbitrary order H1-conforming (continuous) finite elements.
Second order Raviart-Thomas finite elements in 3D. This class is kept only for backward compatibility...
virtual const char * Name() const
A 2D linear element on a square with 3 nodes at the vertices of the lower left triangle.
virtual const char * Name() const
A 3D 0th order Raviert-Thomas element on a pyramid.
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType_) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
CrouzeixRaviartFECollection()
virtual int GetContType() const
virtual int DofForGeometry(Geometry::Type GeomType) const
Piecewise-quadratic discontinuous finite elements in 2D. This class is kept only for backward compati...
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 int GetContType() const
Arbitrary order 3D "H^{-1/2}-conforming" face finite elements defined on the interface between mesh e...
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
A 2D 3rd order Raviart-Thomas vector element on a triangle.
Local_FECollection(const char *fe_name)
virtual int DofForGeometry(Geometry::Type GeomType) const
virtual const char * Name() const
Linear (P1) finite elements on quadrilaterals.
Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 1D.
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]...
An arbitrary order 3D NURBS element on a cube.
virtual int GetContType() const
An arbitrary order 1D NURBS element on a segment.
virtual int GetContType() const
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
virtual int GetContType() const
int ND_dof[Geometry::NumGeom]
FiniteElement * RT_Elements[Geometry::NumGeom]
An arbitrary order 2D NURBS element on a square.
A 3D 1st order Nedelec element on a cube.
virtual int GetContType() const
A 2D Crouzeix-Raviart element on triangle.
virtual ~ND_R2D_FECollection()
virtual const FiniteElement * FiniteElementForGeometry(Geometry::Type GeomType) const
Arbitrary order "L2-conforming" discontinuous 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]...