dune-functions 2.9.0
Classes | Public Types | Public Member Functions | List of all members
Dune::Functions::HierarchicVectorWrapper< V, CO > Class Template Reference

A wrapper providing multiindex access to vector entries. More...

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

Public Types

using Vector = V
 
template<class MultiIndex >
using Entry = Coefficient< MultiIndex >
 

Public Member Functions

 HierarchicVectorWrapper (Vector &vector)
 
template<class SizeProvider >
void resize (const SizeProvider &sizeProvider)
 
template<class MultiIndex >
const Entry< MultiIndex > & operator[] (const MultiIndex &index) const
 
template<class MultiIndex >
Entry< MultiIndex > & operator[] (const MultiIndex &index)
 
template<class MultiIndex >
const Entry< MultiIndex > & operator() (const MultiIndex &index) const
 
template<class MultiIndex >
Entry< MultiIndex > & operator() (const MultiIndex &index)
 
const Vectorvector () const
 
Vectorvector ()
 

Detailed Description

template<class V, class CO = Imp::DeducedCoefficientTag>
class Dune::Functions::HierarchicVectorWrapper< V, CO >

A wrapper providing multiindex access to vector entries.

The coefficient type should be a type such that the coefficients entries for each global basis function can be cast to this type. This is necessary because the wrapper cannot determine this type automatically for multi-type containers and non-uniform indices. The reason for this is, that the multi-index type will then be dynamically sized such that the index depth cannot statically be determined from the multi-indices. However, the compiler needs a fixed termination criterion for instantiation of recursive functions.

If no coefficient type is given, the wrapper tries to determine the coefficient type on its own assuming that the multi-indices have fixed size.

Template Parameters
VType of the raw wrapper vector
COCoefficient type

Member Typedef Documentation

◆ Entry

template<class V , class CO = Imp::DeducedCoefficientTag>
template<class MultiIndex >
using Dune::Functions::HierarchicVectorWrapper< V, CO >::Entry = Coefficient<MultiIndex>

◆ Vector

template<class V , class CO = Imp::DeducedCoefficientTag>
using Dune::Functions::HierarchicVectorWrapper< V, CO >::Vector = V

Constructor & Destructor Documentation

◆ HierarchicVectorWrapper()

template<class V , class CO = Imp::DeducedCoefficientTag>
Dune::Functions::HierarchicVectorWrapper< V, CO >::HierarchicVectorWrapper ( Vector vector)
inline

Member Function Documentation

◆ operator()() [1/2]

template<class V , class CO = Imp::DeducedCoefficientTag>
template<class MultiIndex >
Entry< MultiIndex > & Dune::Functions::HierarchicVectorWrapper< V, CO >::operator() ( const MultiIndex &  index)
inline

◆ operator()() [2/2]

template<class V , class CO = Imp::DeducedCoefficientTag>
template<class MultiIndex >
const Entry< MultiIndex > & Dune::Functions::HierarchicVectorWrapper< V, CO >::operator() ( const MultiIndex &  index) const
inline

◆ operator[]() [1/2]

template<class V , class CO = Imp::DeducedCoefficientTag>
template<class MultiIndex >
Entry< MultiIndex > & Dune::Functions::HierarchicVectorWrapper< V, CO >::operator[] ( const MultiIndex &  index)
inline

◆ operator[]() [2/2]

template<class V , class CO = Imp::DeducedCoefficientTag>
template<class MultiIndex >
const Entry< MultiIndex > & Dune::Functions::HierarchicVectorWrapper< V, CO >::operator[] ( const MultiIndex &  index) const
inline

◆ resize()

template<class V , class CO = Imp::DeducedCoefficientTag>
template<class SizeProvider >
void Dune::Functions::HierarchicVectorWrapper< V, CO >::resize ( const SizeProvider &  sizeProvider)
inline

◆ vector() [1/2]

template<class V , class CO = Imp::DeducedCoefficientTag>
Vector & Dune::Functions::HierarchicVectorWrapper< V, CO >::vector ( )
inline

◆ vector() [2/2]

template<class V , class CO = Imp::DeducedCoefficientTag>
const Vector & Dune::Functions::HierarchicVectorWrapper< V, CO >::vector ( ) const
inline

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