MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_Monitor.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// MueLu: A package for multigrid based preconditioning
4
//
5
// Copyright 2012 NTESS and the MueLu contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef MUELU_MONITOR_HPP
11
#define MUELU_MONITOR_HPP
12
13
#include <string>
14
#include <algorithm>
// for swap
15
#include <ostream>
// for basic_ostream, operator<<, etc
16
#include "Teuchos_FancyOStream.hpp"
// for OSTab, FancyOStream
17
#include "Teuchos_RCPDecl.hpp"
// for RCP
18
#include "Teuchos_RCP.hpp"
// for RCP::RCP<T>, RCP::operator=, etc
19
#include "Teuchos_Utils.hpp"
// for Utils
20
#include "
MueLu_VerbosityLevel.hpp
"
// for MsgType, MsgType::Runtime0, etc
21
#include "
MueLu_BaseClass.hpp
"
22
#include "
MueLu_FactoryBase_fwd.hpp
"
23
#include "
MueLu_Level.hpp
"
24
#include "
MueLu_TimeMonitor.hpp
"
25
26
namespace
MueLu
{
27
28
struct
FormattingHelper
{
30
static
std::string
getColonLabel
(
const
std::string& label) {
31
if
(label !=
""
)
32
return
label +
": "
;
33
else
34
return
""
;
35
}
36
};
37
41
class
PrintMonitor
:
public
BaseClass
{
42
public
:
44
PrintMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
MsgType
msgLevel =
Runtime0
);
45
~PrintMonitor
();
46
47
private
:
48
PrintMonitor
();
49
50
bool
tabbed
;
51
const
BaseClass
&
object_
;
52
};
53
68
class
Monitor
:
public
BaseClass
{
69
public
:
77
Monitor
(
const
BaseClass
&
object
,
const
std::string& msg,
MsgType
msgLevel =
Runtime0
,
MsgType
timerLevel =
Timings0
);
78
87
Monitor
(
const
BaseClass
&
object
,
const
std::string& msg,
const
std::string& label,
MsgType
msgLevel =
Runtime0
,
MsgType
timerLevel =
Timings0
);
88
89
virtual
~Monitor
();
90
91
private
:
93
PrintMonitor
printMonitor_
;
95
TimeMonitor
timerMonitor_
;
96
};
97
98
//---------------------------------------------------------------------------------------------------
99
116
class
SubMonitor
:
public
BaseClass
{
117
public
:
125
SubMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
MsgType
msgLevel =
Runtime1
,
MsgType
timerLevel =
Timings1
);
126
135
SubMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
const
std::string& label,
MsgType
msgLevel =
Runtime1
,
MsgType
timerLevel =
Timings1
);
136
137
~SubMonitor
();
138
139
private
:
140
PrintMonitor
printMonitor_
;
141
TimeMonitor
timerMonitor_
;
142
};
143
144
//---------------------------------------------------------------------------------------------------
145
165
class
FactoryMonitor
:
public
Monitor
{
166
public
:
167
static
int
timerIdentifier_
;
168
177
FactoryMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
int
levelID,
MsgType
msgLevel =
static_cast<
MsgType
>
(
Test
|
Runtime0
),
MsgType
timerLevel =
Timings0
);
178
189
FactoryMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
const
Level
& level,
MsgType
msgLevel =
static_cast<
MsgType
>
(
Test
|
Runtime0
),
MsgType
timerLevel =
Timings0
);
190
191
~FactoryMonitor
();
192
193
private
:
195
RCP<TimeMonitor>
levelTimeMonitor_
;
196
};
197
198
//---------------------------------------------------------------------------------------------------
199
214
class
SubFactoryMonitor
:
public
SubMonitor
{
215
public
:
224
SubFactoryMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
int
levelID,
MsgType
msgLevel =
Runtime1
,
MsgType
timerLevel =
Timings1
);
225
234
SubFactoryMonitor
(
const
BaseClass
&
object
,
const
std::string& msg,
const
Level
& level,
MsgType
msgLevel =
Runtime1
,
MsgType
timerLevel =
Timings1
);
235
236
~SubFactoryMonitor
();
237
238
private
:
240
RCP<TimeMonitor>
levelTimeMonitor_
;
241
};
242
243
}
// namespace MueLu
244
245
#endif
// MUELU_MONITOR_HPP
MueLu_BaseClass.hpp
MueLu_FactoryBase_fwd.hpp
MueLu_Level.hpp
MueLu_TimeMonitor.hpp
MueLu_VerbosityLevel.hpp
MueLu::BaseClass
Base class for MueLu classes.
Definition
MueLu_BaseClass.hpp:27
MueLu::FactoryMonitor::FactoryMonitor
FactoryMonitor(const BaseClass &object, const std::string &msg, int levelID, MsgType msgLevel=static_cast< MsgType >(Test|Runtime0), MsgType timerLevel=Timings0)
Constructor.
Definition
MueLu_Monitor.cpp:49
MueLu::FactoryMonitor::~FactoryMonitor
~FactoryMonitor()
MueLu::FactoryMonitor::timerIdentifier_
static int timerIdentifier_
Definition
MueLu_Monitor.hpp:167
MueLu::FactoryMonitor::levelTimeMonitor_
RCP< TimeMonitor > levelTimeMonitor_
Total time spent on this level in this object and all its children.
Definition
MueLu_Monitor.hpp:195
MueLu::Level
Class that holds all level-specific information.
Definition
MueLu_Level.hpp:63
MueLu::Monitor::timerMonitor_
TimeMonitor timerMonitor_
Records total time spent in this object and all its children, over all levels.
Definition
MueLu_Monitor.hpp:95
MueLu::Monitor::~Monitor
virtual ~Monitor()
MueLu::Monitor::Monitor
Monitor(const BaseClass &object, const std::string &msg, MsgType msgLevel=Runtime0, MsgType timerLevel=Timings0)
Constructor.
Definition
MueLu_Monitor.cpp:29
MueLu::Monitor::printMonitor_
PrintMonitor printMonitor_
Manages printing.
Definition
MueLu_Monitor.hpp:93
MueLu::PrintMonitor
Definition
MueLu_Monitor.hpp:41
MueLu::PrintMonitor::PrintMonitor
PrintMonitor()
MueLu::PrintMonitor::PrintMonitor
PrintMonitor(const BaseClass &object, const std::string &msg, MsgType msgLevel=Runtime0)
Constructor.
Definition
MueLu_Monitor.cpp:14
MueLu::PrintMonitor::tabbed
bool tabbed
Definition
MueLu_Monitor.hpp:50
MueLu::PrintMonitor::object_
const BaseClass & object_
Definition
MueLu_Monitor.hpp:51
MueLu::PrintMonitor::~PrintMonitor
~PrintMonitor()
Definition
MueLu_Monitor.cpp:25
MueLu::SubFactoryMonitor::levelTimeMonitor_
RCP< TimeMonitor > levelTimeMonitor_
Total time spent on this level in this object and all children.
Definition
MueLu_Monitor.hpp:240
MueLu::SubFactoryMonitor::~SubFactoryMonitor
~SubFactoryMonitor()
MueLu::SubFactoryMonitor::SubFactoryMonitor
SubFactoryMonitor(const BaseClass &object, const std::string &msg, int levelID, MsgType msgLevel=Runtime1, MsgType timerLevel=Timings1)
Constructor.
Definition
MueLu_Monitor.cpp:68
MueLu::SubMonitor::timerMonitor_
TimeMonitor timerMonitor_
Definition
MueLu_Monitor.hpp:141
MueLu::SubMonitor::printMonitor_
PrintMonitor printMonitor_
Definition
MueLu_Monitor.hpp:140
MueLu::SubMonitor::SubMonitor
SubMonitor(const BaseClass &object, const std::string &msg, MsgType msgLevel=Runtime1, MsgType timerLevel=Timings1)
Constructor.
Definition
MueLu_Monitor.cpp:39
MueLu::SubMonitor::~SubMonitor
~SubMonitor()
MueLu::TimeMonitor
Integrates Teuchos::TimeMonitor with MueLu verbosity system.
Definition
MueLu_TimeMonitor.hpp:31
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
MueLu::MsgType
MsgType
Definition
MueLu_VerbosityLevel.hpp:17
MueLu::Timings1
@ Timings1
Detailed timing information (use Teuchos::TimeMonitor::summarize() to print).
Definition
MueLu_VerbosityLevel.hpp:38
MueLu::Timings0
@ Timings0
High level timing information (use Teuchos::TimeMonitor::summarize() to print).
Definition
MueLu_VerbosityLevel.hpp:37
MueLu::Runtime0
@ Runtime0
One-liner description of what is happening.
Definition
MueLu_VerbosityLevel.hpp:25
MueLu::Runtime1
@ Runtime1
Description of what is happening (more verbose).
Definition
MueLu_VerbosityLevel.hpp:26
MueLu::Test
@ Test
Definition
MueLu_VerbosityLevel.hpp:57
MueLu::FormattingHelper
Definition
MueLu_Monitor.hpp:28
MueLu::FormattingHelper::getColonLabel
static std::string getColonLabel(const std::string &label)
Helper function for object label.
Definition
MueLu_Monitor.hpp:30
src
Utils
MueLu_Monitor.hpp
Generated by
1.17.0