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::Godunov< EquationT, RiemannSolverT > Class Template Reference

#include <GodunovMethod.hpp>

Public Types

using Equation = EquationT
 
using RiemannSolver = RiemannSolverT
 
using Complete = typename Equation::Complete
 
using Conservative = typename Equation::Conservative
 
using CompleteArray = ::fub::CompleteArray< Equation >
 
using ConservativeArray = ::fub::ConservativeArray< Equation >
 

Public Member Functions

 Godunov (const Equation &equation)
 
 Godunov (const Equation &equation, const RiemannSolver &solver)
 
const EquationGetEquation () const noexcept
 
EquationGetEquation () noexcept
 
const RiemannSolverGetRiemannSolver () const noexcept
 
RiemannSolverGetRiemannSolver () noexcept
 
void ComputeNumericFlux (Conservative &numeric_flux, span< const Complete, 2 > states, Duration, double, Direction dir)
 
void ComputeNumericFlux (ConservativeArray &numeric_flux, span< const CompleteArray, 2 > states, Duration, double, Direction dir)
 
void ComputeNumericFlux (ConservativeArray &numeric_flux, Array1d face_fraction, span< const CompleteArray, 2 > states, span< const Array1d, 2 > volume_fraction, Duration, double, Direction dir)
 
double ComputeStableDt (span< const Complete, 2 > states, 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)
 

Static Public Member Functions

static constexpr int GetStencilWidth () noexcept
 

Private Attributes

Equation equation_
 
RiemannSolver riemann_solver_
 
Complete riemann_solution_
 
CompleteArray riemann_solution_arr_
 

Member Typedef Documentation

◆ Complete

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
using fub::Godunov< EquationT, RiemannSolverT >::Complete = typename Equation::Complete

◆ CompleteArray

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
using fub::Godunov< EquationT, RiemannSolverT >::CompleteArray = ::fub::CompleteArray<Equation>

◆ Conservative

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
using fub::Godunov< EquationT, RiemannSolverT >::Conservative = typename Equation::Conservative

◆ ConservativeArray

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
using fub::Godunov< EquationT, RiemannSolverT >::ConservativeArray = ::fub::ConservativeArray<Equation>

◆ Equation

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
using fub::Godunov< EquationT, RiemannSolverT >::Equation = EquationT

◆ RiemannSolver

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
using fub::Godunov< EquationT, RiemannSolverT >::RiemannSolver = RiemannSolverT

Constructor & Destructor Documentation

◆ Godunov() [1/2]

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
fub::Godunov< EquationT, RiemannSolverT >::Godunov ( const Equation equation)
inline

◆ Godunov() [2/2]

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
fub::Godunov< EquationT, RiemannSolverT >::Godunov ( const Equation equation,
const RiemannSolver solver 
)
inline

Member Function Documentation

◆ ComputeNumericFlux() [1/3]

template<typename Equation , typename RiemannSolver >
void fub::Godunov< Equation, RiemannSolver >::ComputeNumericFlux ( Conservative numeric_flux,
span< const Complete, 2 >  states,
Duration  ,
double  ,
Direction  dir 
)

◆ ComputeNumericFlux() [2/3]

template<typename Equation , typename RiemannSolver >
void fub::Godunov< Equation, RiemannSolver >::ComputeNumericFlux ( ConservativeArray numeric_flux,
Array1d  face_fraction,
span< const CompleteArray, 2 >  states,
span< const Array1d, 2 >  volume_fraction,
Duration  ,
double  ,
Direction  dir 
)

◆ ComputeNumericFlux() [3/3]

template<typename Equation , typename RiemannSolver >
void fub::Godunov< Equation, RiemannSolver >::ComputeNumericFlux ( ConservativeArray numeric_flux,
span< const CompleteArray, 2 >  states,
Duration  ,
double  ,
Direction  dir 
)

◆ ComputeStableDt() [1/3]

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

◆ ComputeStableDt() [2/3]

template<typename Equation , typename RiemannSolver >
Array1d fub::Godunov< Equation, RiemannSolver >::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 RiemannSolver >
Array1d fub::Godunov< Equation, RiemannSolver >::ComputeStableDt ( span< const CompleteArray, 2 >  states,
double  dx,
Direction  dir 
)

◆ GetEquation() [1/2]

template<typename Equation , typename RiemannSolver >
const Equation & fub::Godunov< Equation, RiemannSolver >::GetEquation
noexcept

◆ GetEquation() [2/2]

template<typename Equation , typename RiemannSolver >
Equation & fub::Godunov< Equation, RiemannSolver >::GetEquation
noexcept

◆ GetRiemannSolver() [1/2]

template<typename Equation , typename RiemannSolver >
const RiemannSolver & fub::Godunov< Equation, RiemannSolver >::GetRiemannSolver
noexcept

◆ GetRiemannSolver() [2/2]

template<typename Equation , typename RiemannSolver >
RiemannSolver & fub::Godunov< Equation, RiemannSolver >::GetRiemannSolver
noexcept

◆ GetStencilWidth()

template<typename Equation , typename RiemannSolver >
constexpr int fub::Godunov< Equation, RiemannSolver >::GetStencilWidth
staticconstexprnoexcept

Member Data Documentation

◆ equation_

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
Equation fub::Godunov< EquationT, RiemannSolverT >::equation_
private

◆ riemann_solution_

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
Complete fub::Godunov< EquationT, RiemannSolverT >::riemann_solution_
private

◆ riemann_solution_arr_

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
CompleteArray fub::Godunov< EquationT, RiemannSolverT >::riemann_solution_arr_
private

◆ riemann_solver_

template<typename EquationT , typename RiemannSolverT = ExactRiemannSolver<EquationT>>
RiemannSolver fub::Godunov< EquationT, RiemannSolverT >::riemann_solver_
private

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