40 class TimeLoop final :
public dealii::ParameterAcceptor
82 std::string base_name_;
83 std::string base_name_ensemble_;
85 std::string debug_command_;
86 std::string debug_filename_;
89 bool enforce_t_final_;
90 Number timer_granularity_;
92 bool enable_output_full_;
93 bool enable_output_levelsets_;
94 bool enable_compute_error_;
95 bool enable_compute_quantities_;
96 bool enable_mesh_adaptivity_;
98 unsigned int timer_output_full_multiplier_;
99 unsigned int timer_output_levelsets_multiplier_;
100 unsigned int timer_compute_error_multiplier_;
101 unsigned int timer_compute_quantities_multiplier_;
104 bool resume_at_time_zero_;
106 Number terminal_update_interval_;
107 bool terminal_correct_for_hypertreadhing_;
109 Number checkpoint_update_interval_;
137 dealii::types::global_dof_index n_global_dofs_;
138 unsigned int n_devices_;
140 std::ofstream logfile_;
154 template <
typename Callable>
156 const std::string &base_name,
158 unsigned int &output_cycle,
159 const Callable &prepare_compute_kernels);
171 const std::string &base_name,
173 const unsigned int &output_cycle);
180 template <
typename Callable>
181 void adapt_mesh_and_transfer_state_vector(
183 const Callable &prepare_compute_kernels);
194 const std::string &name,
196 const unsigned int cycle);
198 void print_parameters(std::ostream &stream);
199 void print_mpi_partition(std::ostream &stream);
200 void print_device_information(std::ostream &stream);
202 void print_info(
const std::string &header);
204 void print_head(
const std::string &header,
205 const std::string &secondary,
206 std::ostream &stream);
208 void print_information(
unsigned int output_cycle,
209 Number last_checkpoint,
210 std::ostream &stream,
211 bool final_time =
false);
212 void print_memory_statistics(std::ostream &stream);
213 void print_timers(std::ostream &stream);
214 void print_throughput(
unsigned int cycle,
216 std::ostream &stream,
217 bool final_time =
false);
219 void print_cycle_statistics(
unsigned int cycle,
221 unsigned int output_cycle,
222 Number last_checkpoint,
223 bool write_to_logfile =
false,
224 bool final_time =
false);