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

This is a polymorphic wrapper class for FluxMethod strategies used by IntegratorContext. More...

#include <HyperbolicMethod.hpp>

Public Member Functions

 AnyFluxMethod ()=delete
 
 AnyFluxMethod (const AnyFluxMethod &other)
 
AnyFluxMethodoperator= (const AnyFluxMethod &other)
 
 AnyFluxMethod (AnyFluxMethod &&other) noexcept=default
 
AnyFluxMethodoperator= (AnyFluxMethod &&other) noexcept=default
 
template<typename R , typename = std::enable_if_t<!decays_to<R, AnyFluxMethod>()>>
 AnyFluxMethod (R &&r)
 
Duration ComputeStableDt (IntegratorContext &context, int level, Direction dir)
 
void PreAdvanceHierarchy (IntegratorContext &context)
 
void ComputeNumericFluxes (IntegratorContext &context, int level, Duration dt, Direction dir)
 
int GetStencilWidth () const
 
template<typename I , typename >
 AnyFluxMethod (I &&flux_method)
 

Private Attributes

std::unique_ptr< detail::FluxMethodBase< IntegratorContext > > flux_method_
 

Detailed Description

template<typename IntegratorContext>
class fub::AnyFluxMethod< IntegratorContext >

This is a polymorphic wrapper class for FluxMethod strategies used by IntegratorContext.

Constructor & Destructor Documentation

◆ AnyFluxMethod() [1/5]

template<typename IntegratorContext >
fub::AnyFluxMethod< IntegratorContext >::AnyFluxMethod ( )
delete

◆ AnyFluxMethod() [2/5]

template<typename IntegratorContext >
fub::AnyFluxMethod< IntegratorContext >::AnyFluxMethod ( const AnyFluxMethod< IntegratorContext > &  other)

◆ AnyFluxMethod() [3/5]

template<typename IntegratorContext >
fub::AnyFluxMethod< IntegratorContext >::AnyFluxMethod ( AnyFluxMethod< IntegratorContext > &&  other)
defaultnoexcept

◆ AnyFluxMethod() [4/5]

template<typename IntegratorContext >
template<typename R , typename = std::enable_if_t<!decays_to<R, AnyFluxMethod>()>>
fub::AnyFluxMethod< IntegratorContext >::AnyFluxMethod ( R &&  r)

◆ AnyFluxMethod() [5/5]

template<typename IntegratorContext >
template<typename I , typename >
fub::AnyFluxMethod< IntegratorContext >::AnyFluxMethod ( I &&  flux_method)

Member Function Documentation

◆ ComputeNumericFluxes()

template<typename IntegratorContext >
void fub::AnyFluxMethod< IntegratorContext >::ComputeNumericFluxes ( IntegratorContext &  context,
int  level,
Duration  dt,
Direction  dir 
)

◆ ComputeStableDt()

template<typename IntegratorContext >
Duration fub::AnyFluxMethod< IntegratorContext >::ComputeStableDt ( IntegratorContext &  context,
int  level,
Direction  dir 
)

◆ GetStencilWidth()

template<typename IntegratorContext >
int fub::AnyFluxMethod< IntegratorContext >::GetStencilWidth

◆ operator=() [1/2]

template<typename IntegratorContext >
AnyFluxMethod& fub::AnyFluxMethod< IntegratorContext >::operator= ( AnyFluxMethod< IntegratorContext > &&  other)
defaultnoexcept

◆ operator=() [2/2]

template<typename IntegratorContext >
AnyFluxMethod< IntegratorContext > & fub::AnyFluxMethod< IntegratorContext >::operator= ( const AnyFluxMethod< IntegratorContext > &  other)

◆ PreAdvanceHierarchy()

template<typename IntegratorContext >
void fub::AnyFluxMethod< IntegratorContext >::PreAdvanceHierarchy ( IntegratorContext &  context)

Member Data Documentation

◆ flux_method_

template<typename IntegratorContext >
std::unique_ptr<detail::FluxMethodBase<IntegratorContext> > fub::AnyFluxMethod< IntegratorContext >::flux_method_
private

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