8#include <compile_time_options.h>
15#include <deal.II/base/point.h>
16#include <deal.II/base/tensor.h>
22 template <
int dim,
typename Number =
double>
23 class WaveSpeedEstimatorView;
34 template <
typename ScalarNumber =
double>
47 template <
int dim,
typename Number =
double>
60 const std::string &subsection =
"/WaveSpeedEstimator")
61 : ParameterAcceptor(subsection)
62 , hyperbolic_system_(&hyperbolic_system)
77 template <
int dim,
typename Number>
81 hyperbolic_system_->template view<dim, Number>(), *
this};
91 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
105 template <
int dim,
typename Number>
152 , wave_speed_estimator_(wave_speed_estimator)
172 const unsigned int i,
173 const unsigned int *js,
174 const dealii::Tensor<1, dim, Number> &n_ij)
const;
189 Number
c(
const Number &gamma_Z)
const;
197 alpha(
const Number &rho,
const Number &gamma,
const Number &a)
const;
245 Number f(
const primitive_type &riemann_data,
const Number p_star)
const;
253 const Number p_in)
const;
281 const Number p_star)
const;
290 const Number p_star)
const;
304 const Number p_star)
const;
317 const dealii::Tensor<1, dim, Number> &n_ij)
const;
dealii::Tensor< 1, problem_dimension, Number > state_type
Vectors::MultiComponentVectorView< ScalarNumber, n_precomputed_values, dealii::VectorizedArray< ScalarNumber >::size(), dealii::MemorySpace::Host, false > PrecomputedVectorView
typename get_value_type< Number >::type ScalarNumber
static constexpr unsigned int problem_dimension
std::array< Number, n_precomputed_values > precomputed_type
static constexpr auto problem_dimension
typename View::ScalarNumber ScalarNumber
primitive_type riemann_data_from_state(const state_type &U, const Number &p, const dealii::Tensor< 1, dim, Number > &n_ij) const
Number alpha(const Number &rho, const Number &gamma, const Number &a) const
WaveSpeedEstimatorView(const View &view, const WaveSpeedEstimator< ScalarNumber > &wave_speed_estimator)
typename View::PrecomputedVectorView PrecomputedVectorView
static constexpr unsigned int riemann_data_size
Number phi_of_p_max(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
typename View::precomputed_type precomputed_type
Number p_star_SS_full(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
typename View::state_type state_type
typename std::array< Number, riemann_data_size > primitive_type
Number p_star_interpolated(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
Number c(const Number &gamma_Z) const
Number compute_lambda(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number p_star) const
HyperbolicSystemView< dim, Number > View
Number p_star_failsafe(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
Number lambda3_plus(const primitive_type &primitive_state, const Number p_star) const
Number p_star_RS_full(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
Number lambda1_minus(const primitive_type &riemann_data, const Number p_star) const
Number compute(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
WaveSpeedEstimator(const HyperbolicSystem &hyperbolic_system, const std::string &subsection="/WaveSpeedEstimator")