Dune-Functions 2.11
Loading...
Searching...
No Matches
Dune::Functions::BasisFactory::Experimental Namespace Reference

Classes

class  PeriodicIndexSet
 Container storing identified indices for a periodic basis. More...
class  GenericIndexingTransformation
 A generic implementation of a transformation. More...

Functions

template<class RawPreBasisIndicator, class PIS>
auto periodic (RawPreBasisIndicator &&rawPreBasisIndicator, PIS &&periodicIndexSet)
 Create a pre-basis factory that can create a periodic pre-basis.
template<class RawPreBasisFactory, class Transformation>
auto transformIndices (RawPreBasisFactory &&preBasisFactory, Transformation &&transformation)
 Create a TransformedIndexPreBasisFactory.
template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIndexSize, std::size_t maxIndexSize>
auto indexTransformation (IndexTransformation &&indexTransformation, SizeImplementation &&sizeImplementation, ContainerDescriptorImplementation &&containerDescriptorImplementation, Dune::index_constant< minIndexSize >, Dune::index_constant< maxIndexSize >)
 A generic implementation of a transformation.
template<class IndexTransformation, class SizeImplementation, std::size_t minIndexSize, std::size_t maxIndexSize>
auto indexTransformation (IndexTransformation &&indexTrafo, SizeImplementation &&sizeImpl, Dune::index_constant< minIndexSize > minSize, Dune::index_constant< maxIndexSize > maxSize)
 Fallback implementation if no container descriptor argument is given.

Function Documentation

◆ indexTransformation() [1/2]

template<class IndexTransformation, class SizeImplementation, std::size_t minIndexSize, std::size_t maxIndexSize>
auto Dune::Functions::BasisFactory::Experimental::indexTransformation ( IndexTransformation && indexTrafo,
SizeImplementation && sizeImpl,
Dune::index_constant< minIndexSize > minSize,
Dune::index_constant< maxIndexSize > maxSize )

Fallback implementation if no container descriptor argument is given.

◆ indexTransformation() [2/2]

template<class IndexTransformation, class SizeImplementation, class ContainerDescriptorImplementation, std::size_t minIndexSize, std::size_t maxIndexSize>
auto Dune::Functions::BasisFactory::Experimental::indexTransformation ( IndexTransformation && indexTransformation,
SizeImplementation && sizeImplementation,
ContainerDescriptorImplementation && containerDescriptorImplementation,
Dune::index_constant< minIndexSize > ,
Dune::index_constant< maxIndexSize >  )

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 an index-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)
ContainerDescriptorImplementationCallback type for implementation of containerDescriptor()
minISMinimal multi-index size
maxISMaximal multi-index size. Notice that this has to be large enough to also store the untransformed indices.

◆ transformIndices()

template<class RawPreBasisFactory, class Transformation>
auto Dune::Functions::BasisFactory::Experimental::transformIndices ( RawPreBasisFactory && preBasisFactory,
Transformation && transformation )

Create a TransformedIndexPreBasisFactory.

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.
Parameters
preBasisFactoryA PreBasisFactory creating the wrapped pre-basis
transformationThe transformation object