dune-functions 2.9.0
Public Member Functions | Static Public Attributes | List of all members
Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, 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 >
 GenericIndexingTransformation (IT_R &&indexTransformation, SI_R &&sizeImplementation)
 
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
 

Static Public Attributes

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

Detailed Description

template<class IndexTransformation, class SizeImplementation, std::size_t minIS, std::size_t maxIS>
class Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, 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 , std::size_t minIS, std::size_t maxIS>
template<class IT_R , class SI_R >
Dune::Functions::BasisFactory::Experimental::GenericIndexingTransformation< IndexTransformation, SizeImplementation, minIS, maxIS >::GenericIndexingTransformation ( IT_R &&  indexTransformation,
SI_R &&  sizeImplementation 
)
inline

Member Function Documentation

◆ dimension()

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

◆ size()

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

◆ transformIndex()

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

Member Data Documentation

◆ maxIndexSize

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

◆ minIndexSize

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

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