ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
List of all members
ryujin::ScalarConservation::RiemannSolver< dim, Number > Class Template Reference

#include <source/scalar_conservation/riemann_solver.h>

Typedefs and constexpr constants

using View = HyperbolicSystemView< dim, Number >
 
using ScalarNumber = typename View::ScalarNumber
 
using state_type = typename View::state_type
 
using precomputed_type = typename View::precomputed_type
 
using PrecomputedVector = typename View::PrecomputedVector
 
using Parameters = RiemannSolverParameters< ScalarNumber >
 
static constexpr auto problem_dimension = View::problem_dimension
 

Compute wavespeed estimates

 RiemannSolver (const HyperbolicSystem &hyperbolic_system, const Parameters &parameters, const PrecomputedVector &precomputed_values)
 
Number compute (const Number &u_i, const Number &u_j, const precomputed_type &prec_i, const precomputed_type &prec_j, const dealii::Tensor< 1, dim, Number > &n_ij) const
 
Number compute (const state_type &U_i, const state_type &U_j, const unsigned int i, const unsigned int *js, const dealii::Tensor< 1, dim, Number > &n_ij) const
 

Detailed Description

template<int dim, typename Number = double>
class ryujin::ScalarConservation::RiemannSolver< dim, Number >

A fast estimate for a sufficient maximal wavespeed of the 1D Riemann problem. The wavespeed estimate is based on a guaranteed upper bound on the maximal wavespeed for convex fluxes, see Example 79.17 on page 333 of [GuermondErn2021]. As well as an augmented "Roe average" based on an entropy inequality of a suitable Krŭzkov entropy, see [7] Section 4.

Definition at line 75 of file riemann_solver.h.

Member Typedef Documentation

◆ View

template<int dim, typename Number = double>
using ryujin::ScalarConservation::RiemannSolver< dim, Number >::View = HyperbolicSystemView<dim, Number>

Definition at line 83 of file riemann_solver.h.

◆ ScalarNumber

template<int dim, typename Number = double>
using ryujin::ScalarConservation::RiemannSolver< dim, Number >::ScalarNumber = typename View::ScalarNumber

Definition at line 85 of file riemann_solver.h.

◆ state_type

template<int dim, typename Number = double>
using ryujin::ScalarConservation::RiemannSolver< dim, Number >::state_type = typename View::state_type

Definition at line 89 of file riemann_solver.h.

◆ precomputed_type

template<int dim, typename Number = double>
using ryujin::ScalarConservation::RiemannSolver< dim, Number >::precomputed_type = typename View::precomputed_type

Definition at line 91 of file riemann_solver.h.

◆ PrecomputedVector

template<int dim, typename Number = double>
using ryujin::ScalarConservation::RiemannSolver< dim, Number >::PrecomputedVector = typename View::PrecomputedVector

Definition at line 93 of file riemann_solver.h.

◆ Parameters

template<int dim, typename Number = double>
using ryujin::ScalarConservation::RiemannSolver< dim, Number >::Parameters = RiemannSolverParameters<ScalarNumber>

Definition at line 95 of file riemann_solver.h.

Constructor & Destructor Documentation

◆ RiemannSolver()

template<int dim, typename Number = double>
ryujin::ScalarConservation::RiemannSolver< dim, Number >::RiemannSolver ( const HyperbolicSystem hyperbolic_system,
const Parameters parameters,
const PrecomputedVector precomputed_values 
)
inline

Constructor taking a HyperbolicSystem instance as argument

Definition at line 107 of file riemann_solver.h.

Member Function Documentation

◆ compute() [1/2]

template<int dim, typename Number >
Number ryujin::ScalarConservation::RiemannSolver< dim, Number >::compute ( const Number &  u_i,
const Number &  u_j,
const precomputed_type prec_i,
const precomputed_type prec_j,
const dealii::Tensor< 1, dim, Number > &  n_ij 
) const

For two states u_i, u_j, precomputed values prec_i, prec_j, and a (normalized) "direction" n_ij compute an upper bound estimate for the wavespeed.

Definition at line 23 of file riemann_solver.template.h.

Referenced by ryujin::HyperbolicModule< Description, dim, Number >::step().

◆ compute() [2/2]

template<int dim, typename Number >
DEAL_II_ALWAYS_INLINE Number ryujin::ScalarConservation::RiemannSolver< dim, Number >::compute ( const state_type U_i,
const state_type U_j,
const unsigned int  i,
const unsigned int *  js,
const dealii::Tensor< 1, dim, Number > &  n_ij 
) const
inline

For two given states U_i a U_j and a (normalized) "direction" n_ij compute an estimate for an upper bound of lambda.

Definition at line 196 of file riemann_solver.template.h.

Member Data Documentation

◆ problem_dimension

template<int dim, typename Number = double>
constexpr auto ryujin::ScalarConservation::RiemannSolver< dim, Number >::problem_dimension = View::problem_dimension
staticconstexpr

Definition at line 87 of file riemann_solver.h.


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