version 3.11-dev
Loading...
Searching...
No Matches

DOF index and position helper for order-3 Lagrange discretizations. More...

#include <dumux/discretization/pq3/dofhelper.hh>

Inheritance diagram for Dumux::PQ3LagrangeDofHelper< GridView >:

Description

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
GridViewThe Dune grid view type.

Static Public Member Functions

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

Member Function Documentation

◆ dofIndex() [1/2]

template<class GridView>
template<class DofMapper, class LocalKey>
auto Dumux::Experimental::FEDofHelper< GridView >::dofIndex ( const DofMapper & dofMapper,
const Element & element,
const LocalKey & localKey )
inlinestaticinherited

◆ 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>
GlobalPosition Dumux::PQ3LagrangeDofHelper< GridView >::dofPosition ( const Geometry & geo,
const LocalKey & lk )
inlinestatic

◆ localDofOnIntersection()

template<class GridView>
template<class LocalKey>
auto Dumux::Experimental::FEDofHelper< GridView >::localDofOnIntersection ( Dune::GeometryType type,
unsigned int iIdx,
const LocalKey & localKey )
inlinestaticinherited

◆ 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>
auto Dumux::PQ3LagrangeDofHelper< GridView >::localDofs ( const ElemDisc & elemDisc)
inlinestatic
Parameters
elemDiscthe element discretization (must be bound)

◆ localDofsOnBoundaryFace() [1/2]

template<class GridView>
template<class ElemDisc, class BoundaryFace>
auto Dumux::Experimental::FEDofHelper< GridView >::localDofsOnBoundaryFace ( const ElemDisc & elemDisc,
const BoundaryFace & boundaryFace )
inlinestaticinherited
Parameters
elemDiscthe element discretization (must be bound)
boundaryFacethe boundary face

◆ localDofsOnBoundaryFace() [2/2]

template<class GridView>
template<class ElemDisc, class BoundaryFace>
auto Dumux::PQ3LagrangeDofHelper< GridView >::localDofsOnBoundaryFace ( const ElemDisc & elemDisc,
const BoundaryFace & boundaryFace )
inlinestatic
Parameters
elemDiscthe element discretization (must be bound)
boundaryFacethe boundary face

The documentation for this class was generated from the following file: