DUNE PDELab (2.8)
A multi-index representing a degree of freedom in a GridFunctionSpace. More...
#include <dune/pdelab/common/dofindex.hh>
Public Member Functions | |
DOFIndex () | |
Default constructor. | |
EntityIndex & | entityIndex () |
Returns the index of the grid entity associated with the DOF. | |
const EntityIndex & | entityIndex () const |
Returns the index of the grid entity associated with the DOF. | |
TreeIndex & | treeIndex () |
Returns the tuple of entity-local indices associated with the DOF. | |
const TreeIndex & | treeIndex () const |
Returns the tuple of entity-local indices associated with the DOF. | |
bool | operator== (const DOFIndex &r) const |
Tests whether two DOFIndices are equal. More... | |
bool | operator!= (const DOFIndex &r) const |
Tests whether two DOFIndices are not equal. | |
Detailed Description
class Dune::PDELab::DOFIndex< T, tree_n, entity_n >
A multi-index representing a degree of freedom in a GridFunctionSpace.
A DOFIndex provides a way for identifying degrees of freedom in a (possibly nested) GridFunctionSpace without imposing any kind of ordering. For that purpose, a DOFIndex identifies a degree of freedom by recording
- the geometry type of the grid entity associated with the DOF,
- an index value uniquely identifying the grid entity among all grid entities of its geometry type (usually just the index value of some Grid IndexSet),
- a tuple of entity-local indices.
The length of this index tuple is limited by the template parameter tree_n
, which will usually be equal to the maximum depth of the current GridFunctionSpace tree. Moreover, there will never be two identical index tuples associated with the same grid entity.
The index tuple is oriented from left to right when traversing up the tree (i.e. towards the root node) and from right to left when drilling down from the root node towards a leaf. For non-leaf nodes, the associated index entry identifies the child GridFunctionSpace that the degree of freedom is associated with, while for leafs, it provides a way to provide multiple degrees of freedom for a single grid entity (usually, the index value for a leaf space will correspond to the LocalKey::index() value from the finite element).
Note that in general, the length of the index tuple will not be the same for all degrees of freedom in a GridFunctionSpace. Consider the following example of a Taylor-Hood element (P2-P1):
In this case, degrees of freedom for the velocity components will have an index tuple of length 3, while those related to pressure will only have an index tuple of length 2. For the Taylor-Hood space given above, the DOFIndex associated with a triangle with vertex and edge indices in the range {0,1,2} are
GeometryType | grid entity index | entity-local index tuple |
---|---|---|
Point | 0 | 0, 0, 0 |
Point | 1 | 0, 0, 0 |
Point | 2 | 0, 0, 0 |
Line | 0 | 0, 0, 0 |
Line | 1 | 0, 0, 0 |
Line | 2 | 0, 0, 0 |
Point | 0 | 0, 1, 0 |
Point | 1 | 0, 1, 0 |
Point | 2 | 0, 1, 0 |
Line | 0 | 0, 1, 0 |
Line | 1 | 0, 1, 0 |
Line | 2 | 0, 1, 0 |
Point | 0 | 0, 1 |
Point | 1 | 0, 1 |
Point | 2 | 0, 1 |
- Template Parameters
-
T the type of the index entries. tree_n the maximum length of the tuple of entity-local indices. entity_n the maximum length of a tuple which represents the entity index.
Member Function Documentation
◆ operator==()
|
inline |
Tests whether two DOFIndices are equal.
- Note
- Only DOFIndices of identical max_depth are comparable.
The documentation for this class was generated from the following file:
- dune/pdelab/common/dofindex.hh