30 class Quantities final :
public dealii::ParameterAcceptor
60 const std::string &subsection =
"/Quantities");
73 void prepare(
const std::string &name);
110 using boundary_point =
111 std::tuple<dealii::types::global_dof_index ,
112 dealii::Tensor<1, dim, Number> ,
115 dealii::types::boundary_id ,
116 dealii::Point<dim>> ;
123 using boundary_value =
130 using boundary_statistic =
131 std::tuple<std::vector<boundary_value> ,
132 std::vector<boundary_value> ,
133 std::vector<boundary_value> ,
142 using interior_point =
143 std::tuple<dealii::types::global_dof_index ,
145 dealii::Point<dim>> ;
151 using interior_value =
158 using interior_statistic =
159 std::tuple<std::vector<interior_value> ,
160 std::vector<interior_value> ,
161 std::vector<interior_value> ,
172 std::vector<std::tuple<std::string, std::string, std::string>>
175 std::vector<std::tuple<std::string, std::string, std::string>>
178 bool clear_temporal_statistics_on_writeout_;
188 dealii::ObserverPointer<const OfflineData<dim, Number>> offline_data_;
189 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
190 dealii::ObserverPointer<const ParabolicSystem> parabolic_system_;
195 std::map<std::string, std::vector<boundary_point>> boundary_maps_;
200 std::map<std::string, boundary_statistic> boundary_statistics_;
201 std::map<std::string, std::vector<std::tuple<Number, boundary_value>>>
202 boundary_time_series_;
207 std::map<std::string, std::vector<interior_point>> interior_maps_;
212 std::map<std::string, interior_statistic> interior_statistics_;
213 std::map<std::string, std::vector<std::tuple<Number, interior_value>>>
214 interior_time_series_;
216 std::string base_name_;
219 std::optional<unsigned int> time_series_cycle_;
220 bool mesh_files_have_been_written_;
228 void write_mesh_files(
unsigned int cycle);
230 void clear_statistics();
232 template <
typename po
int_type,
typename value_type>
233 value_type internal_accumulate(
const StateVector &state_vector,
234 const std::vector<point_type> &interior_map,
235 std::vector<value_type> &new_val);
237 template <
typename value_type>
238 void internal_write_out(
const std::string &file_name,
239 const std::string &time_stamp,
240 const std::vector<value_type> &values,
243 template <
typename value_type>
244 void internal_write_out_time_series(
245 const std::string &file_name,
246 const std::vector<std::tuple<Number, value_type>> &values,