Loading...
Searching...
No Matches
Dune::Functions::Experimental::RestrictedPreBasis< GV, SDPB, SD > Class Template Reference
Function space bases » Function space basis implementations

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 GridView & | gridView () 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 SubDomainPreBasis & | subDomainPreBasis () const
SubDomainPreBasis & | subDomainPreBasis ()
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 SubDomain * | subDomainPtr_

## 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

  GV | Type of the (full) grid view this pre-basis is defined on.
  SDPB | Type of a pre-basis defined on sub-set of the full grid view
  SD | Type 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

static constexpr

## minMultiIndexSize

template<class GV, class SDPB, class SD>

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

static constexpr

## multiIndexBufferSize

template<class GV, class SDPB, class SD>

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

static constexpr

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

- restrictedbasis.hh