12#include <deal.II/base/point.h>
13#include <deal.II/base/tensor.h>
19 template <
typename ScalarNumber =
double>
24 : ParameterAcceptor(subsection)
26 if constexpr (std::is_same<ScalarNumber, double>::value)
27 newton_tolerance_ = 1.e-10;
29 newton_tolerance_ = 1.e-4;
30 add_parameter(
"newton tolerance",
32 "Tolerance for the quadratic newton stopping criterion");
34 newton_max_iterations_ = 0;
35 add_parameter(
"newton max iterations",
36 newton_max_iterations_,
37 "Maximal number of quadratic newton iterations performed "
45 ScalarNumber newton_tolerance_;
46 unsigned int newton_max_iterations_;
59 template <
int dim,
typename Number =
double>
106 : hyperbolic_system(hyperbolic_system)
107 , parameters(parameters)
108 , precomputed_values(precomputed_values)
129 const unsigned int i,
130 const unsigned int *js,
131 const dealii::Tensor<1, dim, Number> &n_ij)
const;
144 Number
f(
const primitive_type &riemann_data,
const Number p_star)
const;
162 const Number p_in)
const;
172 const Number &p)
const;
199 const Number p_star)
const;
208 const Number p_star)
const;
224 const Number p_2)
const;
238 const Number p_star)
const;
273 const dealii::Tensor<1, dim, Number> &n_ij)
const;
typename get_value_type< Number >::type ScalarNumber
Vectors::MultiComponentVector< ScalarNumber, n_precomputed_values > PrecomputedVector
static constexpr unsigned int problem_dimension
dealii::Tensor< 1, problem_dimension, Number > state_type
std::array< Number, n_precomputed_values > precomputed_type
ACCESSOR_READ_ONLY(newton_tolerance)
RiemannSolverParameters(const std::string &subsection="/RiemannSolver")
ACCESSOR_READ_ONLY(newton_max_iterations)
Number phi_of_p_max(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
typename View::PrecomputedVector PrecomputedVector
Number compute_lambda(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number p_star) const
typename View::ScalarNumber ScalarNumber
Number df(const primitive_type &riemann_data, const Number &p_star) const
Number lambda1_minus(const primitive_type &riemann_data, const Number p_star) const
Number phi(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number p_in) const
Number p_star_two_rarefaction(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
primitive_type riemann_data_from_state(const state_type &U, const dealii::Tensor< 1, dim, Number > &n_ij) const
std::array< Number, 2 > compute_gap(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number p_1, const Number p_2) const
typename View::state_type state_type
Number compute(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
static constexpr auto problem_dimension
static constexpr unsigned int riemann_data_size
std::array< Number, riemann_data_size > primitive_type
Number p_star_failsafe(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
typename View::precomputed_type precomputed_type
Number dphi(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number &p) const
RiemannSolverParameters< ScalarNumber > Parameters
Number f(const primitive_type &riemann_data, const Number p_star) const
RiemannSolver(const HyperbolicSystem &hyperbolic_system, const Parameters ¶meters, const PrecomputedVector &precomputed_values)
Number lambda3_plus(const primitive_type &primitive_state, const Number p_star) const