3#include <deal.II/base/convergence_table.h>
4#include <deal.II/base/table_handler.h>
12 template <
typename number>
40 const unsigned int n_cells,
41 const number min_cell_size,
42 const number max_cell_size)
52 ptr->second.n_calls += 1;
54 const number n =
static_cast<number
>(ptr->second.n_calls);
56 ptr->second.n_cells_averaged +=
57 (
static_cast<number
>(n_cells) - ptr->second.n_cells_averaged) / n;
59 ptr->second.cells_min = std::min(ptr->second.cells_min, n_cells);
60 ptr->second.cells_max = std::max(ptr->second.cells_max, n_cells);
62 ptr->second.cell_size_min = std::min(ptr->second.cell_size_min, min_cell_size);
64 ptr->second.cell_size_max = std::max(ptr->second.cell_size_max, max_cell_size);
68 template <
typename StreamType>
72 dealii::ConvergenceTable table;
76 table.add_value(
"label", entry.first);
77 table.add_value(
"no. calls", entry.second.n_calls);
78 table.add_value(
"n_cells avg",
static_cast<number
>(entry.second.n_cells_averaged));
79 table.set_precision(
"n_cells avg", 2);
80 table.add_value(
"n_cells min", entry.second.cells_min);
81 table.add_value(
"n_cells max", entry.second.cells_max);
83 table.add_value(
"cell size min", entry.second.cell_size_min);
84 table.add_value(
"cell size max", entry.second.cell_size_max);
85 table.set_scientific(
"cell size min", 4);
86 table.set_scientific(
"cell size max", 4);
90 table.write_text(ss.get_stream(), dealii::TableHandler::TextOutputFormat::org_mode_table);
99 dealii::ExcMessage(
"Unknown CellMonitor label: " + label));
101 return iterator->second;
111 inline static std::map<std::string, CellStatistics>
stat_cells;
Definition cell_monitor.hpp:14
static void add_info(const std::string label, const unsigned int n_cells, const number min_cell_size, const number max_cell_size)
Definition cell_monitor.hpp:39
static void print(StreamType &ss)
Definition cell_monitor.hpp:70
static std::map< std::string, CellStatistics > stat_cells
Definition cell_monitor.hpp:111
static void clear()
Definition cell_monitor.hpp:105
static CellStatistics get_statistics(const std::string &label)
Definition cell_monitor.hpp:94
Interface for a general preconditioner.
Definition boundary_condition_functions.hpp:17
Definition cell_monitor.hpp:17
unsigned int cells_max
Definition cell_monitor.hpp:32
unsigned int n_calls
Definition cell_monitor.hpp:29
number cell_size_min
Definition cell_monitor.hpp:34
number n_cells_averaged
Definition cell_monitor.hpp:30
CellStatistics(const unsigned int n_cells=0, const number cell_size_min=0, const number cell_size_max=0)
Definition cell_monitor.hpp:18
number cell_size_max
Definition cell_monitor.hpp:35
unsigned int cells_min
Definition cell_monitor.hpp:31