1 #include "parameters/parameters_limiter.h" 11 prm.enter_subsection(
"limiter");
13 prm.declare_entry(
"use_OOA",
"false",
14 dealii::Patterns::Bool(),
15 "Does not perform Convergence Test by default. Otherwise, performs Convergence Test.");
17 prm.declare_entry(
"bound_preserving_limiter",
"none",
18 dealii::Patterns::Selection(
20 "maximum_principle | " 21 "positivity_preservingZhang2010 | " 22 "positivity_preservingWang2012 "),
23 "The type of limiter we want to apply to the solution. " 26 " maximum_principle | " 27 " positivity_preservingZhang2010 | " 28 " positivity_preservingWang2012>.");
30 prm.declare_entry(
"min_density",
"1e-13",
31 dealii::Patterns::Double(1e-20, 1e200),
32 "Lower bound for density used in Positivity-Preserving Limiter. Small value greater than zero, less than solution at all times.");
34 prm.declare_entry(
"use_tvb_limiter",
"false",
35 dealii::Patterns::Bool(),
36 "Applies TVB Limiter to solution. Tune M and h to obtain favourable results.");
38 prm.declare_entry(
"max_delta_x",
"1.0",
39 dealii::Patterns::Double(0, 1e200),
40 "Maximum delta_x required for minmod function within TVB Limiter.");
42 using convert_tensor = dealii::Patterns::Tools::Convert<dealii::Tensor<1, 4, double>>;
43 prm.declare_entry(
"tuning_parameter_for_each_state",
"0,0,0,0",
44 *convert_tensor::to_pattern(),
45 "TVB Limiter tuning parameters for each state. Set to 0 if TVD is required.");
47 prm.leave_subsection();
52 prm.enter_subsection(
"limiter");
54 use_OOA = prm.get_bool(
"use_OOA");
56 const std::string bound_preserving_limiter_string = prm.get(
"bound_preserving_limiter");
58 if (bound_preserving_limiter_string ==
"maximum_principle")
bound_preserving_limiter = LimiterType::maximum_principle;
59 if (bound_preserving_limiter_string ==
"positivity_preservingZhang2010")
bound_preserving_limiter = LimiterType::positivity_preservingZhang2010;
60 if (bound_preserving_limiter_string ==
"positivity_preservingWang2012")
bound_preserving_limiter = LimiterType::positivity_preservingWang2012;
67 using convert_tensor = dealii::Patterns::Tools::Convert<dealii::Tensor<1, 4, double>>;
70 prm.leave_subsection();
LimiterType bound_preserving_limiter
Variable to store specified limiter type.
LimiterParam()
Constructor.
double min_density
Epsilon value for Positivity-Preserving Limiter.
double max_delta_x
Maximum delta_x for TVB Limiter.
void parse_parameters(dealii::ParameterHandler &prm)
Function to parse parameters.
Files for the baseline physics.
bool use_OOA
Flag to perform convergence analysis for Limiter Tests (ie. burgers_limiter, advection_limiter, low_density_2d)
bool use_tvb_limiter
Flag for applying TVB Limiter.
dealii::Tensor< 1, 4, double > tuning_parameter_for_each_state
Tuning parameters for TVB Limiter.
static void declare_parameters(dealii::ParameterHandler &prm)
Function to declare parameters.