Reference documentation for deal.II version Git 65001fc 20180618 17:06:20 0400

Enumerations  
enum  FiniteElementData< dim >::Conformity { FiniteElementData< dim >::unknown = 0x00, FiniteElementData< dim >::L2 = 0x01, FiniteElementData< dim >::Hcurl = 0x02, FiniteElementData< dim >::Hdiv = 0x04, FiniteElementData< dim >::H1 = Hcurl  Hdiv, FiniteElementData< dim >::H2 = 0x0e } 
The members of this submodule describe the implementation mechanics of finite element classes, without actually implementing a concrete element. For example, the FiniteElement base class declares the virtual functions a derived class has to implement if it wants to describe a finite element space. Likewise, the FiniteElementData holds variables that describe certain values characterizing a finite element, such as the number of degrees of freedom per vertex, line, or face.
On the other hand, classes like FE_Poly and FE_PolyTensor are higher abstractions. They describe finite elements that are built atop polynomial descriptions of the shape functions on the unit cell. Classes derived from them then only have to provide a description of the particular polynomial from which a finite element is built. For example, the FE_Q class that implements the usual Lagrange elements uses the FE_Poly base class to generate a finite element by providing it with a set of Lagrange interpolation polynomials corresponding to an equidistant subdivision of interpolation points.
Finally, the FESystem class is used for vectorvalued problems. There, one may want to couple a number of scalar (or also vectorvalued) base elements together to form the joint finite element of a vectorvalued operator. As an example, for 3d NavierStokes flow, one may want to use three Q1 elements for the three components of the velocity, and a piecewise constant Q0 element for the pressure. The FESystem class can be used to couple these four base elements together into a single, vectorvalued element with 4 vector components. The step8, step17, and step18 tutorial programs give an introduction into the use of this class in the context of the vectorvalued elasticity (Lamé) equations. step20 discusses a mixed Laplace discretization that also uses vectorvalued elements.
enum FiniteElementData::Conformity 
Enumerator for the different types of continuity a finite element may have. Continuity is measured by the Sobolev space containing the constructed finite element space and is also called this way.
Note that certain continuities may imply others. For instance, a function in H^{1} is in H^{curl} and H^{div} as well.
If you are interested in continuity in the classical sense, then the following relations hold:
H^{1} implies that the function is continuous over cell boundaries.
H^{2} implies that the function is continuously differentiable over cell boundaries.
In order to test if a finite element conforms to a certain space, use FiniteElementData<dim>::conforms().