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) 
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.