8#include <compile_time_options.h>
14#include <deal.II/base/point.h>
15#include <deal.II/base/tensor.h>
19 namespace ScalarConservation
21 template <
typename ScalarNumber =
double>
26 : ParameterAcceptor(subsection)
28 use_greedy_wavespeed_ =
false;
29 add_parameter(
"use greedy wavespeed",
30 use_greedy_wavespeed_,
31 "Use a greedy wavespeed estimate instead of a guaranteed "
33 "on the maximal wavespeed (for convex fluxes).");
35 use_averaged_entropy_ =
false;
36 add_parameter(
"use averaged entropy",
37 use_averaged_entropy_,
38 "In addition to the wavespeed estimate based on the Roe "
40 "flux gradients of the left and right state also enforce "
42 "inequality on the averaged Krŭzkov entropy.");
44 random_entropies_ = 0;
48 "In addition to the wavespeed estimate based on the Roe average "
50 "flux gradients of the left and right state also enforce an "
52 "inequality on the prescribed number of random Krŭzkov entropies.");
60 bool use_greedy_wavespeed_;
61 bool use_averaged_entropy_;
62 unsigned int random_entropies_;
76 template <
int dim,
typename Number =
double>
112 : hyperbolic_system(hyperbolic_system)
113 , parameters(parameters)
114 , precomputed_values(precomputed_values)
123 Number
compute(
const Number &u_i,
127 const dealii::Tensor<1, dim, Number> &n_ij)
const;
135 const unsigned int i,
136 const unsigned int *js,
137 const dealii::Tensor<1, dim, Number> &n_ij)
const;
static constexpr unsigned int problem_dimension
std::array< Number, n_precomputed_values > precomputed_type
Vectors::MultiComponentVector< ScalarNumber, n_precomputed_values > PrecomputedVector
typename get_value_type< Number >::type ScalarNumber
dealii::Tensor< 1, problem_dimension, Number > state_type
ACCESSOR_READ_ONLY(use_greedy_wavespeed)
ACCESSOR_READ_ONLY(use_averaged_entropy)
ACCESSOR_READ_ONLY(random_entropies)
RiemannSolverParameters(const std::string &subsection="/RiemannSolver")
typename View::state_type state_type
typename View::ScalarNumber ScalarNumber
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
typename View::PrecomputedVector PrecomputedVector
RiemannSolver(const HyperbolicSystem &hyperbolic_system, const Parameters ¶meters, const PrecomputedVector &precomputed_values)
typename View::precomputed_type precomputed_type
RiemannSolverParameters< ScalarNumber > Parameters
static constexpr auto problem_dimension