10#include <compile_time_options.h>
17#include <deal.II/base/point.h>
18#include <deal.II/base/tensor.h>
22 namespace ShallowWater
24 template <
int dim,
typename Number =
double>
25 class WaveSpeedEstimatorView;
35 template <
typename ScalarNumber =
double>
48 template <
int dim,
typename Number =
double>
61 const std::string &subsection =
"/WaveSpeedEstimator")
62 : ParameterAcceptor(subsection)
63 , hyperbolic_system_(&hyperbolic_system)
78 template <
int dim,
typename Number>
82 hyperbolic_system_->template view<dim, Number>(), *
this};
92 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
106 template <
int dim,
typename Number>
153 , 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;
184 const Number &h_star)
const;
188 const Number &h)
const;
191 const Number h_star)
const;
194 const Number h_star)
const;
198 const Number h_star)
const;
207 const dealii::Tensor<1, dim, Number> &n_ij)
const;
typename get_value_type< Number >::type ScalarNumber
dealii::Tensor< 1, problem_dimension, Number > state_type
Vectors::MultiComponentVectorView< ScalarNumber, n_precomputed_values, dealii::VectorizedArray< ScalarNumber >::size(), dealii::MemorySpace::Host, false > PrecomputedVectorView
std::array< Number, n_precomputed_values > precomputed_type
static constexpr unsigned int problem_dimension
typename View::PrecomputedVectorView PrecomputedVectorView
Number compute(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
typename View::ScalarNumber ScalarNumber
WaveSpeedEstimatorView(const View &view, const WaveSpeedEstimator< ScalarNumber > &wave_speed_estimator)
Number compute_h_star(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j) const
Number compute_lambda(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number h_star) const
static constexpr auto problem_dimension
HyperbolicSystemView< dim, Number > View
static constexpr unsigned int riemann_data_size
typename View::state_type state_type
Number f(const primitive_type &primitive_state, const Number &h_star) const
Number lambda1_minus(const primitive_type &riemann_data, const Number h_star) const
Number phi(const primitive_type &riemann_data_i, const primitive_type &riemann_data_j, const Number &h) const
typename View::precomputed_type precomputed_type
typename std::array< Number, riemann_data_size > primitive_type
Number lambda3_plus(const primitive_type &riemann_data, const Number h_star) const
WaveSpeedEstimator(const HyperbolicSystem &hyperbolic_system, const std::string &subsection="/WaveSpeedEstimator")