DOF index and position helper for order-3 Lagrange discretizations.
More...
#include <dumux/discretization/pq3/dofhelper.hh>
template<class GridView>
class Dumux::PQ3LagrangeDofHelper< GridView >
Edge and face DOFs require orientation-consistent permutation so that adjacent elements assign the same global index to shared sub-entity DOFs. The algorithm is adapted from dune-functions' LagrangeBasis orientation logic (see license remarks at the top of this file).
- Template Parameters
-
| GridView | The Dune grid view type. |
|
| template<class DofMapper, class Element, class LocalKey, class IdSet> |
| static std::size_t | dofIndex (const DofMapper &m, const Element &e, const LocalKey &lk, const IdSet &idSet) |
| | Orientation-consistent global DOF index.
|
| template<class ElemDisc> |
| static auto | localDofs (const ElemDisc &elemDisc) |
| | Iterator range over all local dofs on an element.
|
| template<class ElemDisc, class BoundaryFace> |
| static auto | localDofsOnBoundaryFace (const ElemDisc &elemDisc, const BoundaryFace &boundaryFace) |
| | Iterator range over all local dofs on a given boundary face. Uses a filter over all local dofs via localDofOnIntersection.
|
| template<class Geometry, class LocalKey> |
| static GlobalPosition | dofPosition (const Geometry &geo, const LocalKey &lk) |
| | Physical position of a DOF in global coordinates.
|
| template<class LocalKey> |
| static GridView::template Codim< 0 >::Entity::Geometry::LocalCoordinate | localDofPosition (Dune::GeometryType gt, const LocalKey &lk) |
| | Reference-element position of a DOF for order-3 Lagrange basis.
|
| template<class LocalKey> |
| static auto | localDofOnIntersection (Dune::GeometryType type, unsigned int iIdx, const LocalKey &localKey) |
| | Returns true if the local dof with a given local key is on the intersection with index iIdx.
|
| template<class ElemDisc, class BoundaryFace> |
| static auto | localDofsOnBoundaryFace (const ElemDisc &elemDisc, const BoundaryFace &boundaryFace) |
| | Iterator range over all local dofs on a given boundary face. Uses a filter over all local dofs via localDofOnIntersection.
|
| template<class DofMapper, class LocalKey> |
| static auto | dofIndex (const DofMapper &dofMapper, const Element &element, const LocalKey &localKey) |
| | global index of dof
|
◆ dofIndex() [1/2]
template<class GridView>
template<class DofMapper, class LocalKey>
◆ dofIndex() [2/2]
template<class GridView>
template<class DofMapper, class Element, class LocalKey, class IdSet>
| std::size_t Dumux::PQ3LagrangeDofHelper< GridView >::dofIndex |
( |
const DofMapper & | m, |
|
|
const Element & | e, |
|
|
const LocalKey & | lk, |
|
|
const IdSet & | idSet ) |
|
inlinestatic |
For edge DOFs the within-entity index is flipped when the edge's global vertex ordering disagrees with the reference-element ordering. For 3D quad-face DOFs one of 8 rotation/reflection permutations is applied. A GlobalIdSet must be passed so that the orientation decision is consistent across MPI ranks.
◆ dofPosition()
template<class GridView>
template<class Geometry, class LocalKey>
◆ localDofOnIntersection()
template<class GridView>
template<class LocalKey>
◆ localDofPosition()
template<class GridView>
template<class LocalKey>
| GridView::template Codim< 0 >::Entity::Geometry::LocalCoordinate Dumux::PQ3LagrangeDofHelper< GridView >::localDofPosition |
( |
Dune::GeometryType | gt, |
|
|
const LocalKey & | lk ) |
|
inlinestatic |
◆ localDofs()
template<class GridView>
template<class ElemDisc>
- Parameters
-
| elemDisc | the element discretization (must be bound) |
◆ localDofsOnBoundaryFace() [1/2]
template<class GridView>
template<class ElemDisc, class BoundaryFace>
- Parameters
-
| elemDisc | the element discretization (must be bound) |
| boundaryFace | the boundary face |
◆ localDofsOnBoundaryFace() [2/2]
template<class GridView>
template<class ElemDisc, class BoundaryFace>
- Parameters
-
| elemDisc | the element discretization (must be bound) |
| boundaryFace | the boundary face |
The documentation for this class was generated from the following file: