OGS
CreateIterationNumberBasedTimeStepping.cpp
Go to the documentation of this file.
1 
11 
12 #include <string>
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> createIterationNumberBasedTimeStepping(
23  BaseLib::ConfigTree const& config)
24 {
26  config.checkConfigParameter("type", "IterationNumberBasedTimeStepping");
27 
29  auto const t_initial = config.getConfigParameter<double>("t_initial");
31  auto const t_end = config.getConfigParameter<double>("t_end");
33  auto const initial_dt = config.getConfigParameter<double>("initial_dt");
35  auto const minimum_dt = config.getConfigParameter<double>("minimum_dt");
37  auto const maximum_dt = config.getConfigParameter<double>("maximum_dt");
38 
39  auto number_iterations =
41  config.getConfigParameter<std::vector<int>>("number_iterations");
42  auto multiplier =
44  config.getConfigParameter<std::vector<double>>("multiplier");
45 
46  return std::make_unique<IterationNumberBasedTimeStepping>(
47  t_initial, t_end, minimum_dt, maximum_dt, initial_dt,
48  std::move(number_iterations), std::move(multiplier));
49 }
50 } // namespace NumLib
void checkConfigParameter(std::string const &param, T const &value) const
T getConfigParameter(std::string const &param) const
std::unique_ptr< TimeStepAlgorithm > createIterationNumberBasedTimeStepping(BaseLib::ConfigTree const &config)