DUNE PDELab (unstable)

Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD > Class Template Reference

A pre-basis restricted to a sub-domain. More...

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

Classes

class  Node
 Template mapping root tree path to type of created tree node. 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 indices and size information.
 

Public Member Functions

 RestrictedPreBasis (const GridView &gridView, SubDomainPreBasis &&subDomainPreBasis, const SubDomain &subDomain)
 Constructor for given sub-domain pre-basis. More...
 
void initializeIndices ()
 Initialize the global indices.
 
const GridViewgridView () const
 Obtain the grid view that the basis is defined on.
 
void update (const GridView &gv)
 Update the stored grid view, to be called. More...
 
Node makeNode () const
 Create tree node with given root tree path. More...
 
size_type size () const
 Same as size(prefix) with empty prefix.
 
template<class SizePrefix >
size_type size (const SizePrefix &prefix) const
 Return number of possible values for next position in multi index.
 
auto containerDescriptor () const
 Return the container descriptor of the pre-basis.
 
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.
 

Detailed Description

template<class GV, class SDPB, class SD>
class Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >

A pre-basis restricted to a sub-domain.

This pre-basis wraps another pre-basis and restricts it to a sub-domain. The wrapped pre-basis is assumed to be defined on a sub-domain of the full grid view. Then the RestrictedPreBasis defines a pre-basis on the full grid view implemented in terms of the pre-basis on the sub-domain. Most of the methods are forwarded to the sub-domain pre-basis with two exceptions: When binding a RestrictedPreBasis::Node, this only calls subDomainNode.bind(element) if the element is contained in the sub-domain, otherwise the sizes of the node and all its descendents is set to zero. Furthermore it only calls subDomainPreBasis.indices(node,it) if node.size() is not zero.

Template Parameters
GVType of the (full) grid view this pre-basis is defined on.
SDPBType of a pre-basis defined on sub-set of the full grid view
SDType of the sub-domain

Constructor & Destructor Documentation

◆ RestrictedPreBasis()

template<class GV , class SDPB , class SD >
Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::RestrictedPreBasis ( const GridView gridView,
SubDomainPreBasis &&  subDomainPreBasis,
const SubDomain &  subDomain 
)
inline

Constructor for given sub-domain pre-basis.

The grid view and sub-domain pre-basis will be stored as copy while a pointer to the sub-domain object is stored.

Member Function Documentation

◆ makeNode()

template<class GV , class SDPB , class SD >
Node Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::makeNode ( ) const
inline

Create tree node with given root tree path.

Template Parameters
TPType of root tree path
Parameters
tpRoot tree path

By passing a non-trivial root tree path this can be used to create a node suitable for being placed in a tree at the position specified by the root tree path.

◆ update()

template<class GV , class SDPB , class SD >
void Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::update ( const GridView gv)
inline

Update the stored grid view, to be called.

This will also call subDomainPreBasis.update(subDomainPtr->gridView()) with the stored sub-domain pointer to update the sub-domain pre-basis. Hence it requires the subDomain object passed to the present pre-basis has been correctly updated externally, before calling this method.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Sep 4, 22:38, 2025)