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

  IndexTransformation | Callback type for transforming multi-indices
  SizeImplementation | Callback type for implementation of size(prefix)
  minIS | Minimal multi-index size
  maxIS | Maximal 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

static constexpr

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

static constexpr

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

- transformedindexbasis.hh