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>
77 using Bounds = std::array<Number, n_bounds>;
85 : hyperbolic_system(hyperbolic_system)
86 , parameters(parameters)
87 , precomputed_values(precomputed_values)
149 const dealii::Tensor<1, dim, Number> & ,
160 auto relaxed_bounds = bounds_;
162 return relaxed_bounds;
178 const Number = Number(0.),
179 const Number t_max = Number(1.))
181 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
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
Bounds combine_bounds(const Bounds &, const Bounds &) const
Limiter(const HyperbolicSystem &hyperbolic_system, const Parameters ¶meters, const PrecomputedVector &precomputed_values)
Bounds projection_bounds_from_state(const unsigned int, const state_type &) const
LimiterParameters< ScalarNumber > Parameters
typename View::PrecomputedVector PrecomputedVector