21 #ifndef FUB_OUTPUT_COUNTER_OUTPUT_HPP
22 #define FUB_OUTPUT_COUNTER_OUTPUT_HPP
24 #include "fub/counter/CounterRegistry.hpp"
33 template <
typename Gr
id,
typename Pr
intDuration = std::chrono::nanoseconds>
37 std::chrono::steady_clock::time_point ref)
42 reference_{std::chrono::steady_clock::now()} {}
45 std::vector<std::ptrdiff_t> frequencies,
46 std::vector<Duration> intervals)
48 std::move(intervals)),
52 std::chrono::steady_clock::time_point now =
53 std::chrono::steady_clock::now();
55 std::chrono::duration_cast<std::chrono::nanoseconds>(now -
reference_);
56 std::vector<CounterResult> statistics =
57 grid.GetPatchHierarchy().GetCounterRegistry()->gather_statistics();
58 if (statistics.size()) {
59 print_statistics<PrintDuration>(statistics, diff.count());
Definition: CounterOutput.hpp:34
CounterOutput(const ProgramOptions &po, std::chrono::steady_clock::time_point ref)
Definition: CounterOutput.hpp:36
void operator()(const Grid &grid) override
Invoke the actual output logic.
Definition: CounterOutput.hpp:51
CounterOutput(const ProgramOptions &po)
Definition: CounterOutput.hpp:40
CounterOutput(std::chrono::steady_clock::time_point reference, std::vector< std::ptrdiff_t > frequencies, std::vector< Duration > intervals)
Definition: CounterOutput.hpp:44
std::chrono::steady_clock::time_point reference_
Definition: CounterOutput.hpp:64
Definition: OutputAtFrequencyOrInterval.hpp:32
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
std::map< std::string, pybind11::object > ProgramOptions
Definition: ProgramOptions.hpp:40