Reference documentation for deal.II version 9.3.3

Classes  
class  BlockMask 
class  ComponentMask 
class  FiniteElement< dim, spacedim > 
class  FE_BDM< dim > 
class  FE_DGNedelec< dim, spacedim > 
class  FE_DGRaviartThomas< dim, spacedim > 
class  FE_DGBDM< dim, spacedim > 
class  FE_Enriched< dim, spacedim > 
class  FE_FaceQ< dim, spacedim > 
class  FE_FaceQ< 1, spacedim > 
class  FE_FaceP< dim, spacedim > 
class  FE_RannacherTurek< dim > 
class  FESystem< dim, spacedim > 
The classes here describe finite element spaces, such as the simplest Q1 (bi/trilinear) spaces, and higher order Lagrangian spaces Qp, but also more specialized spaces such as Nedelec or RaviartThomas ones. Concrete implementations are derived from the abstract FiniteElement base class.
In essence, the functions these classes have to implement provide the ability to query the value or derivatives of a shape function at a given point on the unit cell. To be useful in integrating matrix and right hand side entries, one has to have the ability to map these shape functions and gradients to the real cell. This is done using classes derived from the Mapping base class (see Mappings between reference and real cell) in conjunction with the FEValues class (see Finite element access/FEValues classes).
deal.II provides two different kinds of vector valued elements. First, there is a group of genuine vector elements, usually distinguished by the fact, that each vector component consists of a different set of anisotropic polynomials. These elements are typically associated with differential forms. Currently, they are
Additionally, deal.II offers a mechanism to create a vector element from existing scalar or vector elements. The FESystem class is responsible for this: it doesn't describe shape functions itself, but assembles a vectorvalued finite element from other finite element objects. This functionality is described step8, step17 and other tutorial programs after that.
For each finite element conforming to any space of weakly differentiable functions like H^{1} or H^{curl}, we can define an analogue DG space by simply assigning all degrees of freedom on vertices, edges or faces to the interior of the cell. This is to be understood in the topological sense. The interpolation operator for such a degree of freedom would still be on the boundary. While not done so consistently, we provide quite a few of these elements, plus those, which have no conforming counterparts, like FE_DGP. Here is a list of the current DG elements: