21 #ifndef FUB_EQUATIONS_PERFECT_GAS_HLLEM_HPP
22 #define FUB_EQUATIONS_PERFECT_GAS_HLLEM_HPP
30 template <
typename EulerEquation,
bool Larrouturou = true>
struct Hllem {
83 extern template struct Hllem<PerfectGas<1>,
false>;
84 extern template struct Hllem<PerfectGas<2>,
false>;
85 extern template struct Hllem<PerfectGas<3>,
false>;
87 extern template struct Hllem<PerfectGas<1>,
true>;
88 extern template struct Hllem<PerfectGas<2>,
true>;
89 extern template struct Hllem<PerfectGas<3>,
true>;
92 template <
typename EulerEquation,
bool Larrouturou = true>
This class applies a base flux nethod on a view of states.
Definition: flux_method/FluxMethod.hpp:57
A span is a view over a contiguous sequence of objects, the storage of which is owned by some other o...
Definition: span.hpp:81
Definition: perfect_gas/HllemMethod.hpp:27
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
Array< double, 1 > Array1d
Definition: Eigen.hpp:53
Direction
This is a type safe type to denote a dimensional split direction.
Definition: Direction.hpp:30
Definition: perfect_gas/HllemMethod.hpp:30
void SolveRiemannProblem(Complete &solution, const Complete &left, const Complete &right, Direction dir)
static constexpr int GetStencilWidth() noexcept
Definition: perfect_gas/HllemMethod.hpp:40
ConservativeArray fluxR_array_
Definition: perfect_gas/HllemMethod.hpp:79
void ComputeNumericFlux(Conservative &flux, span< const Complete, 2 > stencil, Duration dt, double dx, Direction dir)
Conservative w_hllem_
Definition: perfect_gas/HllemMethod.hpp:74
Conservative flux_hlle_
Definition: perfect_gas/HllemMethod.hpp:72
Complete left_
Definition: perfect_gas/HllemMethod.hpp:68
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)
Hllem(const EulerEquation &equation)
Definition: perfect_gas/HllemMethod.hpp:36
Conservative w_hlle_
Definition: perfect_gas/HllemMethod.hpp:73
Conservative fluxR_
Definition: perfect_gas/HllemMethod.hpp:71
ConservativeArray fluxL_array_
Definition: perfect_gas/HllemMethod.hpp:78
const EulerEquation & GetEquation() const noexcept
Definition: perfect_gas/HllemMethod.hpp:38
CompleteArray left_array_
Definition: perfect_gas/HllemMethod.hpp:76
ConservativeArray flux_hlle_array_
Definition: perfect_gas/HllemMethod.hpp:80
double ComputeStableDt(span< const Complete, 2 > states, double dx, Direction dir)
CompleteArray right_array_
Definition: perfect_gas/HllemMethod.hpp:77
Conservative fluxL_
Definition: perfect_gas/HllemMethod.hpp:70
void ComputeNumericFlux(ConservativeArray &flux, Array1d face_fractions, span< const CompleteArray, 2 > stencil, span< const Array1d, 2 > volume_fractions, Duration dt, double dx, Direction dir)
EulerEquation equation_
Definition: perfect_gas/HllemMethod.hpp:67
void ComputeNumericFlux(ConservativeArray &flux, span< const CompleteArray, 2 > stencil, Duration dt, double dx, Direction dir)
Complete right_
Definition: perfect_gas/HllemMethod.hpp:69