FiniteElement.h file
Base classes for finite element definitions.
This file defines the FiniteElementBase class, which provides the foundation for all finite element types. A finite element is characterized by the triple defining its geometry, polynomial space, and DOFs.
Mathematical Foundation
A finite element is defined by:
- : Reference element geometry (interval, triangle, tetrahedron, etc.)
- : Polynomial space (e.g., , )
- : Degrees of freedom (nodal values, moments, etc.)
Element Types
Common finite element families:
- Lagrange: continuous, nodal DOFs at vertices/edges/faces
- Hermite: continuous, includes derivative DOFs
- Raviart-Thomas: conforming
- Nédélec: conforming
- Discontinuous: elements for DG methods
Polynomial Spaces
- : Complete polynomials of degree
- : Tensor product polynomials of degree per direction
- Serendipity: Subset of with reduced DOFs
Reference Elements
Standard geometries:
- 1D: Interval [0,1]
- 2D: Triangle (vertices at (0,0), (1,0), (0,1)) or quadrilateral [0,1]²
- 3D: Tetrahedron, hexahedron, prism, pyramid
Namespaces
- namespace Rodin
- The Rodin library for Shape and Topology Optimization.
- namespace Rodin::Variational
- Module which provides the necessary tools for constructing variational problems.
Classes
-
template<class Derived>class Rodin::Variational::FiniteElementBase
- Base class for finite elements.