49 class Quantities final :
public dealii::ParameterAcceptor
73 const Interface::ParabolicSystem ¶bolic_system,
75 const std::string &subsection =
"/Quantities");
88 void prepare(
const std::string &name);
125 using ManifoldPoint =
147 std::vector<ManifoldPoint> points;
161 Mirrored<Number *> old{
"quantities_old"};
162 Mirrored<Number *> current{
"quantities_current"};
163 Mirrored<Number *> sum{
"quantities_sum"};
172 std::vector<std::pair<Number, std::vector<Number>>> time_series;
173 std::optional<unsigned int> time_series_cycle;
182 std::vector<std::string> quantities_;
184 unsigned int n_moments_;
186 std::vector<std::tuple<std::string, std::string, std::string>>
189 std::vector<std::tuple<std::string, std::string, std::string>>
192 bool clear_temporal_statistics_on_writeout_;
200 const MPIEnsemble &mpi_ensemble_;
202 dealii::ObserverPointer<const OfflineData<dim, Number>> offline_data_;
204 SelectedComponentsExtractor<HyperbolicDescription, dim, Number> extractor_;
210 std::vector<Manifold> manifolds_;
212 std::string base_name_;
213 bool mesh_files_have_been_written_;
225 unsigned int stride()
const;
232 std::string header(
bool averaged)
const;
234 void write_mesh_files(
unsigned int cycle);
236 void clear_statistics();
244 std::vector<Number> internal_accumulate(Manifold &manifold);
251 void internal_write_out(
const std::string &file_name,
252 const std::string &time_stamp,
253 const Mirrored<Number *> &values,
257 void internal_write_out_time_series(
258 const std::string &file_name,
259 const std::vector<std::pair<Number, std::vector<Number>>> &values,
std::tuple< unsigned int, dealii::Tensor< 1, dim, Number >, Number, Number, dealii::types::boundary_id, dealii::Point< dim > > BoundaryDescription