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 | Static Public Member Functions | Private Attributes | List of all members
fub::HllBase< Eq, SignalSpeeds > Class Template Reference

#include <HllMethod.hpp>

Public Types

using Equation = Eq
 
using Complete = typename Equation::Complete
 
using Conservative = typename Equation::Conservative
 

Public Member Functions

 HllBase (const Equation &eq, const SignalSpeeds &signals=SignalSpeeds())
 
void SolveRiemannProblem (Complete &solution, const Complete &left, const Complete &right, Direction dir)
 Computes an approximate solution to the rieman problem defined by left and right states. More...
 
void ComputeNumericFlux (Conservative &numeric_flux, span< const Complete, 2 > states, Duration dt, double dx, Direction dir)
 
double ComputeStableDt (span< const Complete, 2 > states, double dx, Direction dir)
 
const SignalSpeeds & GetSignalSpeeds () const noexcept
 Returns the strategy object which computes the signal speeds for this method. More...
 
SignalSpeeds & GetSignalSpeeds () noexcept
 Returns the strategy object which computes the signal speeds for this method. More...
 
const EquationGetEquation () const noexcept
 Returns the underlying equations object. More...
 
EquationGetEquation () noexcept
 Returns the underlying equations object. More...
 

Static Public Member Functions

static constexpr int GetStencilWidth () noexcept
 Returns the stencil width of this method. More...
 

Private Attributes

Equation equation_
 
SignalSpeeds signal_speeds_
 
Conservative flux_left_
 
Conservative flux_right_
 

Member Typedef Documentation

◆ Complete

template<typename Eq , typename SignalSpeeds >
using fub::HllBase< Eq, SignalSpeeds >::Complete = typename Equation::Complete

◆ Conservative

template<typename Eq , typename SignalSpeeds >
using fub::HllBase< Eq, SignalSpeeds >::Conservative = typename Equation::Conservative

◆ Equation

template<typename Eq , typename SignalSpeeds >
using fub::HllBase< Eq, SignalSpeeds >::Equation = Eq

Constructor & Destructor Documentation

◆ HllBase()

template<typename Eq , typename SignalSpeeds >
fub::HllBase< Eq, SignalSpeeds >::HllBase ( const Equation eq,
const SignalSpeeds &  signals = SignalSpeeds() 
)
inline

Member Function Documentation

◆ ComputeNumericFlux()

template<typename Equation , typename SignalSpeeds >
void fub::HllBase< Equation, SignalSpeeds >::ComputeNumericFlux ( Conservative numeric_flux,
span< const Complete, 2 >  states,
Duration  dt,
double  dx,
Direction  dir 
)

◆ ComputeStableDt()

template<typename Equation , typename SignalSpeeds >
double fub::HllBase< Equation, SignalSpeeds >::ComputeStableDt ( span< const Complete, 2 >  states,
double  dx,
Direction  dir 
)

◆ GetEquation() [1/2]

template<typename Eq , typename SignalSpeeds >
const Equation& fub::HllBase< Eq, SignalSpeeds >::GetEquation ( ) const
inlinenoexcept

Returns the underlying equations object.

◆ GetEquation() [2/2]

template<typename Eq , typename SignalSpeeds >
Equation& fub::HllBase< Eq, SignalSpeeds >::GetEquation ( )
inlinenoexcept

Returns the underlying equations object.

◆ GetSignalSpeeds() [1/2]

template<typename Eq , typename SignalSpeeds >
const SignalSpeeds& fub::HllBase< Eq, SignalSpeeds >::GetSignalSpeeds ( ) const
inlinenoexcept

Returns the strategy object which computes the signal speeds for this method.

◆ GetSignalSpeeds() [2/2]

template<typename Eq , typename SignalSpeeds >
SignalSpeeds& fub::HllBase< Eq, SignalSpeeds >::GetSignalSpeeds ( )
inlinenoexcept

Returns the strategy object which computes the signal speeds for this method.

◆ GetStencilWidth()

template<typename Eq , typename SignalSpeeds >
static constexpr int fub::HllBase< Eq, SignalSpeeds >::GetStencilWidth ( )
inlinestaticconstexprnoexcept

Returns the stencil width of this method.

◆ SolveRiemannProblem()

template<typename Equation , typename SignalSpeeds >
void fub::HllBase< Equation, SignalSpeeds >::SolveRiemannProblem ( Complete solution,
const Complete left,
const Complete right,
Direction  dir 
)

Computes an approximate solution to the rieman problem defined by left and right states.

Parameters
[out]solutionThe solution to the riemann problem will be stored here.
[in]leftThe left state of the riemann problem
[in]rightThe right state of the riemann problem.
[in]dirThe direction in which the riemann problem will be solved.

Member Data Documentation

◆ equation_

template<typename Eq , typename SignalSpeeds >
Equation fub::HllBase< Eq, SignalSpeeds >::equation_
private

◆ flux_left_

template<typename Eq , typename SignalSpeeds >
Conservative fub::HllBase< Eq, SignalSpeeds >::flux_left_
private

◆ flux_right_

template<typename Eq , typename SignalSpeeds >
Conservative fub::HllBase< Eq, SignalSpeeds >::flux_right_
private

◆ signal_speeds_

template<typename Eq , typename SignalSpeeds >
SignalSpeeds fub::HllBase< Eq, SignalSpeeds >::signal_speeds_
private

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