Dune-Functions 2.11
Loading...
Searching...
No Matches
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 SubDomain = SD
using SubDomainPreBasis = SDPB
using SubDomainGridView = typename SubDomainPreBasis::GridView
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.
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.
Node makeNode () const
 Create tree node.
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.
const SubDomainPreBasissubDomainPreBasis () const
SubDomainPreBasissubDomainPreBasis ()
template<typename It>
It indices (const Node &node, It it) const

Static Public Attributes

static constexpr size_type maxMultiIndexSize = SubDomainPreBasis::maxMultiIndexSize
static constexpr size_type minMultiIndexSize = SubDomainPreBasis::minMultiIndexSize
static constexpr size_type multiIndexBufferSize = SubDomainPreBasis::multiIndexBufferSize

Protected Attributes

GridView gridView_
SubDomainPreBasis subDomainPreBasis_
const SubDomainsubDomainPtr_

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

Member Typedef Documentation

◆ GridView

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

The grid view that the FE basis is defined on.

◆ size_type

template<class GV, class SDPB, class SD>
using Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::size_type = std::size_t

Type used for indices and size information.

◆ SubDomain

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

◆ SubDomainGridView

template<class GV, class SDPB, class SD>
using Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::SubDomainGridView = typename SubDomainPreBasis::GridView

◆ SubDomainPreBasis

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

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

◆ containerDescriptor()

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

Return the container descriptor of the pre-basis.

◆ dimension()

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

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

◆ gridView()

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

Obtain the grid view that the basis is defined on.

◆ indices()

template<class GV, class SDPB, class SD>
template<typename It>
It Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::indices ( const Node & node,
It it ) const
inline

◆ initializeIndices()

template<class GV, class SDPB, class SD>
void Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::initializeIndices ( )
inline

Initialize the global indices.

◆ makeNode()

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

Create tree node.

◆ maxNodeSize()

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

Get the maximal number of DOFs associated to node for any element.

◆ size() [1/2]

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

Same as size(prefix) with empty prefix.

◆ size() [2/2]

template<class GV, class SDPB, class SD>
template<class SizePrefix>
size_type Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::size ( const SizePrefix & prefix) const
inline

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

◆ subDomainPreBasis() [1/2]

template<class GV, class SDPB, class SD>
SubDomainPreBasis & Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::subDomainPreBasis ( )
inline

◆ subDomainPreBasis() [2/2]

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

◆ 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.

Member Data Documentation

◆ gridView_

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

◆ maxMultiIndexSize

template<class GV, class SDPB, class SD>
size_type Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::maxMultiIndexSize = SubDomainPreBasis::maxMultiIndexSize
staticconstexpr

◆ minMultiIndexSize

template<class GV, class SDPB, class SD>
size_type Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::minMultiIndexSize = SubDomainPreBasis::minMultiIndexSize
staticconstexpr

◆ multiIndexBufferSize

template<class GV, class SDPB, class SD>
size_type Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::multiIndexBufferSize = SubDomainPreBasis::multiIndexBufferSize
staticconstexpr

◆ subDomainPreBasis_

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

◆ subDomainPtr_

template<class GV, class SDPB, class SD>
const SubDomain* Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD >::subDomainPtr_
protected

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