Loading...
Searching...
No Matches
Dune::Functions::LagrangePreBasis< GV, k, R > Class Template Reference
Function space bases » Function space basis implementations

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 >:

## Public Types

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

## Public Member Functions

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

## Static Public Attributes

static constexpr size_type | maxMultiIndexSize
| Maximal length of global multi-indices.
static constexpr size_type | minMultiIndexSize
| Minimal length of global multi-indices.
static constexpr size_type | multiIndexBufferSize
| Size required temporarily when constructing global multi-indices.

## 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!).
size_type | dofsPerCube (std::size_t cubeDim) const
| Number of degrees of freedom assigned to a cube (without the ones assigned to its faces!).
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!).
size_type | computeDofsPerCube (std::size_t cubeDim) const
| Number of degrees of freedom assigned to a cube (without the ones assigned to its faces!).
size_type | computeDofsPerPrism () const
size_type | computeDofsPerPyramid () const

## Protected Attributes

GridView | gridView_
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

  GV | The grid view that the FE basis is defined on
  k | The polynomial order of ansatz functions; -1 means 'order determined at run-time'
  R | Range 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

Warning
  For pyramid elements in 3d, the shape functions are different for run-time and compile-time order. While the former are defined using the Duffy-transformation the latter are continuous and piecewise polynomial with discontinuous gradients.

## 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

inline protected

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

inline protected

## computeDofsPerPyramid()

template<typename GV, int k, typename R>

size_type Dune::Functions::LagrangePreBasis< GV, k, R >::computeDofsPerPyramid | ( |  | ) | const

inline protected

## computeDofsPerSimplex()

template<typename GV, int k, typename R>

size_type Dune::Functions::LagrangePreBasis< GV, k, R >::computeDofsPerSimplex | ( | std::size_t | simplexDim | ) | const

inline protected

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

## containerDescriptor()

auto Dune::Functions::LeafPreBasisMixin< LagrangePreBasis< GV, k, R > >::containerDescriptor | ( |  | ) | const

inline inherited

Return a flat container-descriptor.

## 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

inline protected

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

inline protected

## dofsPerPyramid()

template<typename GV, int k, typename R>

size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerPyramid | ( |  | ) | const

inline protected

## dofsPerSimplex()

template<typename GV, int k, typename R>

size_type Dune::Functions::LagrangePreBasis< GV, k, R >::dofsPerSimplex | ( | std::size_t | simplexDim | ) | const

inline protected

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()

size_type Dune::Functions::LeafPreBasisMixin< LagrangePreBasis< GV, k, R > >::size | ( | const SizePrefix & | prefix | ) | const

inline inherited

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

size_type Dune::Functions::LeafPreBasisMixin< LagrangePreBasis< GV, k, R > >::maxMultiIndexSize

static constexpr inherited

Maximal length of global multi-indices.

## minMultiIndexSize

size_type Dune::Functions::LeafPreBasisMixin< LagrangePreBasis< GV, k, R > >::minMultiIndexSize

static constexpr inherited

Minimal length of global multi-indices.

## multiIndexBufferSize

size_type Dune::Functions::LeafPreBasisMixin< LagrangePreBasis< GV, k, R > >::multiIndexBufferSize

static constexpr inherited

Size required temporarily when constructing global multi-indices.

## order_

template<typename GV, int k, typename R>

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:

- lagrangebasis.hh