28 calculate_next_time(
const double current_time,
29 const double step_size,
30 const double end_time)
34 double next_time = current_time + step_size;
35 constexpr
double relative_tolerance = 0.05;
36 const double time_tolerance = relative_tolerance * step_size;
37 if (next_time > end_time - time_tolerance)
46 const double end_time,
47 const double desired_start_step_size)
48 : start_time{start_time}
52 desired_start_step_size,
64 next_time = calculate_next_time(current_time, next_step_size, end_time);
74 "You can't advance time further." 75 "Either dt == 0 or you are at the end of the simulation time."));
80 next_time = calculate_next_time(current_time, step_size, end_time);
void set_desired_next_step_size(const double time_step_size)
double get_next_step_size() const
DiscreteTime(const double start_time, const double end_time, const double desired_start_step_size=0.)
static ::ExceptionBase & ExcMessage(std::string arg1)
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_OPEN
static ::ExceptionBase & ExcInternalError()