OGS
CreateEvolutionaryPIDcontroller.cpp
Go to the documentation of this file.
1 
13 
14 #include "BaseLib/Algorithm.h"
15 #include "BaseLib/ConfigTree.h"
17 #include "TimeStepAlgorithm.h"
18 
19 namespace NumLib
20 {
21 class TimeStepAlgorithm;
22 std::unique_ptr<TimeStepAlgorithm> createEvolutionaryPIDcontroller(
23  BaseLib::ConfigTree const& config)
24 {
26  config.checkConfigParameter("type", "EvolutionaryPIDcontroller");
27 
29  auto const t0 = config.getConfigParameter<double>("t_initial");
31  auto const t_end = config.getConfigParameter<double>("t_end");
33  auto const h0 = config.getConfigParameter<double>("dt_guess");
34 
36  auto const h_min = config.getConfigParameter<double>("dt_min");
38  auto const h_max = config.getConfigParameter<double>("dt_max");
40  auto const rel_h_min = config.getConfigParameter<double>("rel_dt_min");
42  auto const rel_h_max = config.getConfigParameter<double>("rel_dt_max");
43 
45  auto const tol = config.getConfigParameter<double>("tol");
46 
47  return std::make_unique<EvolutionaryPIDcontroller>(
48  t0, t_end, h0, h_min, h_max, rel_h_min, rel_h_max, tol);
49 }
50 } // end of namespace NumLib
void checkConfigParameter(std::string const &param, T const &value) const
T getConfigParameter(std::string const &param) const
std::unique_ptr< TimeStepAlgorithm > createEvolutionaryPIDcontroller(BaseLib::ConfigTree const &config)