40 : interval_time(std::numeric_limits<double>::max()),
41 interval_wall_time(std::numeric_limits<double>::max()),
42 interval_time_steps(std::numeric_limits<unsigned int>::max()),
44 do_output_in_this_time_step(
false),
45 old_time_step_number(0)
50 print(dealii::ConditionalOStream
const & pcout)
const
52 pcout <<
" Solver information:" << std::endl;
53 print_parameter(pcout,
"Interval physical time", interval_time);
54 print_parameter(pcout,
"Interval wall time", interval_wall_time);
55 print_parameter(pcout,
"Interval time steps", interval_time_steps);
59 check_for_output(
double const wall_time,
61 types::time_step
const time_step_number)
const
67 if(time_step_number == 1)
69 counter += int((time + 1.e-10) / interval_time);
72 do_output_in_this_time_step = wall_time > interval_wall_time * counter or
73 time > interval_time * counter or
74 time_step_number % interval_time_steps == 0;
76 if(do_output_in_this_time_step)
81 return do_output_in_this_time_step;
85 write(
double const wall_time,
double const time, types::time_step
const time_step_number)
const
87 if(time_step_number > old_time_step_number)
89 old_time_step_number = time_step_number;
90 return check_for_output(wall_time, time, time_step_number);
94 return do_output_in_this_time_step;
102 double interval_wall_time;
105 unsigned int interval_time_steps;
108 mutable unsigned int counter;
111 mutable bool do_output_in_this_time_step;
115 mutable unsigned int old_time_step_number;