10#include <compile_time_options.h>
19 template <
typename ScalarNumber =
double>
24 : ParameterAcceptor(subsection)
28 "iterations", iterations_,
"Number of limiter iterations");
34 unsigned int iterations_;
43 template <
int dim,
typename Number =
double>
92 using Bounds = std::array<Number, n_bounds>;
100 : hyperbolic_system(hyperbolic_system)
101 , parameters(parameters)
102 , precomputed_values(precomputed_values)
123 const dealii::Tensor<1, dim, Number> & ,
134 auto relaxed_bounds = bounds_;
136 return relaxed_bounds;
163 const Number = Number(0.),
164 const Number t_max = Number(1.))
166 return {t_max,
true};
dealii::Tensor< 1, problem_dimension, Number > state_type
typename get_value_type< Number >::type ScalarNumber
Vectors::MultiComponentVector< ScalarNumber, n_precomputed_values > PrecomputedVector
flux_type flux_contribution_type
ACCESSOR_READ_ONLY(iterations)
LimiterParameters(const std::string &subsection="/Limiter")
typename View::ScalarNumber ScalarNumber
static Bounds combine_bounds(const Bounds &, const Bounds &)
void accumulate(const unsigned int *, const state_type &, const flux_contribution_type &, const dealii::Tensor< 1, dim, Number > &, const state_type &)
typename View::state_type state_type
static constexpr unsigned int n_bounds
typename View::flux_contribution_type flux_contribution_type
void reset(const unsigned int, const state_type &, const flux_contribution_type &)
std::tuple< Number, bool > limit(const Bounds &, const state_type &, const state_type &, const Number=Number(0.), const Number t_max=Number(1.))
std::array< Number, n_bounds > Bounds
Bounds bounds(const Number) const
Limiter(const HyperbolicSystem &hyperbolic_system, const Parameters ¶meters, const PrecomputedVector &precomputed_values)
LimiterParameters< ScalarNumber > Parameters
typename View::PrecomputedVector PrecomputedVector
static bool is_in_invariant_domain(const HyperbolicSystem &, const Bounds &, const state_type &)