36 class TimeLoop final :
public dealii::ParameterAcceptor
80 std::string base_name_;
81 std::string base_name_ensemble_;
83 std::string debug_command_;
84 std::string debug_filename_;
87 bool enforce_t_final_;
88 Number timer_granularity_;
90 bool enable_output_full_;
91 bool enable_output_levelsets_;
92 bool enable_compute_error_;
93 bool enable_compute_quantities_;
94 bool enable_mesh_adaptivity_;
96 unsigned int timer_output_full_multiplier_;
97 unsigned int timer_output_levelsets_multiplier_;
98 unsigned int timer_compute_quantities_multiplier_;
100 std::vector<std::string> error_quantities_;
101 bool error_normalize_;
104 bool resume_at_time_zero_;
106 Number terminal_update_interval_;
107 bool terminal_correct_for_hypertreadhing_;
109 Number checkpoint_update_interval_;
134 dealii::types::global_dof_index n_global_dofs_;
135 unsigned int n_devices_;
137 std::ofstream logfile_;
151 template <
typename Callable>
153 const std::string &base_name,
155 unsigned int &output_cycle,
156 const Callable &prepare_compute_kernels);
167 void write_checkpoint(
const StateVector &state_vector,
168 const std::string &base_name,
170 const unsigned int &output_cycle);
177 template <
typename Callable>
178 void adapt_mesh_and_transfer_state_vector(
179 StateVector &state_vector,
const Callable &prepare_compute_kernels);
181 void compute_error(
const StateVector &state_vector, Number t);
184 const std::string &name,
186 const unsigned int cycle);
188 void print_parameters(std::ostream &stream);
189 void print_mpi_partition(std::ostream &stream);
190 void print_device_information(std::ostream &stream);
192 void print_info(
const std::string &header);
194 void print_head(
const std::string &header,
195 const std::string &secondary,
196 std::ostream &stream);
198 void print_information(
unsigned int output_cycle,
199 Number last_checkpoint,
200 std::ostream &stream,
201 bool final_time =
false);
202 void print_memory_statistics(std::ostream &stream);
203 void print_timers(std::ostream &stream);
204 void print_throughput(
unsigned int cycle,
206 std::ostream &stream,
207 bool final_time =
false);
209 void print_cycle_statistics(
unsigned int cycle,
211 unsigned int output_cycle,
212 Number last_checkpoint,
213 bool write_to_logfile =
false,
214 bool final_time =
false);