Finite Volume Solver  prototype
A framework to build finite volume solvers for the AG Klein at the Freie Universität Berlin.
Public Types | Public Member Functions | List of all members
fub::samrai::FluxMethodAdapter< Tag, BaseMethod > Class Template Reference

This is a wrapper class which dispatches a given base method object and dispatches SAMRAI typed patches. More...

#include <FluxMethodAdapter.hpp>

Public Types

using Equation = std::decay_t< decltype(std::declval< const BaseMethod & >().GetEquation())>
 
using Conservative = ::fub::Conservative< Equation >
 
using Complete = ::fub::Complete< Equation >
 

Public Member Functions

 FluxMethodAdapter (Tag, const BaseMethod &base)
 
 FluxMethodAdapter (Tag, BaseMethod &&base)
 
Duration ComputeStableDt (IntegratorContext &context, int level, Direction dir)
 Extracts the state variables patch data views including its ghost cells and compute a stable time step size in specified direction and refinement level. More...
 
void ComputeNumericFluxes (IntegratorContext &context, int level, Duration dt, Direction dir)
 
void ComputeNumericFluxes (span< SAMRAI::pdat::SideData< double > * > fluxes, span< SAMRAI::pdat::CellData< double > const * > cells, double dx, Duration dt, Direction dir)
 
Duration ComputeStableDt (span< SAMRAI::pdat::CellData< double > const * > data, double dx, Direction dir)
 

Detailed Description

template<typename Tag, typename BaseMethod>
class fub::samrai::FluxMethodAdapter< Tag, BaseMethod >

This is a wrapper class which dispatches a given base method object and dispatches SAMRAI typed patches.

The base method is expected to act on View objects of equation states.

Member Typedef Documentation

◆ Complete

template<typename Tag , typename BaseMethod >
using fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::Complete = ::fub::Complete<Equation>

◆ Conservative

template<typename Tag , typename BaseMethod >
using fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::Conservative = ::fub::Conservative<Equation>

◆ Equation

template<typename Tag , typename BaseMethod >
using fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::Equation = std::decay_t<decltype(std::declval<const BaseMethod&>().GetEquation())>

Constructor & Destructor Documentation

◆ FluxMethodAdapter() [1/2]

template<typename Tag , typename BaseMethod >
fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::FluxMethodAdapter ( Tag  ,
const BaseMethod &  base 
)
inline

◆ FluxMethodAdapter() [2/2]

template<typename Tag , typename BaseMethod >
fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::FluxMethodAdapter ( Tag  ,
BaseMethod &&  base 
)
inline

Member Function Documentation

◆ ComputeNumericFluxes() [1/2]

template<typename Tag , typename BaseMethod >
void fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::ComputeNumericFluxes ( IntegratorContext context,
int  level,
fub::Duration  dt,
fub::Direction  dir 
)

◆ ComputeNumericFluxes() [2/2]

template<typename Tag , typename BaseMethod >
void fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::ComputeNumericFluxes ( span< SAMRAI::pdat::SideData< double > * >  fluxes,
span< SAMRAI::pdat::CellData< double > const * >  cells,
double  dx,
Duration  dt,
Direction  dir 
)

◆ ComputeStableDt() [1/2]

template<typename Tag , typename BaseMethod >
Duration fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::ComputeStableDt ( IntegratorContext context,
int  level,
Direction  dir 
)

Extracts the state variables patch data views including its ghost cells and compute a stable time step size in specified direction and refinement level.

Precondition
This method expects the ghost cells to be filled with proper boundary data.

◆ ComputeStableDt() [2/2]

template<typename Tag , typename BaseMethod >
Duration fub::samrai::FluxMethodAdapter< Tag, BaseMethod >::ComputeStableDt ( span< SAMRAI::pdat::CellData< double > const * >  data,
double  dx,
Direction  dir 
)

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