dune-functions 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Dune::Functions::LagrangePreBasis< GV, k, MI, 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, MI, 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...
 
using IndexSet = Impl::DefaultNodeIndexSet< LagrangePreBasis >
 Type of created tree node index set. More...
 
using MultiIndex = MI
 Type used for global numbering of the basis vectors. More...
 
using SizePrefix = Dune::ReservedVector< size_type, 1 >
 Type used for prefixes handed to the size() method. 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...
 
IndexSet makeIndexSet () const
 Create tree node index set. More...
 
size_type size () const
 Same as size(prefix) with empty prefix. More...
 
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
 

Protected Member Functions

unsigned int order () const
 
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, class MI, typename R>
class Dune::Functions::LagrangePreBasis< GV, k, MI, 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'
MIType to be used for multi-indices
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, class MI , typename R >
using Dune::Functions::LagrangePreBasis< GV, k, MI, R >::GridView = GV

The grid view that the FE basis is defined on.

◆ IndexSet

template<typename GV , int k, class MI , typename R >
using Dune::Functions::LagrangePreBasis< GV, k, MI, R >::IndexSet = Impl::DefaultNodeIndexSet<LagrangePreBasis>

Type of created tree node index set.

Deprecated:

◆ MultiIndex

template<typename GV , int k, class MI , typename R >
using Dune::Functions::LagrangePreBasis< GV, k, MI, R >::MultiIndex = MI

Type used for global numbering of the basis vectors.

◆ Node

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

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

◆ size_type

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

Type used for indices and size information.

◆ SizePrefix

template<typename GV , int k, class MI , typename R >
using Dune::Functions::LagrangePreBasis< GV, k, MI, R >::SizePrefix = Dune::ReservedVector<size_type, 1>

Type used for prefixes handed to the size() method.

Constructor & Destructor Documentation

◆ LagrangePreBasis() [1/2]

template<typename GV , int k, class MI , typename R >
Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, R >::computeDofsPerPrism ( ) const
inlineprotected

◆ computeDofsPerPyramid()

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

◆ computeDofsPerSimplex()

template<typename GV , int k, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, R >::dimension ( ) const
inline

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

◆ dofsPerCube()

template<typename GV , int k, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, R >::dofsPerPrism ( ) const
inlineprotected

◆ dofsPerPyramid()

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

◆ dofsPerSimplex()

template<typename GV , int k, class MI , typename R >
size_type Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
const GridView & Dune::Functions::LagrangePreBasis< GV, k, MI, R >::gridView ( ) const
inline

Obtain the grid view that the basis is defined on.

◆ indices()

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

◆ initializeIndices()

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

Initialize the global indices.

◆ makeIndexSet()

template<typename GV , int k, class MI , typename R >
IndexSet Dune::Functions::LagrangePreBasis< GV, k, MI, R >::makeIndexSet ( ) const
inline

Create tree node index set.

Create an index set suitable for the tree node obtained by makeNode().

Deprecated:

◆ makeNode()

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

Create tree node.

◆ maxNodeSize()

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

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

◆ order()

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

◆ size() [1/2]

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

Same as size(prefix) with empty prefix.

◆ size() [2/2]

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

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

◆ update()

template<typename GV , int k, class MI , typename R >
void Dune::Functions::LagrangePreBasis< GV, k, MI, 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, class MI , typename R >
std::array<size_type,dim+1> Dune::Functions::LagrangePreBasis< GV, k, MI, R >::dofsPerCube_
protected

◆ dofsPerPrism_

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

◆ dofsPerPyramid_

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

◆ dofsPerSimplex_

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

◆ edgeOffset_

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

◆ gridView_

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

◆ hexahedronOffset_

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

◆ order_

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

◆ prismOffset_

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

◆ pyramidOffset_

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

◆ quadrilateralOffset_

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

◆ tetrahedronOffset_

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

◆ triangleOffset_

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

◆ vertexOffset_

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

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