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::HllArrayBase< Equation, SignalSpeeds, true > Class Template Reference

#include <HllMethod.hpp>

Public Types

using ConservativeArray = ::fub::ConservativeArray< Equation >
 
using CompleteArray = ::fub::CompleteArray< Equation >
 
using Base = HllBase< Equation, SignalSpeeds >
 
using Equation = Equation
 
using Complete = typename Equation::Complete
 
using Conservative = typename Equation::Conservative
 

Public Member Functions

void SolveRiemannProblem (CompleteArray &solution, const CompleteArray &left, const CompleteArray &right, Direction dir)
 
void ComputeNumericFlux (ConservativeArray &numeric_flux, span< const CompleteArray, 2 > states, Duration dt, double dx, Direction dir)
 
void ComputeNumericFlux (ConservativeArray &numeric_flux, Array1d face_fraction, span< const CompleteArray, 2 > states, span< const Array1d, 2 > volume_fraction, Duration dt, double dx, Direction dir)
 
Array1d ComputeStableDt (span< const CompleteArray, 2 > states, double dx, Direction dir)
 
Array1d ComputeStableDt (span< const CompleteArray, 2 > states, Array1d face_fraction, span< const Array1d, 2 > volume_fraction, double dx, Direction dir)
 
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

ConservativeArray flux_left_array_
 
ConservativeArray flux_right_array_
 
Equation equation_
 
SignalSpeeds signal_speeds_
 
Conservative flux_left_
 
Conservative flux_right_
 

Member Typedef Documentation

◆ Base

template<typename Equation , typename SignalSpeeds >
using fub::HllArrayBase< Equation, SignalSpeeds, true >::Base = HllBase<Equation, SignalSpeeds>

◆ Complete

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

◆ CompleteArray

template<typename Equation , typename SignalSpeeds >
using fub::HllArrayBase< Equation, SignalSpeeds, true >::CompleteArray = ::fub::CompleteArray<Equation>

◆ Conservative

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

◆ ConservativeArray

template<typename Equation , typename SignalSpeeds >
using fub::HllArrayBase< Equation, SignalSpeeds, true >::ConservativeArray = ::fub::ConservativeArray<Equation>

◆ Equation

using fub::HllBase< Equation , SignalSpeeds >::Equation = Equation
inherited

Member Function Documentation

◆ ComputeNumericFlux() [1/3]

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

◆ ComputeNumericFlux() [2/3]

template<typename Equation , typename SignalSpeeds >
void fub::HllArrayBase< Equation, SignalSpeeds, true >::ComputeNumericFlux ( ConservativeArray numeric_flux,
Array1d  face_fraction,
span< const CompleteArray, 2 >  states,
span< const Array1d, 2 >  volume_fraction,
Duration  dt,
double  dx,
Direction  dir 
)

◆ ComputeNumericFlux() [3/3]

template<typename Equation , typename SignalSpeeds >
void fub::HllArrayBase< Equation, SignalSpeeds, true >::ComputeNumericFlux ( ConservativeArray numeric_flux,
span< const CompleteArray, 2 >  states,
Duration  dt,
double  dx,
Direction  dir 
)

◆ ComputeStableDt() [1/3]

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

◆ ComputeStableDt() [2/3]

template<typename Equation , typename SignalSpeeds >
Array1d fub::HllArrayBase< Equation, SignalSpeeds, true >::ComputeStableDt ( span< const CompleteArray, 2 >  states,
Array1d  face_fraction,
span< const Array1d, 2 >  volume_fraction,
double  dx,
Direction  dir 
)

◆ ComputeStableDt() [3/3]

template<typename Equation , typename SignalSpeeds >
Array1d fub::HllArrayBase< Equation, SignalSpeeds, true >::ComputeStableDt ( span< const CompleteArray, 2 >  states,
double  dx,
Direction  dir 
)

◆ GetEquation() [1/2]

const Equation& fub::HllBase< Equation , SignalSpeeds >::GetEquation ( ) const
inlinenoexceptinherited

Returns the underlying equations object.

◆ GetEquation() [2/2]

Equation& fub::HllBase< Equation , SignalSpeeds >::GetEquation ( )
inlinenoexceptinherited

Returns the underlying equations object.

◆ GetSignalSpeeds() [1/2]

const SignalSpeeds& fub::HllBase< Equation , SignalSpeeds >::GetSignalSpeeds ( ) const
inlinenoexceptinherited

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

◆ GetSignalSpeeds() [2/2]

SignalSpeeds& fub::HllBase< Equation , SignalSpeeds >::GetSignalSpeeds ( )
inlinenoexceptinherited

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

◆ GetStencilWidth()

static constexpr int fub::HllBase< Equation , SignalSpeeds >::GetStencilWidth ( )
inlinestaticconstexprnoexceptinherited

Returns the stencil width of this method.

◆ SolveRiemannProblem() [1/2]

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

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.

◆ SolveRiemannProblem() [2/2]

template<typename Equation , typename SignalSpeeds >
void fub::HllArrayBase< Equation, SignalSpeeds, true >::SolveRiemannProblem ( CompleteArray solution,
const CompleteArray left,
const CompleteArray right,
Direction  dir 
)

Member Data Documentation

◆ equation_

Equation fub::HllBase< Equation , SignalSpeeds >::equation_
privateinherited

◆ flux_left_

Conservative fub::HllBase< Equation , SignalSpeeds >::flux_left_
privateinherited

◆ flux_left_array_

template<typename Equation , typename SignalSpeeds >
ConservativeArray fub::HllArrayBase< Equation, SignalSpeeds, true >::flux_left_array_
private

◆ flux_right_

Conservative fub::HllBase< Equation , SignalSpeeds >::flux_right_
privateinherited

◆ flux_right_array_

template<typename Equation , typename SignalSpeeds >
ConservativeArray fub::HllArrayBase< Equation, SignalSpeeds, true >::flux_right_array_
private

◆ signal_speeds_

SignalSpeeds fub::HllBase< Equation , SignalSpeeds >::signal_speeds_
privateinherited

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