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 | Public Attributes | List of all members
fub::perfect_gas::Hllem< EulerEquation, Larrouturou > Struct Template Reference

#include <HllemMethod.hpp>

Public Types

using Conservative = ::fub::Conservative< EulerEquation >
 
using Complete = ::fub::Complete< EulerEquation >
 
using ConservativeArray = ::fub::ConservativeArray< EulerEquation >
 
using CompleteArray = ::fub::CompleteArray< EulerEquation >
 

Public Member Functions

 Hllem (const EulerEquation &equation)
 
const EulerEquation & GetEquation () const noexcept
 
void ComputeNumericFlux (Conservative &flux, span< const Complete, 2 > stencil, Duration dt, double dx, Direction dir)
 
void ComputeNumericFlux (ConservativeArray &flux, Array1d face_fractions, span< const CompleteArray, 2 > stencil, span< const Array1d, 2 > volume_fractions, Duration dt, double dx, Direction dir)
 
void ComputeNumericFlux (ConservativeArray &flux, span< const CompleteArray, 2 > stencil, Duration dt, double dx, 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 >, double dx, Direction dir)
 
void SolveRiemannProblem (Complete &solution, const Complete &left, const Complete &right, Direction dir)
 

Static Public Member Functions

static constexpr int GetStencilWidth () noexcept
 

Public Attributes

EulerEquation equation_
 
Complete left_
 
Complete right_
 
Conservative fluxL_
 
Conservative fluxR_
 
Conservative flux_hlle_
 
Conservative w_hlle_
 
Conservative w_hllem_
 
CompleteArray left_array_
 
CompleteArray right_array_
 
ConservativeArray fluxL_array_
 
ConservativeArray fluxR_array_
 
ConservativeArray flux_hlle_array_
 

Member Typedef Documentation

◆ Complete

template<typename EulerEquation , bool Larrouturou = true>
using fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::Complete = ::fub::Complete<EulerEquation>

◆ CompleteArray

template<typename EulerEquation , bool Larrouturou = true>
using fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::CompleteArray = ::fub::CompleteArray<EulerEquation>

◆ Conservative

template<typename EulerEquation , bool Larrouturou = true>
using fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::Conservative = ::fub::Conservative<EulerEquation>

◆ ConservativeArray

template<typename EulerEquation , bool Larrouturou = true>
using fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ConservativeArray = ::fub::ConservativeArray<EulerEquation>

Constructor & Destructor Documentation

◆ Hllem()

template<typename EulerEquation , bool Larrouturou = true>
fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::Hllem ( const EulerEquation &  equation)
inline

Member Function Documentation

◆ ComputeNumericFlux() [1/3]

template<typename EulerEquation , bool Larrouturou = true>
void fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ComputeNumericFlux ( Conservative flux,
span< const Complete, 2 >  stencil,
Duration  dt,
double  dx,
Direction  dir 
)

◆ ComputeNumericFlux() [2/3]

template<typename EulerEquation , bool Larrouturou = true>
void fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ComputeNumericFlux ( ConservativeArray flux,
Array1d  face_fractions,
span< const CompleteArray, 2 >  stencil,
span< const Array1d, 2 >  volume_fractions,
Duration  dt,
double  dx,
Direction  dir 
)

◆ ComputeNumericFlux() [3/3]

template<typename EulerEquation , bool Larrouturou = true>
void fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ComputeNumericFlux ( ConservativeArray flux,
span< const CompleteArray, 2 >  stencil,
Duration  dt,
double  dx,
Direction  dir 
)

◆ ComputeStableDt() [1/3]

template<typename EulerEquation , bool Larrouturou = true>
double fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ComputeStableDt ( span< const Complete, 2 >  states,
double  dx,
Direction  dir 
)

◆ ComputeStableDt() [2/3]

template<typename EulerEquation , bool Larrouturou = true>
Array1d fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ComputeStableDt ( span< const CompleteArray, 2 >  states,
Array1d  face_fraction,
span< const Array1d, 2 >  ,
double  dx,
Direction  dir 
)

◆ ComputeStableDt() [3/3]

template<typename EulerEquation , bool Larrouturou = true>
Array1d fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::ComputeStableDt ( span< const CompleteArray, 2 >  states,
double  dx,
Direction  dir 
)

◆ GetEquation()

template<typename EulerEquation , bool Larrouturou = true>
const EulerEquation& fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::GetEquation ( ) const
inlinenoexcept

◆ GetStencilWidth()

template<typename EulerEquation , bool Larrouturou = true>
static constexpr int fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::GetStencilWidth ( )
inlinestaticconstexprnoexcept

◆ SolveRiemannProblem()

template<typename EulerEquation , bool Larrouturou = true>
void fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::SolveRiemannProblem ( Complete solution,
const Complete left,
const Complete right,
Direction  dir 
)

Member Data Documentation

◆ equation_

template<typename EulerEquation , bool Larrouturou = true>
EulerEquation fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::equation_

◆ flux_hlle_

template<typename EulerEquation , bool Larrouturou = true>
Conservative fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::flux_hlle_

◆ flux_hlle_array_

template<typename EulerEquation , bool Larrouturou = true>
ConservativeArray fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::flux_hlle_array_

◆ fluxL_

template<typename EulerEquation , bool Larrouturou = true>
Conservative fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::fluxL_

◆ fluxL_array_

template<typename EulerEquation , bool Larrouturou = true>
ConservativeArray fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::fluxL_array_

◆ fluxR_

template<typename EulerEquation , bool Larrouturou = true>
Conservative fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::fluxR_

◆ fluxR_array_

template<typename EulerEquation , bool Larrouturou = true>
ConservativeArray fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::fluxR_array_

◆ left_

template<typename EulerEquation , bool Larrouturou = true>
Complete fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::left_

◆ left_array_

template<typename EulerEquation , bool Larrouturou = true>
CompleteArray fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::left_array_

◆ right_

template<typename EulerEquation , bool Larrouturou = true>
Complete fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::right_

◆ right_array_

template<typename EulerEquation , bool Larrouturou = true>
CompleteArray fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::right_array_

◆ w_hlle_

template<typename EulerEquation , bool Larrouturou = true>
Conservative fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::w_hlle_

◆ w_hllem_

template<typename EulerEquation , bool Larrouturou = true>
Conservative fub::perfect_gas::Hllem< EulerEquation, Larrouturou >::w_hllem_

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