87 double const t_initial,
91 double const initial_dt,
92 std::vector<int>&& iter_times_vector,
93 std::vector<double>&& multiplier_vector,
94 std::vector<double>
const& fixed_times_for_output);
98 std::tuple<bool, double>
next(
double solution_error,
int number_iterations,
Iteration number based adaptive time stepping.
~IterationNumberBasedTimeStepping() override=default
std::tuple< bool, double > next(double solution_error, int number_iterations, NumLib::TimeStep &ts_previous, NumLib::TimeStep &ts_current) override
std::vector< double > const _fixed_times_for_output
bool isSolutionErrorComputationNeeded() const override
double getNextTimeStepSize(NumLib::TimeStep const &ts_previous, NumLib::TimeStep const &ts_current) const
Calculate the next time step size.
const double _max_dt
The maximum allowed time step size.
const std::vector< double > _multiplier_vector
This vector stores the multiplier coefficients.
double findMultiplier(int const number_iterations, NumLib::TimeStep const &ts_current) const
Find a multiplier for the given number of iterations.
IterationNumberBasedTimeStepping(double const t_initial, double const t_end, double const min_dt, double const max_dt, double const initial_dt, std::vector< int > &&iter_times_vector, std::vector< double > &&multiplier_vector, std::vector< double > const &fixed_times_for_output)
const std::vector< int > _iter_times_vector
bool canReduceTimestepSize(NumLib::TimeStep const ×tep_previous, NumLib::TimeStep const ×tep_current) const override
Query the timestepper if further time step size reduction is possible.
int _iter_times
The number of nonlinear iterations.
const double _min_dt
The minimum allowed time step size.
bool _previous_time_step_accepted
const double _initial_dt
Initial time step size.
const int _max_iter
The maximum allowed iteration number to accept current time step.
Interface of time stepping algorithms.