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::AnyInitialData< GriddingAlgorithm > Class Template Reference

This class is a polymoprhic value type which stores components to initialize a gridding algorithm during its initialization procedure. More...

#include <AnyInitialData.hpp>

Public Types

using PatchLevel = typename GridTraits< GriddingAlgorithm >::PatchLevel
 

Public Member Functions

Constructors
 AnyInitialData ()=default
 Constructs an empty object that does no initialization. More...
 
template<typename T , typename = std::enable_if_t< !decays_to<T, AnyInitialData<GriddingAlgorithm>>()>>
 AnyInitialData (T &&initial_data)
 Stores and wraps the initial_data object. More...
 
 AnyInitialData (const AnyInitialData &other)
 Copies the other implementation and invokes a memory allocation. More...
 
AnyInitialDataoperator= (const AnyInitialData &other)
 Copies the other implementation and invokes a memory allocation. More...
 
 AnyInitialData (AnyInitialData &&) noexcept=default
 Moves the other implementation without allocation and leaves an empty object. More...
 
AnyInitialDataoperator= (AnyInitialData &&) noexcept=default
 Moves the other implementation without allocation and leaves an empty object. More...
 
Actions
void InitializeData (PatchLevel &patch_level, const GriddingAlgorithm &grid, int level, Duration time)
 Initializes a patch level within a gridding algorithm. More...
 

Private Attributes

std::unique_ptr< detail::InitialDataStrategy< GriddingAlgorithm > > initial_data_
 

Detailed Description

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

This class is a polymoprhic value type which stores components to initialize a gridding algorithm during its initialization procedure.

Member Typedef Documentation

◆ PatchLevel

template<typename GriddingAlgorithm >
using fub::AnyInitialData< GriddingAlgorithm >::PatchLevel = typename GridTraits<GriddingAlgorithm>::PatchLevel

Constructor & Destructor Documentation

◆ AnyInitialData() [1/4]

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

Constructs an empty object that does no initialization.

◆ AnyInitialData() [2/4]

template<typename GriddingAlgorithm >
template<typename T , typename >
fub::AnyInitialData< GriddingAlgorithm >::AnyInitialData ( T &&  initial_data)

Stores and wraps the initial_data object.

◆ AnyInitialData() [3/4]

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

Copies the other implementation and invokes a memory allocation.

◆ AnyInitialData() [4/4]

template<typename GriddingAlgorithm >
fub::AnyInitialData< GriddingAlgorithm >::AnyInitialData ( AnyInitialData< GriddingAlgorithm > &&  )
defaultnoexcept

Moves the other implementation without allocation and leaves an empty object.

Member Function Documentation

◆ InitializeData()

template<typename GriddingAlgorithm >
void fub::AnyInitialData< GriddingAlgorithm >::InitializeData ( PatchLevel patch_level,
const GriddingAlgorithm &  grid,
int  level,
Duration  time 
)

Initializes a patch level within a gridding algorithm.

Note
In cases where a gridding algorithm needs to rebuild a level, the InitializeData function might be invoked multiple times for the level.

◆ operator=() [1/2]

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

Moves the other implementation without allocation and leaves an empty object.

◆ operator=() [2/2]

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

Copies the other implementation and invokes a memory allocation.

Member Data Documentation

◆ initial_data_

template<typename GriddingAlgorithm >
std::unique_ptr<detail::InitialDataStrategy<GriddingAlgorithm> > fub::AnyInitialData< GriddingAlgorithm >::initial_data_
private

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