Reference documentation for deal.II version 9.2.0
|
All classes related to shape functions and to access to shape functions. This concerns the actual values of finite elements. For the numbering of degrees of freedom refer to the module on Degrees of Freedom. More...
Modules | |
Base classes | |
The members of this sub-module 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. | |
Finite element access/FEValues classes | |
The classes in this module are used when one wants to assemble matrices or vectors. They link finite elements, quadrature objects, and mappings: the finite element classes describe a finite element space on a unit cell (i.e. the unit line segment, square, or cube [0,1]^d ), the quadrature classes describe where quadrature points are located and what weight they have, and the mapping classes describe how to map a point from the unit cell to a real cell and back. Since integration happens at quadrature points on the real cell, and needs to know their location as well as the values and gradients of finite element shape functions at these points. The FEValues class coordinates getting this information. For integrations on faces (for example for integration on the boundary, or interfaces between cells), the FEFaceValues class offers similar functionality as the FEValues class does for cells. Finally, the FESubfaceValues class offers the possibility to ingrate on parts of faces if the neighboring cell is refined and the present cell shares only a part of its face with the neighboring cell. If vector-valued elements are used, the FEValues and related classes allow access to all vector components; if one wants to pick individual components, there are extractor classes that make this task simpler, as described in the Handling vector valued problems module. | |
Finite element space descriptions | |
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. | |
Mappings between reference and real cell | |
The classes in this module are used to map from unit coordinates to the coordinates of a cell in real cell. Most commonly, one uses the MappingQ1 class that provides a Q1 (bi-/trilinear) mapping (i.e. a mapping that is isoparametric for the usual Q1 elements). However, there are other classes that implement higher-order mappings as well to provide for curvilinear elements. These are discussed in the step-11 and step-12 tutorial programs. | |
How Mapping, FiniteElement, and FEValues work together | |
The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues | |
Handling vector valued problems | |
Vector-valued problems are systems of partial differential equations. These are problems where the solution variable is not a scalar function, but a vector-valued function or a set of functions. This includes, for example: | |
All classes related to shape functions and to access to shape functions. This concerns the actual values of finite elements. For the numbering of degrees of freedom refer to the module on Degrees of Freedom.
The classes and functions of this module fall into several sub-groups that are discussed in their respective sub-modules listed above. In addition, the FETools class provides functions that provide information on finite elements, transformations between elements, etc.
In the grand scheme of things, the pieces of this module interact with a variety of other parts of the library: