Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Modules | Namespaces | Classes
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. More...

Collaboration diagram for Finite element access/FEValues classes:

Modules

 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:
 

Namespaces

 FEValuesViews
 
 FEValuesExtractors
 

Classes

class  internal::FEValuesImplementation::MappingRelatedData< dim, spacedim >
 
class  internal::FEValuesImplementation::FiniteElementRelatedData< dim, spacedim >
 
class  FEValuesViews::Scalar< dim, spacedim >
 
class  FEValuesViews::Vector< dim, spacedim >
 
class  FEValuesViews::SymmetricTensor< 2, dim, spacedim >
 
class  FEValuesViews::Tensor< 2, dim, spacedim >
 
class  FEValuesBase< dim, spacedim >
 
class  FEValues< dim, spacedim >
 
class  FEFaceValuesBase< dim, spacedim >
 
class  FEFaceValues< dim, spacedim >
 
class  FESubfaceValues< dim, spacedim >
 
struct  FEValuesExtractors::Scalar
 
struct  FEValuesExtractors::Vector
 
struct  FEValuesExtractors::SymmetricTensor< rank >
 
struct  FEValuesExtractors::Tensor< rank >
 

Detailed Description

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.

The last member of this group, the UpdateFlags enumeration, is used as an optimization: instead of letting the FEValues class compute every possible piece of data relating to a given finite element on a cell, you have to specify up front which information you are actually interested in. The UpdateFlags enumeration is used to offer symbolic names denoting what you want the FEValues class to compute.

All these classes are used in all tutorial programs from step-3 onward, and are described there in significant detail.

The actual workings of the FEValues class and friends is complicated because it has to be general yet efficient. The page on The interplay of UpdateFlags, Mapping, and FiniteElement in FEValues attempts to give an overview of how this works.

In the grand scheme of things, the pieces of this module interact with a variety of other parts of the library: