dune-functions 2.9.0
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Dune::Functions::LagrangePreBasis< GV, k, R > Class Template Reference

A pre-basis for a PQ-lagrange bases with given order. More...

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

Inheritance diagram for Dune::Functions::LagrangePreBasis< GV, k, R >:
Inheritance graph

Public Types

using GridView = GV
 The grid view that the FE basis is defined on. More...
 
using size_type = std::size_t
 Type used for indices and size information. More...
 
using Node = LagrangeNode< GV, k, R >
 Template mapping root tree path to type of created tree node. More...
 

Public Member Functions

 LagrangePreBasis (const GridView &gv)
 Constructor for a given grid view object with compile-time order. More...
 
 LagrangePreBasis (const GridView &gv, unsigned int order)
 Constructor for a given grid view object and run-time order. More...
 
void initializeIndices ()
 Initialize the global indices. More...
 
const GridViewgridView () const
 Obtain the grid view that the basis is defined on. More...
 
void update (const GridView &gv)
 Update the stored grid view, to be called if the grid has changed. More...
 
Node makeNode () const
 Create tree node. More...
 
size_type size () const
 Same as size(prefix) with empty prefix. More...
 
template<class SizePrefix >
size_type size (const SizePrefix &prefix) const
 Return number of possible values for next position in multi index. More...
 
size_type dimension () const
 Get the total dimension of the space spanned by this basis. More...
 
size_type maxNodeSize () const
 Get the maximal number of DOFs associated to node for any element. More...
 
template<typename It >
It indices (const Node &node, It it) const
 
unsigned int order () const
 Polynomial order used in the local Lagrange finite-elements. More...
 

Static Public Attributes

static constexpr size_type maxMultiIndexSize = 1
 
static constexpr size_type minMultiIndexSize = 1
 
static constexpr size_type multiIndexBufferSize = 1
 

Protected Member Functions

size_type dofsPerSimplex (std::size_t simplexDim) const
 Number of degrees of freedom assigned to a simplex (without the ones assigned to its faces!) More...
 
size_type dofsPerCube (std::size_t cubeDim) const
 Number of degrees of freedom assigned to a cube (without the ones assigned to its faces!) More...
 
size_type dofsPerPrism () const
 
size_type dofsPerPyramid () const
 
size_type computeDofsPerSimplex (std::size_t simplexDim) const
 Number of degrees of freedom assigned to a simplex (without the ones assigned to its faces!) More...
 
size_type computeDofsPerCube (std::size_t cubeDim) const
 Number of degrees of freedom assigned to a cube (without the ones assigned to its faces!) More...
 
size_type computeDofsPerPrism () const
 
size_type computeDofsPerPyramid () const
 

Protected Attributes

GridView gridView_
 
const unsigned int order_
 
std::array< size_type, dim+1 > dofsPerSimplex_
 
std::array< size_type, dim+1 > dofsPerCube_
 
size_type dofsPerPrism_
 
size_type dofsPerPyramid_
 
size_type vertexOffset_
 
size_type edgeOffset_
 
size_type triangleOffset_
 
size_type quadrilateralOffset_
 
size_type tetrahedronOffset_
 
size_type pyramidOffset_
 
size_type prismOffset_
 
size_type hexahedronOffset_
 

Detailed Description

template<typename GV, int k, typename R>
class Dune::Functions::LagrangePreBasis< GV, k, R >

A pre-basis for a PQ-lagrange bases with given order.

Template Parameters
GVThe grid view that the FE basis is defined on
kThe polynomial order of ansatz functions; -1 means 'order determined at run-time'
RRange type used for shape function values
Note
This only works for certain grids. The following restrictions hold
  • If k is no larger than 2, then the grids can have any dimension
  • If k is larger than 3 then the grid must be two-dimensional
  • If k is 3, then the grid can be 3d if it is a simplex grid

Member Typedef Documentation

◆ GridView

template<typename GV , int k, typename R >
using Dune::Functions::LagrangePreBasis< GV, k, R >::GridView = GV

The grid view that the FE basis is defined on.

◆ Node

template<typename GV , int k, typename R >
using Dune::Functions::LagrangePreBasis< GV, k, R >::Node = LagrangeNode<GV, k, R>

Template mapping root tree path to type of created tree node.

◆ size_type

template<typename GV , int k, typename R >
using Dune::Functions::LagrangePreBasis< GV, k, R >::size_type = std::size_t

Type used for indices and size information.

Constructor & Destructor Documentation

◆ LagrangePreBasis() [1/2]

template<typename GV , int k, typename R >
Dune::Functions::LagrangePreBasis< GV, k, R >::LagrangePreBasis ( const GridView gv)
inline

Constructor for a given grid view object with compile-time order.

◆ LagrangePreBasis() [2/2]

template<typename GV , int k, typename R >
Dune::Functions::LagrangePreBasis< GV, k, R >::LagrangePreBasis ( const GridView gv,
unsigned int  order 
)
inline

Constructor for a given grid view object and run-time order.

Member Function Documentation

◆ computeDofsPerCube()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::computeDofsPerCube ( std::size_t  cubeDim) const
inlineprotected

Number of degrees of freedom assigned to a cube (without the ones assigned to its faces!)

◆ computeDofsPerPrism()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::computeDofsPerPrism ( ) const
inlineprotected

◆ computeDofsPerPyramid()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::computeDofsPerPyramid ( ) const
inlineprotected

◆ computeDofsPerSimplex()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::computeDofsPerSimplex ( std::size_t  simplexDim) const
inlineprotected

Number of degrees of freedom assigned to a simplex (without the ones assigned to its faces!)

◆ dimension()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dimension ( ) const
inline

Get the total dimension of the space spanned by this basis.

◆ dofsPerCube()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerCube ( std::size_t  cubeDim) const
inlineprotected

Number of degrees of freedom assigned to a cube (without the ones assigned to its faces!)

◆ dofsPerPrism()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerPrism ( ) const
inlineprotected

◆ dofsPerPyramid()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerPyramid ( ) const
inlineprotected

◆ dofsPerSimplex()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerSimplex ( std::size_t  simplexDim) const
inlineprotected

Number of degrees of freedom assigned to a simplex (without the ones assigned to its faces!)

◆ gridView()

template<typename GV , int k, typename R >
const GridView & Dune::Functions::LagrangePreBasis< GV, k, R >::gridView ( ) const
inline

Obtain the grid view that the basis is defined on.

◆ indices()

template<typename GV , int k, typename R >
template<typename It >
It Dune::Functions::LagrangePreBasis< GV, k, R >::indices ( const Node node,
It  it 
) const
inline

◆ initializeIndices()

template<typename GV , int k, typename R >
void Dune::Functions::LagrangePreBasis< GV, k, R >::initializeIndices ( )
inline

Initialize the global indices.

◆ makeNode()

template<typename GV , int k, typename R >
Node Dune::Functions::LagrangePreBasis< GV, k, R >::makeNode ( ) const
inline

Create tree node.

◆ maxNodeSize()

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::maxNodeSize ( ) const
inline

Get the maximal number of DOFs associated to node for any element.

◆ order()

template<typename GV , int k, typename R >
unsigned int Dune::Functions::LagrangePreBasis< GV, k, R >::order ( ) const
inline

Polynomial order used in the local Lagrange finite-elements.

◆ size() [1/2]

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::size ( ) const
inline

Same as size(prefix) with empty prefix.

◆ size() [2/2]

template<typename GV , int k, typename R >
template<class SizePrefix >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::size ( const SizePrefix &  prefix) const
inline

Return number of possible values for next position in multi index.

◆ update()

template<typename GV , int k, typename R >
void Dune::Functions::LagrangePreBasis< GV, k, R >::update ( const GridView gv)
inline

Update the stored grid view, to be called if the grid has changed.

Member Data Documentation

◆ dofsPerCube_

template<typename GV , int k, typename R >
std::array<size_type,dim+1> Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerCube_
protected

◆ dofsPerPrism_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerPrism_
protected

◆ dofsPerPyramid_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerPyramid_
protected

◆ dofsPerSimplex_

template<typename GV , int k, typename R >
std::array<size_type,dim+1> Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerSimplex_
protected

◆ edgeOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::edgeOffset_
protected

◆ gridView_

template<typename GV , int k, typename R >
GridView Dune::Functions::LagrangePreBasis< GV, k, R >::gridView_
protected

◆ hexahedronOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::hexahedronOffset_
protected

◆ maxMultiIndexSize

template<typename GV , int k, typename R >
constexpr size_type Dune::Functions::LagrangePreBasis< GV, k, R >::maxMultiIndexSize = 1
staticconstexpr

◆ minMultiIndexSize

template<typename GV , int k, typename R >
constexpr size_type Dune::Functions::LagrangePreBasis< GV, k, R >::minMultiIndexSize = 1
staticconstexpr

◆ multiIndexBufferSize

template<typename GV , int k, typename R >
constexpr size_type Dune::Functions::LagrangePreBasis< GV, k, R >::multiIndexBufferSize = 1
staticconstexpr

◆ order_

template<typename GV , int k, typename R >
const unsigned int Dune::Functions::LagrangePreBasis< GV, k, R >::order_
protected

◆ prismOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::prismOffset_
protected

◆ pyramidOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::pyramidOffset_
protected

◆ quadrilateralOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::quadrilateralOffset_
protected

◆ tetrahedronOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::tetrahedronOffset_
protected

◆ triangleOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::triangleOffset_
protected

◆ vertexOffset_

template<typename GV , int k, typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, R >::vertexOffset_
protected

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