46#ifndef MUELU_MONITOR_HPP
47#define MUELU_MONITOR_HPP
52#include "Teuchos_FancyOStream.hpp"
53#include "Teuchos_RCPDecl.hpp"
54#include "Teuchos_RCP.hpp"
55#include "Teuchos_Utils.hpp"
182#ifdef HAVE_MUELU_PROFILING
183#define MUELU_TIMER_AS_STRING static_cast<std::ostringstream*>( &(std::ostringstream() << " " << timerIdentifier_++) )->str()
185#define MUELU_TIMER_AS_STRING
Base class for MueLu classes.
Timer to be used in factories. Similar to Monitor but with additional timers.
static int timerIdentifier_
RCP< TimeMonitor > levelTimeMonitor_
Total time spent on this level in this object and all its children.
RCP< MutuallyExclusiveTimeMonitor< Level > > levelTimeMonitorExclusive_
Total time spent on this level in this object only, excluding all children.
MutuallyExclusiveTimeMonitor< FactoryBase > timerMonitorExclusive_
Total time spent on all levels in this object only, excluding all children.
Class that holds all level-specific information.
Timer to be used in non-factories.
TimeMonitor timerMonitor_
Records total time spent in this object and all its children, over all levels.
virtual ~Monitor()=default
PrintMonitor printMonitor_
Manages printing.
Similar to TimeMonitor, but uses MutuallyExclusiveTime objects.
const BaseClass & object_
Timer to be used in factories. Similar to SubMonitor but adds a timer level by level.
RCP< TimeMonitor > levelTimeMonitor_
Total time spent on this level in this object and all children.
Timer to be used in non-factories. Similar to Monitor, but doesn't print object description.
TimeMonitor timerMonitor_
PrintMonitor printMonitor_
Integrates Teuchos::TimeMonitor with MueLu verbosity system.
Namespace for MueLu classes and methods.
@ Timings1
Detailed timing information (use Teuchos::TimeMonitor::summarize() to print)
@ Timings0
High level timing information (use Teuchos::TimeMonitor::summarize() to print)
@ Runtime0
One-liner description of what is happening.
@ Runtime1
Description of what is happening (more verbose)