Dune-Functions 2.11
Loading...
Searching...
No Matches
Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS > Class Template Reference

A generic implementation of a transformation. More...

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

Public Member Functions

template<class IT_R, class SI_R, class CD_R>
 GenericIndexingTransformation (IT_R &&indexTransformation, SI_R &&sizeImplementation, CD_R &&containerDescriptorImplementation)
template<class MultiIndex, class PreBasis>
void transformIndex (MultiIndex &multiIndex, const PreBasis &preBasis) const
template<class Prefix, class PreBasis>
auto size (const Prefix &prefix, const PreBasis &preBasis) const
template<class PreBasis>
auto dimension (const PreBasis &preBasis) const
template<class PreBasis>
auto containerDescriptor (const PreBasis &preBasis) const

Static Public Attributes

static constexpr std::size_t minIndexSize = minIS
static constexpr std::size_t maxIndexSize = maxIS

Detailed Description

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
class Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >

A generic implementation of a transformation.

Warning
This is experimental and may be removed or modified in a non-compatible way. When using this functionality take care to follow the dune-functions development to be aware of possible changes.

This implements the transformation based on two callbacks: One transforms an existing multi-index inplace, the other implements the size() method of the pre-basis for a given prefix. Both are passed the wrapped pre-basis as second argument.

Template Parameters
IndexTransformationCallback type for transforming multi-indices
SizeImplementationCallback type for implementation of size(prefix)
minISMinimal multi-index size
maxISMaximal multi-index size. Notice that this has to large enough to also store the untransformed indices.

Constructor & Destructor Documentation

◆ GenericIndexingTransformation()

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
template<class IT_R, class SI_R, class CD_R>
Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::GenericIndexingTransformation ( IT_R && indexTransformation,
SI_R && sizeImplementation,
CD_R && containerDescriptorImplementation )
inline

Member Function Documentation

◆ containerDescriptor()

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
template<class PreBasis>
auto Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::containerDescriptor ( const PreBasis & preBasis) const
inline

◆ dimension()

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
template<class PreBasis>
auto Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::dimension ( const PreBasis & preBasis) const
inline

◆ size()

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
template<class Prefix, class PreBasis>
auto Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::size ( const Prefix & prefix,
const PreBasis & preBasis ) const
inline

◆ transformIndex()

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
template<class MultiIndex, class PreBasis>
void Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::transformIndex ( MultiIndex & multiIndex,
const PreBasis & preBasis ) const
inline

Member Data Documentation

◆ maxIndexSize

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
std::size_t Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::maxIndexSize = maxIS
staticconstexpr

◆ minIndexSize

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIS, std::size_t maxIS>
std::size_t Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, ContainerDescriptorImplementation, minIS, maxIS >::minIndexSize = minIS
staticconstexpr

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