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>

Description

template<class GridView>
struct 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.

Public Types

using Scalar = typename GridView::ctype
using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>

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 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 localDofPos (Dune::GeometryType gt, const LocalKey &lk)
 Reference-element position of a DOF for order-3 Lagrange basis.

Static Public Attributes

static constexpr int dim = GridView::dimension

Member Typedef Documentation

◆ GlobalPosition

template<class GridView>
using Dumux::PQ3LagrangeDofHelper< GridView >::GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>

◆ Scalar

template<class GridView>
using Dumux::PQ3LagrangeDofHelper< GridView >::Scalar = typename GridView::ctype

Member Function Documentation

◆ dofIndex()

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

◆ localDofPos()

template<class GridView>
template<class LocalKey>
GridView::template Codim< 0 >::Entity::Geometry::LocalCoordinate Dumux::PQ3LagrangeDofHelper< GridView >::localDofPos ( Dune::GeometryType gt,
const LocalKey & lk )
inlinestatic

Member Data Documentation

◆ dim

template<class GridView>
int Dumux::PQ3LagrangeDofHelper< GridView >::dim = GridView::dimension
staticconstexpr

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