DUNE PDELab (unstable)

Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet > Class Template Reference

A class for permuting Lagrange DOFs of arbitrary order for dimensions 1,2,3. More...

#include <dune/functions/functionspacebases/lagrangebasis.hh>

Public Member Functions

 LagrangeFaceDOFPermutation (const IndexIdSet &indexSet, int order)
 
template<class Element >
FaceOrientations< dim > computeFaceOrientations (const Element &element) const
 Compute FaceOrientations for grid elements. More...
 
unsigned int permuteFaceDOF (unsigned int subEntity, unsigned int codim, unsigned int index, const FaceOrientations< dim > &orientations) const
 Compute permuted index of a face DOF. More...
 
unsigned int permuteFaceDOF (const Dune::LocalKey &localKey, const FaceOrientations< dim > &orientations) const
 Compute permuted index of a face DOF. More...
 

Static Public Attributes

static constexpr unsigned int maxOrder3d = 17
 Maximal supported polynomial order. More...
 

Detailed Description

template<class IndexIdSet>
class Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet >

A class for permuting Lagrange DOFs of arbitrary order for dimensions 1,2,3.

Template Parameters
IndexIdSetAn IndexSet or IdSet used to define globally unique face orientations

This class can be used to permute local Lagrange DOFs to get local per-face DOF indices that are unique among adjacent elements. While permutation of edge DOFs corresponds to a simple flip, permutation of DOFs associated to triangular and quadrilateral faces is more involved and thus looked up from pre-computed tables.

Constructor & Destructor Documentation

◆ LagrangeFaceDOFPermutation()

template<class IndexIdSet >
Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet >::LagrangeFaceDOFPermutation ( const IndexIdSet &  indexSet,
int  order 
)
inline
Parameters
indexSetThe gridView indexSet containing the elements and vertices
orderThe polynomial order of the shape functions

References Dune::range(), and Dune::size().

Member Function Documentation

◆ computeFaceOrientations()

template<class IndexIdSet >
template<class Element >
FaceOrientations< dim > Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet >::computeFaceOrientations ( const Element &  element) const
inline

Compute FaceOrientations for grid elements.

The returned FaceOrientations object encodes the orientations of all faces of the given element wrt. to the globally unique orientation provided by the index/id set and can be used to compute permuted face DOF indices using permuteFaceDOF

References Dune::transformedRangeView().

◆ permuteFaceDOF() [1/2]

template<class IndexIdSet >
unsigned int Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet >::permuteFaceDOF ( const Dune::LocalKey localKey,
const FaceOrientations< dim > &  orientations 
) const
inline

Compute permuted index of a face DOF.

Parameters
localKeyA Dune::LocalKey identifying a local DOF
orientationsA FaceOrientations object obtained by computeFaceOrientations
Returns
The permuted local index of the DOF within the subentity

The resulting local DOF index is permuted to match the global orientation induced by the index/id set. I.e. it is guaranteed to be consistent among all adjacent grid elements.

References Dune::LocalKey::codim(), Dune::LocalKey::index(), and Dune::LocalKey::subEntity().

◆ permuteFaceDOF() [2/2]

template<class IndexIdSet >
unsigned int Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet >::permuteFaceDOF ( unsigned int  subEntity,
unsigned int  codim,
unsigned int  index,
const FaceOrientations< dim > &  orientations 
) const
inline

Compute permuted index of a face DOF.

Parameters
subEntityThe index of the subentity the DOF is associated to
codimThe codim of the subentity the DOF is associated to
indexThe local index of the DOF within the subentity
orientationsA FaceOrientations object obtained by computeFaceOrientations
Returns
The permuted local index of the DOF within the subentity

The resulting local DOF index is permuted to match the global orientation induced by the index/id set. I.e. it is guaranteed to be consistent among all adjacent grid elements.

References Dune::Functions::Experimental::FaceOrientations< dim >::faceOrientationIndex().

Member Data Documentation

◆ maxOrder3d

template<class IndexIdSet >
constexpr unsigned int Dune::Functions::Experimental::LagrangeFaceDOFPermutation< IndexIdSet >::maxOrder3d = 17
staticconstexpr

Maximal supported polynomial order.

This is limited by the internally used type to represent face-local indices of DOFs.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Jun 10, 22:32, 2026)