Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Types | Private Attributes | List of all members
fub::AnyTaggingMethod< GriddingAlgorithm > Class Template Reference

This class is a polymorphic value type that stores objects which satisfies the TaggingMethod<GriddingAlgorithm> concept. More...

#include <AnyTaggingMethod.hpp>

Public Types

using TagDataHandle = typename GridTraits< GriddingAlgorithm >::TagDataHandle
 

Public Member Functions

Constructors
 AnyTaggingMethod ()=default
 This constructs a method that does nothing on invocation. More...
 
template<typename T , typename = std::enable_if_t<!decays_to<T, AnyTaggingMethod>()>>
 AnyTaggingMethod (T &&tag)
 Stores any object which satisfies the tagging method concept. More...
 
 AnyTaggingMethod (const AnyTaggingMethod &other)
 Copies the implementation. More...
 
AnyTaggingMethodoperator= (const AnyTaggingMethod &other)
 Copies the implementation. More...
 
 AnyTaggingMethod (AnyTaggingMethod &&other) noexcept=default
 Moves the other object without allocating and leaves an empty method. More...
 
AnyTaggingMethodoperator= (AnyTaggingMethod &&other) noexcept=default
 Moves the other object without allocating and leaves an empty method. More...
 
Member functions
void TagCellsForRefinement (TagDataHandle tags, GriddingAlgorithm &gridding, int level, Duration t)
 Mask cells that need further refinement in a regridding procedure. More...
 

Private Attributes

std::unique_ptr< TaggingMethodStrategy_< GriddingAlgorithm > > tag_
 

Detailed Description

template<typename GriddingAlgorithm>
class fub::AnyTaggingMethod< GriddingAlgorithm >

This class is a polymorphic value type that stores objects which satisfies the TaggingMethod<GriddingAlgorithm> concept.

Member Typedef Documentation

◆ TagDataHandle

template<typename GriddingAlgorithm >
using fub::AnyTaggingMethod< GriddingAlgorithm >::TagDataHandle = typename GridTraits<GriddingAlgorithm>::TagDataHandle

Constructor & Destructor Documentation

◆ AnyTaggingMethod() [1/4]

template<typename GriddingAlgorithm >
fub::AnyTaggingMethod< GriddingAlgorithm >::AnyTaggingMethod ( )
default

This constructs a method that does nothing on invocation.

◆ AnyTaggingMethod() [2/4]

template<typename GriddingAlgorithm >
template<typename T , typename >
fub::AnyTaggingMethod< GriddingAlgorithm >::AnyTaggingMethod ( T &&  tag)

Stores any object which satisfies the tagging method concept.

◆ AnyTaggingMethod() [3/4]

template<typename GriddingAlgorithm >
fub::AnyTaggingMethod< GriddingAlgorithm >::AnyTaggingMethod ( const AnyTaggingMethod< GriddingAlgorithm > &  other)

Copies the implementation.

◆ AnyTaggingMethod() [4/4]

template<typename GriddingAlgorithm >
fub::AnyTaggingMethod< GriddingAlgorithm >::AnyTaggingMethod ( AnyTaggingMethod< GriddingAlgorithm > &&  other)
defaultnoexcept

Moves the other object without allocating and leaves an empty method.

Member Function Documentation

◆ operator=() [1/2]

template<typename GriddingAlgorithm >
AnyTaggingMethod& fub::AnyTaggingMethod< GriddingAlgorithm >::operator= ( AnyTaggingMethod< GriddingAlgorithm > &&  other)
defaultnoexcept

Moves the other object without allocating and leaves an empty method.

◆ operator=() [2/2]

template<typename GriddingAlgorithm >
AnyTaggingMethod< GriddingAlgorithm > & fub::AnyTaggingMethod< GriddingAlgorithm >::operator= ( const AnyTaggingMethod< GriddingAlgorithm > &  other)

Copies the implementation.

◆ TagCellsForRefinement()

template<typename GriddingAlgorithm >
void fub::AnyTaggingMethod< GriddingAlgorithm >::TagCellsForRefinement ( TagDataHandle  tags,
GriddingAlgorithm &  gridding,
int  level,
Duration  t 
)

Mask cells that need further refinement in a regridding procedure.

Member Data Documentation

◆ tag_

template<typename GriddingAlgorithm >
std::unique_ptr<TaggingMethodStrategy_<GriddingAlgorithm> > fub::AnyTaggingMethod< GriddingAlgorithm >::tag_
private

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