83 if (condition ==
"LIST")
85 for (
const auto &increment : user_output_list)
87 output_list.insert(
static_cast<unsigned int>(increment));
100 n_outputs = std::min(n_outputs, temporal_discretization.total_increments);
103 if (condition ==
"EQUAL_SPACING")
105 for (
unsigned int iteration = 0;
106 iteration <= temporal_discretization.total_increments;
107 iteration += temporal_discretization.total_increments / n_outputs)
109 output_list.insert(iteration);
112 else if (condition ==
"LOG_SPACING")
114 output_list.insert(0);
115 for (
unsigned int output = 1; output <= n_outputs; output++)
117 output_list.insert(
static_cast<unsigned int>(std::round(
118 std::pow(
static_cast<double>(temporal_discretization.total_increments),
119 static_cast<double>(output) /
static_cast<double>(n_outputs)))));
122 else if (condition ==
"N_PER_DECADE")
124 AssertThrow(temporal_discretization.total_increments > 1,
125 dealii::ExcMessage(
"For n per decaded spaced outputs, the number of "
126 "increments must be greater than 1."));
128 output_list.insert(0);
129 output_list.insert(1);
130 for (
unsigned int iteration = 2;
131 iteration <= temporal_discretization.total_increments;
134 const auto decade =
static_cast<unsigned int>(std::ceil(std::log10(iteration)));
135 const auto step_size =
136 static_cast<unsigned int>(std::pow(10, decade) / n_outputs);
137 if (iteration % step_size == 0)
139 output_list.insert(iteration);
145 AssertThrow(
false, UnreachableCode());