Reference documentation for deal.II version 9.4.1
|
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 Raviart-Thomas 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 vector-valued finite element from other finite element objects. This functionality is described step-8, step-17 and other tutorial programs after that.
For each finite element conforming to any space of weakly differentiable functions like H1 or Hcurl, 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: