Dune-Functions 2.11
Loading...
Searching...
No Matches
Dune::Functions::LFEPreBasisMixin< GV, LFE > Class Template Reference

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

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 GridViewgridView () 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< GridViewmapper_
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>;
static const int dim = GV::dimension;
public:
RefinedP0PreBasis (const GV& gv) :
Base(gv, [](GeometryType gt, int) { return (gt.dim()==dim) ? (1<<dim) : 0; })
{}
};
LFEPreBasisMixin(const GridView &gv, MCMGLayout layout)
Constructor for a given grid view object and layout.
Definition lfeprebasismixin.hh:75
Template Parameters
GVThe grid view that the FE basis is defined on
LFEThe 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()

Return a flat container-descriptor.

◆ dimension()

template<typename GV>
size_type Dune::Functions::LeafPreBasisMapperMixin< GV >::dimension ( ) const
inlineinherited

Return total number of basis functions.

◆ gridView()

template<typename GV>
const GridView & Dune::Functions::LeafPreBasisMapperMixin< GV >::gridView ( ) const
inlineinherited

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
inlineinherited

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

◆ initializeIndices()

template<typename GV>
void Dune::Functions::LeafPreBasisMapperMixin< GV >::initializeIndices ( )
inlineinherited

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
inlineinherited

Return maximal number of basis functions per element.

◆ size()

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

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

◆ update()

template<typename GV>
void Dune::Functions::LeafPreBasisMapperMixin< GV >::update ( const GridView & gv)
inlineinherited

Update the stored GridView.

Member Data Documentation

◆ gridView_

template<typename GV>
GridView Dune::Functions::LeafPreBasisMapperMixin< GV >::gridView_
protectedinherited

◆ mapper_

template<typename GV>
Dune::MultipleCodimMultipleGeomTypeMapper<GridView> Dune::Functions::LeafPreBasisMapperMixin< GV >::mapper_
protectedinherited

◆ maxMultiIndexSize

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

Maximal length of global multi-indices.

◆ maxNodeSize_

template<typename GV>
std::size_t Dune::Functions::LeafPreBasisMapperMixin< GV >::maxNodeSize_
protectedinherited

◆ minMultiIndexSize

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

Minimal length of global multi-indices.

◆ multiIndexBufferSize

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

Size required temporarily when constructing global multi-indices.


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