DUNE PDELab (git)

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

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

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. More...
 
template<class LFE_ >
 LFEPreBasisMixin (const GridView &gv, LFE_ &&lfe, MCMGLayout layout)
 Constructor for a given grid view object, local finite-element and layout. More...
 
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.
 

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>>
{
static const int dim = GV::dimension;
public:
RefinedP0PreBasis (const GV& gv) :
Base(gv, [](GeometryType gt, int) { return (gt.dim()==dim) ? (1<<dim) : 0; })
{}
};
A pre-basis mixin class parametrized with a local finite-element and a DOF layout.
Definition: lfeprebasismixin.hh:57
A generic MixIn class for PreBasis with flat indices computed from a mapper.
Definition: leafprebasismappermixin.hh:62
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:114
Local finite element that is piecewise P0 on a once uniformly refined reference geometry.
Definition: refinedp0.hh:29
bool gt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first greater than second
Definition: float_cmp.cc:158
Template Parameters
GVThe grid view that the FE basis is defined on
LFEThe local finite-element type

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.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 12, 23:30, 2024)