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

A pre-basis mixin class parametrized with a local finite-element and a DOF layout. More...

`#include <dune/functions/functionspacebases/lfeprebasismixin.hh>`

Inheritance diagram for Dune::Functions::LFEPreBasisMixin< GV, LFE >:

## Classes

class | Node
| Leaf basis node that encapsulates a local finite-element given from the LFEPreBasisMixin of type LFE. More...

## Public Types

using | GridView = GV
| The grid view that the FE basis is defined on.
using | size_type = std::size_t
| Type used for index digits.

## Public Member Functions

template<class LFE_ = LFE, std::enable_if_t< std::is_default_constructible_v< LFE_ >, int > = 0>
| LFEPreBasisMixin (const GridView &gv, MCMGLayout layout)
| Constructor for a given grid view object and layout.
template<class LFE_>
| LFEPreBasisMixin (const GridView &gv, LFE_ &&lfe, MCMGLayout layout)
| Constructor for a given grid view object, local finite-element and layout.
Node | makeNode () const
| Create tree node.
void | initializeIndices ()
| Initialize the global index information.
const GridView & | gridView () const
| Export the stored GridView.
void | update (const GridView &gv)
| Update the stored GridView.
size_type | dimension () const
| Return total number of basis functions.
size_type | maxNodeSize () const
| Return maximal number of basis functions per element.
template<class Node, class It>
It | indices (const Node &node, It it) const
| Fill cache with global indices of DOFs associated to the given bound node.
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 Attributes

GridView | gridView_
Dune::MultipleCodimMultipleGeomTypeMapper< GridView > | mapper_
std::size_t | maxNodeSize_

## Detailed Description

template<class GV, class LFE>
class Dune::Functions::LFEPreBasisMixin< GV, LFE >

A pre-basis mixin class parametrized with a local finite-element and a DOF layout.

This mixin class allows for simple construction of leaf pre-bases that are based on a local finite-element and a DOF layout only. Examples are the refined Lagrange pre-bases, or a hierarchical Lagrange pre-basis. Note that the layout is currently not capable of describing a reordering of local DOFs if there are multiple assigned to a grid entity. Thus higher-order continuous finite-elements are currently not possible to describe by this mixin class. Note also that this mixin fixes the local finite-element type and thus cannot handle mixed GeometryTypes.

Example

template <class GV, class R = double>
class RefinedP0PreBasis :
public LFEPreBasisMixin<GV, RefinedP0LocalFiniteElement<typename GV::ctype,R,GV::dimension>>
{
using LFE = RefinedP0LocalFiniteElement<typename GV::ctype,R,GV::dimension>;
using Base = LFEPreBasisMixin<GV, LFE>;
static const int dim = GV::dimension;
public:
RefinedP0PreBasis (const GV& gv) :
Base(gv, [](GeometryType gt, int) { return (gt.dim()==dim) ? (1<<dim) : 0; })
{}
};
Dune::Functions::LFEPreBasisMixin::LFEPreBasisMixin
LFEPreBasisMixin(const GridView &gv, MCMGLayout layout)
Constructor for a given grid view object and layout.
Definition lfeprebasismixin.hh:75

Template Parameters

  GV | The grid view that the FE basis is defined on
  LFE | The local finite-element type

## Member Typedef Documentation

## GridView

template<class GV, class LFE>

using Dune::Functions::LFEPreBasisMixin< GV, LFE >::GridView = GV

The grid view that the FE basis is defined on.

## size_type

template<typename GV>

using Dune::Functions::LeafPreBasisMapperMixin< GV >::size_type = std::size_t

inherited

Type used for index digits.

## Constructor & Destructor Documentation

## LFEPreBasisMixin() [1/2]

template<class GV, class LFE>
template<class LFE_ = LFE, std::enable_if_t< std::is_default_constructible_v< LFE_ >, int > = 0>

Dune::Functions::LFEPreBasisMixin< GV, LFE >::LFEPreBasisMixin | ( | const GridView & | gv,
|  | MCMGLayout | layout )

inline

Constructor for a given grid view object and layout.

Requires that the local-finite element is default constructible.

## LFEPreBasisMixin() [2/2]

template<class GV, class LFE>
template<class LFE_>

Dune::Functions::LFEPreBasisMixin< GV, LFE >::LFEPreBasisMixin | ( | const GridView & | gv,
|  | LFE_ && | lfe,
|  | MCMGLayout | layout )

inline

Constructor for a given grid view object, local finite-element and layout.

Requires that the local-finite element is copyable or movable.

## Member Function Documentation

## containerDescriptor()

auto Dune::Functions::LeafPreBasisMixin< LeafPreBasisMapperMixin< GV > >::containerDescriptor | ( |  | ) | const

inline inherited

Return a flat container-descriptor.

## dimension()

template<typename GV>

size_type Dune::Functions::LeafPreBasisMapperMixin< GV >::dimension | ( |  | ) | const

inline inherited

Return total number of basis functions.

## gridView()

template<typename GV>

const GridView & Dune::Functions::LeafPreBasisMapperMixin< GV >::gridView | ( |  | ) | const

inline inherited

Export the stored GridView.

## indices()

template<typename GV>
template<class Node, class It>

It Dune::Functions::LeafPreBasisMapperMixin< GV >::indices | ( | const Node & | node,
|  | It | it ) const

inline inherited

Fill cache with global indices of DOFs associated to the given bound node.

## initializeIndices()

template<typename GV>

void Dune::Functions::LeafPreBasisMapperMixin< GV >::initializeIndices | ( |  | ) |

inline inherited

Initialize the global index information.

## makeNode()

template<class GV, class LFE>

Node Dune::Functions::LFEPreBasisMixin< GV, LFE >::makeNode | ( |  | ) | const

inline

Create tree node.

## maxNodeSize()

template<typename GV>

size_type Dune::Functions::LeafPreBasisMapperMixin< GV >::maxNodeSize | ( |  | ) | const

inline inherited

Return maximal number of basis functions per element.

## size()

size_type Dune::Functions::LeafPreBasisMixin< LeafPreBasisMapperMixin< GV > >::size | ( | const SizePrefix & | prefix | ) | const

inline inherited

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

## update()

template<typename GV>

void Dune::Functions::LeafPreBasisMapperMixin< GV >::update | ( | const GridView & | gv | ) |

inline inherited

Update the stored GridView.

## Member Data Documentation

## gridView_

template<typename GV>

GridView Dune::Functions::LeafPreBasisMapperMixin< GV >::gridView_

protected inherited

## mapper_

template<typename GV>

Dune::MultipleCodimMultipleGeomTypeMapper<GridView> Dune::Functions::LeafPreBasisMapperMixin< GV >::mapper_

protected inherited

## maxMultiIndexSize

size_type Dune::Functions::LeafPreBasisMixin< LeafPreBasisMapperMixin< GV > >::maxMultiIndexSize

static constexpr inherited

Maximal length of global multi-indices.

## maxNodeSize_

template<typename GV>

std::size_t Dune::Functions::LeafPreBasisMapperMixin< GV >::maxNodeSize_

protected inherited

## minMultiIndexSize

size_type Dune::Functions::LeafPreBasisMixin< LeafPreBasisMapperMixin< GV > >::minMultiIndexSize

static constexpr inherited

Minimal length of global multi-indices.

## multiIndexBufferSize

size_type Dune::Functions::LeafPreBasisMixin< LeafPreBasisMapperMixin< GV > >::multiIndexBufferSize

static constexpr inherited

Size required temporarily when constructing global multi-indices.

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

- lfeprebasismixin.hh