1 #include "parameters/parameters_reduced_order.h"     7     prm.enter_subsection(
"reduced order");
     9         prm.declare_entry(
"adaptation_tolerance", 
"1",
    10                           dealii::Patterns::Double(0, dealii::Patterns::Double::max_double_value),
    11                           "Tolerance for POD adaptation");
    12         prm.declare_entry(
"path_to_search", 
".",
    13                           dealii::Patterns::FileName(dealii::Patterns::FileName::FileType::input),
    14                           "Path to search for saved snapshots or POD basis.");
    15         prm.declare_entry(
"reduced_residual_tolerance", 
"1E-13",
    16                           dealii::Patterns::Double(0, dealii::Patterns::Double::max_double_value),
    17                           "Tolerance for nonlinear reduced residual");
    18         prm.declare_entry(
"num_halton", 
"0",
    19                           dealii::Patterns::Integer(0, dealii::Patterns::Integer::max_int_value),
    20                           "Number of Halton sequence points to add to initial snapshot set");
    21         prm.declare_entry(
"file_path_for_snapshot_locations", 
"",
    22                           dealii::Patterns::FileName(dealii::Patterns::FileName::FileType::input),
    23                           "Path to search for lhs snapshots (should contain snapshot_table)");
    24         prm.declare_entry(
"recomputation_coefficient", 
"5",
    25                           dealii::Patterns::Integer(0, dealii::Patterns::Integer::max_int_value),
    26                           "Number of Halton sequence points to add to initial snapshot set");
    27         prm.declare_entry(
"parameter_names", 
"mach, alpha",
    28                           dealii::Patterns::List(dealii::Patterns::Anything(), 0, 10, 
","),
    29                           "Names of parameters for adaptive sampling");
    30         prm.declare_entry(
"parameter_min_values", 
"0.4, 0",
    31                           dealii::Patterns::List(dealii::Patterns::Double(), 0, 10, 
","),
    32                           "Minimum values for parameters");
    33         prm.declare_entry(
"parameter_max_values", 
"0.7, 4",
    34                           dealii::Patterns::List(dealii::Patterns::Double(), 0, 10, 
","),
    35                           "Maximum values for parameters");
    36         prm.declare_entry(
"number_modes", 
"0",
    37                           dealii::Patterns::Integer(0, dealii::Patterns::Integer::max_int_value),
    38                           "Number of modes used in the POD Basis");
    39         prm.declare_entry(
"singular_value_threshold", 
"1",
    40                           dealii::Patterns::Double(0, dealii::Patterns::Double::max_double_value),
    41                           "Threshold for the Singular Value cutoff");
    42         prm.declare_entry(
"output_snapshot_every_x_timesteps",
"0",
    43                           dealii::Patterns::Integer(0,dealii::Patterns::Integer::max_int_value),
    44                           "Number of Timesteps before snapshot is added");
    45         prm.declare_entry(
"FOM_error_linear_solver_type", 
"direct",
    46                           dealii::Patterns::Selection(
"direct|gmres"),
    47                           "Type of linear solver used for first adjoint problem (DWR between FOM and ROM)"    48                           "Choices are <direct|gmres>.");
    49         prm.declare_entry(
"residual_error_bool", 
"false",
    50                           dealii::Patterns::Bool(),
    51                           "Use residual/reduced residual for error indicator instead of DWR. False by default.");
    53     prm.leave_subsection();
    58     prm.enter_subsection(
"reduced order");
    70         std::string parameter_names_string = prm.get(
"parameter_names");
    71         std::unique_ptr<dealii::Patterns::PatternBase> ListPatternNames(
new dealii::Patterns::List(dealii::Patterns::Anything(), 0, 10, 
",")); 
    72         parameter_names = dealii::Patterns::Tools::Convert<decltype(parameter_names)>::to_value(parameter_names_string, ListPatternNames);
    74         std::string parameter_min_string = prm.get(
"parameter_min_values");
    75         std::unique_ptr<dealii::Patterns::PatternBase> ListPatternMin(
new dealii::Patterns::List(dealii::Patterns::Double(), 0, 10, 
",")); 
    76         parameter_min_values = dealii::Patterns::Tools::Convert<decltype(parameter_min_values)>::to_value(parameter_min_string, ListPatternMin);
    78         std::string parameter_max_string = prm.get(
"parameter_max_values");
    79         std::unique_ptr<dealii::Patterns::PatternBase> ListPatternMax(
new dealii::Patterns::List(dealii::Patterns::Double(), 0, 10, 
",")); 
    80         parameter_max_values = dealii::Patterns::Tools::Convert<decltype(parameter_max_values)>::to_value(parameter_max_string, ListPatternMax);
    83         const std::string solver_string = prm.get(
"FOM_error_linear_solver_type");
    88     prm.leave_subsection();
 bool residual_error_bool
Use residual/reduced residual for error indicator instead of DWR. False by default. 
std::vector< std::string > parameter_names
Names of parameters. 
static void declare_parameters(dealii::ParameterHandler &prm)
Declares the possible variables and sets the defaults. 
int number_modes
Number of modes to include in the POD Basis. 
int num_halton
Number of Halton sequence points to add to initial snapshot set. 
void parse_parameters(dealii::ParameterHandler &prm)
Parses input file and sets the variables. 
std::vector< double > parameter_min_values
Minimum value of parameters. 
Files for the baseline physics. 
std::string path_to_search
Path to search for snapshots or saved POD basis. 
int recomputation_coefficient
Recomputation parameter for adaptive sampling algorithm. 
std::string file_path_for_snapshot_locations
Path to search for file with pre-determined snapshot locations used to build POD (actual FOM snapshot...
std::vector< double > parameter_max_values
Maximum value of parameters. 
double singular_value_threshold
Singular Value Threshold in the POD Basis. 
LinearSolverEnum FOM_error_linear_solver_type
Type of linear solver used for first adjoint problem (DWR between FOM and ROM) (direct or gmres) ...
int output_snapshot_every_x_timesteps
Number of timesteps before putting solution in snapshot matrix. 
double reduced_residual_tolerance
Tolerance of the reduced-order nonlinear residual. 
double adaptation_tolerance
Tolerance for POD adaptation.