dune-functions 2.10
Loading...
Searching...
No Matches
Classes | Functions
Dune::Functions::BasisFactory::Experimental Namespace Reference

Classes

class  GenericIndexingTransformation
 A generic implementation of a transformation. More...
 
class  PeriodicIndexSet
 Container storing identified indices for a periodic basis. 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 
)
protected

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 >   
)
protected

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 
)
protected

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