59 virtual std::tuple<bool, double>
next(
const double solution_error,
60 int number_iterations,
90 Time const& t,
double const dt,
91 std::vector<double>
const& fixed_output_times);
Interface of time stepping algorithms.
Time begin() const
return the beginning of time steps
virtual bool isSolutionErrorComputationNeeded() const
virtual std::tuple< bool, double > next(const double solution_error, int number_iterations, NumLib::TimeStep &ts_previous, NumLib::TimeStep &ts_current)=0
const Time _t_initial
initial time
Time end() const
return the end of time steps
virtual void resetCurrentTimeStep(const double, TimeStep &, TimeStep &)
reset the current step size from the previous time
TimeStepAlgorithm(const double t0, const double t_end)
virtual bool canReduceTimestepSize(NumLib::TimeStep const &, NumLib::TimeStep const &) const
Query the timestepper if further time step size reduction is possible.
virtual ~TimeStepAlgorithm()=default
const Time _t_end
end time
double possiblyClampDtToNextFixedTime(Time const &t, double const dt, std::vector< double > const &fixed_output_times)
bool canReduceTimestepSize(TimeStep const ×tep_previous, TimeStep const ×tep_current, double const min_dt)