include/meltpooldg/utilities/profiling_monitor.hpp Source File

Developer Documentation: include/meltpooldg/utilities/profiling_monitor.hpp Source File
Developer Documentation
profiling_monitor.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/mpi.h>
4#include <deal.II/base/timer.h>
5
9
10#include <boost/signals2/signal.hpp>
11
12#include <chrono>
13
14
16{
17 template <typename number>
19 {
20 public:
23
28 bool
29 now() const;
30
39 void
40 print(const ConditionalOStream &pcout,
41 const dealii::TimerOutput &timer,
42 const MPI_Comm &mpi_communicator) const;
43
53 void
54 subscribe(const std::function<void(const ConditionalOStream &)> &callback);
55
56 private:
59
62
64 mutable number last_written_time = 0.0;
65
67 std::chrono::time_point<std::chrono::system_clock> real_time_start;
68
70 boost::signals2::signal<void(const ConditionalOStream &pcout)> notify_signal;
71
72 number
74 };
75} // namespace MeltPoolDG::Profiling
Definition conditional_ostream.hpp:7
Definition profiling_monitor.hpp:19
number last_written_time
The time at which the last profiling output was written.
Definition profiling_monitor.hpp:64
boost::signals2::signal< void(const ConditionalOStream &pcout)> notify_signal
Signal to notify subscribers when profiling output is generated.
Definition profiling_monitor.hpp:70
number compute_current_time() const
Definition profiling_monitor.cpp:99
std::chrono::time_point< std::chrono::system_clock > real_time_start
Real time at object construction.
Definition profiling_monitor.hpp:67
void print(const ConditionalOStream &pcout, const dealii::TimerOutput &timer, const MPI_Comm &mpi_communicator) const
Definition profiling_monitor.cpp:42
void subscribe(const std::function< void(const ConditionalOStream &)> &callback)
Definition profiling_monitor.cpp:91
bool now() const
Definition profiling_monitor.cpp:25
const ProfilingData< number > & data
The profiling data struct which contains the relevant information for profiling.
Definition profiling_monitor.hpp:58
const TimeIntegration::TimeIterator< number > & time
The time iterator which is used to compute the current time.
Definition profiling_monitor.hpp:61
Definition time_iterator.hpp:15
Definition profiling_data.hpp:8
Definition profiling_data.hpp:14