13#include <prismspf/config.h>
52 template <
typename ListType>
69 for (
unsigned int checkpoint = 0; checkpoint <= num_increments;
70 checkpoint += num_increments / num_checkpoints)
86 for (
unsigned int checkpoint = 1; checkpoint <= num_checkpoints; checkpoint++)
89 std::round(std::pow(
double(num_increments),
90 double(checkpoint) /
double(num_checkpoints)))));
100 if (!num_checkpoints)
104 AssertThrow(num_increments > 1,
105 dealii::ExcMessage(
"For n per decaded spaced checkpoints, the number of "
106 "increments must be greater than 1."));
108 for (
unsigned int iteration = 2; iteration <= num_increments; iteration++)
110 const auto decade =
static_cast<unsigned int>(std::ceil(std::log10(iteration)));
111 const auto step_size =
112 static_cast<unsigned int>(std::pow(10, decade) / num_checkpoints);
113 if (iteration % step_size == 0)
132 [[nodiscard]]
unsigned int
156 <<
"================================================\n"
157 <<
" Checkpoint Parameters\n"
158 <<
"================================================\n"
159 <<
"Checkpoint file name: " <<
file_name <<
"\n"
171PRISMS_PF_END_NAMESPACE
static dealii::ConditionalOStream & pout_summary()
Log output stream for writing a summary.log file.
Definition conditional_ostreams.cc:35
Definition conditional_ostreams.cc:20
Struct that holds checkpoint parameters.
Definition checkpoint_parameters.h:25
std::set< unsigned int > checkpoint_list
Definition checkpoint_parameters.h:149
bool print_timing_with_checkpoint
Definition checkpoint_parameters.h:146
void print_parameter_summary() const
Print parameters to summary.log.
Definition checkpoint_parameters.h:153
void clear_checkpoint_list()
Set the user checkpoint list.
Definition checkpoint_parameters.h:124
std::string file_name
Definition checkpoint_parameters.h:142
void add_log_spacing_checkpoints(unsigned int num_checkpoints, unsigned int num_increments)
Set the user checkpoint list.
Definition checkpoint_parameters.h:80
void validate()
Postprocess and validate parameters.
Definition checkpoint_parameters.h:39
void add_n_per_decade_checkpoints(unsigned int num_checkpoints, unsigned int num_increments)
Set the user checkpoint list.
Definition checkpoint_parameters.h:98
bool should_load_checkpoint
Definition checkpoint_parameters.h:139
void add_equal_spacing_checkpoints(unsigned int num_checkpoints, unsigned int num_increments)
Set the user checkpoint list.
Definition checkpoint_parameters.h:63
void add_checkpoint_list(const ListType &list)
Set the user checkpoint list.
Definition checkpoint_parameters.h:54
bool should_checkpoint(unsigned int increment) const
Return if the increment should be checkpointted.
Definition checkpoint_parameters.h:30
unsigned int get_num_checkpoints() const
Get the number of checkpoints that will be made.
Definition checkpoint_parameters.h:133
const char * bool_to_string(bool boolean)
Convert bool to string.
Definition utilities.h:254