dune-functions 2.10
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
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.
 
size_type size () const
 Get the total dimension of the space spanned by this basis.
 
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; })
{}
};
A generic MixIn class for PreBasis with flat indices computed from a mapper.
Definition leafprebasismappermixin.hh:62
A pre-basis mixin class parametrized with a local finite-element and a DOF layout.
Definition lfeprebasismixin.hh:57
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()

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

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() [1/2]

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

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

◆ size() [2/2]

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

constexpr 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

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

Minimal length of global multi-indices.

◆ multiIndexBufferSize

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