MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_VerbosityLevel.cpp
Go to the documentation of this file.
1
// @HEADER
2
//
3
// ***********************************************************************
4
//
5
// MueLu: A package for multigrid based preconditioning
6
// Copyright 2012 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact
39
// Jonathan Hu (jhu@sandia.gov)
40
// Andrey Prokopenko (aprokop@sandia.gov)
41
// Ray Tuminaro (rstumin@sandia.gov)
42
//
43
// ***********************************************************************
44
//
45
// @HEADER
46
#include "
MueLu_VerbosityLevel.hpp
"
47
#include "
MueLu_Exceptions.hpp
"
48
#include "MueLu_Utilities.hpp"
49
#include <string>
50
#include <locale>
51
52
namespace
MueLu
{
53
54
VerbLevel
toMueLuVerbLevel
(
const
Teuchos::EVerbosityLevel verbLevel) {
55
switch
(verbLevel)
56
{
57
case
Teuchos::VERB_NONE:
58
return
None
;
59
case
Teuchos::VERB_DEFAULT:
60
return
Default
;
61
case
Teuchos::VERB_LOW:
62
return
Low
;
63
case
Teuchos::VERB_MEDIUM:
64
return
Medium
;
65
case
Teuchos::VERB_HIGH:
66
return
High
;
67
case
Teuchos::VERB_EXTREME:
68
return
Extreme
;
69
default
:
70
TEUCHOS_TEST_FOR_EXCEPTION(
true
,
Exceptions::RuntimeError
,
"Unknown enum value found."
);
71
}
72
}
73
74
std::string
75
lowerCase
(
const
std::string& s)
76
{
77
typedef
std::string::value_type char_t;
78
typedef
std::ctype<char_t> facet_type;
79
const
facet_type& facet = std::use_facet<facet_type> (std::locale ());
80
81
const
std::string::size_type len = s.size ();
82
std::string s_lc (s);
83
for
(std::string::size_type k = 0; k < len; ++k) {
84
s_lc[k] = facet.tolower (s[k]);
85
}
86
87
return
s_lc;
88
}
89
90
MsgType
toVerbLevel
(
const
std::string& verbLevelStr) {
91
std::map<std::string, MsgType> verbMap;
92
//for developers
93
verbMap[
"errors"
] =
Errors
;
94
verbMap[
"warnings0"
] =
Warnings0
;
95
verbMap[
"warnings00"
] =
Warnings00
;
96
verbMap[
"warnings1"
] =
Warnings1
;
97
verbMap[
"perfWarnings"
] =
PerfWarnings
;
98
verbMap[
"runtime0"
] =
Runtime0
;
99
verbMap[
"runtime1"
] =
Runtime1
;
100
verbMap[
"runtimeTimings"
] =
RuntimeTimings
;
101
verbMap[
"noTimeReport"
] =
NoTimeReport
;
102
verbMap[
"parameters0"
] =
Parameters0
;
103
verbMap[
"parameters1"
] =
Parameters1
;
104
verbMap[
"statistics0"
] =
Statistics0
;
105
verbMap[
"statistics1"
] =
Statistics1
;
106
verbMap[
"timings0"
] =
Timings0
;
107
verbMap[
"timings1"
] =
Timings1
;
108
verbMap[
"timingsByLevel"
] =
TimingsByLevel
;
109
verbMap[
"external"
] =
External
;
110
verbMap[
"developer"
] =
Developer
;
111
verbMap[
"debug"
] =
Debug
;
112
verbMap[
"test"
] =
Test
;
113
114
verbMap[
"warnings"
] =
Warnings
;
115
verbMap[
"runtime"
] =
Runtime
;
116
verbMap[
"parameters"
] =
Parameters
;
117
verbMap[
"statistics"
] =
Statistics
;
118
verbMap[
"timings"
] =
Timings
;
119
verbMap[
"test"
] =
Test
;
120
verbMap[
"interfacetest"
] =
InterfaceTest
;
121
//for users and developers
122
verbMap[
"none"
] =
None
;
123
verbMap[
"low"
] =
Low
;
124
verbMap[
"medium"
] =
Medium
;
125
verbMap[
"high"
] =
High
;
126
verbMap[
"extreme"
] =
Extreme
;
127
128
std::string lcVerb =
lowerCase
(verbLevelStr);
129
if
(verbMap.find(lcVerb) != verbMap.end())
130
return
verbMap[lcVerb];
131
else
132
TEUCHOS_TEST_FOR_EXCEPTION(
true
,
Exceptions::RuntimeError
,
"MueLu::ParameterListInterpreter():: invalid verbosity level: "
<< verbLevelStr);
133
}
134
135
}
// namespace MueLu
MueLu_Exceptions.hpp
MueLu_VerbosityLevel.hpp
MueLu::Exceptions::RuntimeError
Exception throws to report errors in the internal logical of the program.
Definition
MueLu_Exceptions.hpp:70
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:78
MueLu::VerbLevel
int VerbLevel
Definition
MueLu_VerbosityLevel.hpp:113
MueLu::MsgType
MsgType
Definition
MueLu_VerbosityLevel.hpp:54
MueLu::Warnings00
@ Warnings00
Important warning messages (more verbose).
Definition
MueLu_VerbosityLevel.hpp:58
MueLu::Timings1
@ Timings1
Detailed timing information (use Teuchos::TimeMonitor::summarize() to print).
Definition
MueLu_VerbosityLevel.hpp:75
MueLu::Warnings0
@ Warnings0
Important warning messages (one line).
Definition
MueLu_VerbosityLevel.hpp:57
MueLu::Low
@ Low
Definition
MueLu_VerbosityLevel.hpp:99
MueLu::RuntimeTimings
@ RuntimeTimings
Timers that are enabled (using Timings0/Timings1) will be printed during the execution.
Definition
MueLu_VerbosityLevel.hpp:64
MueLu::Developer
@ Developer
Print information primarily of interest to developers.
Definition
MueLu_VerbosityLevel.hpp:81
MueLu::Default
@ Default
Definition
MueLu_VerbosityLevel.hpp:107
MueLu::InterfaceTest
@ InterfaceTest
Definition
MueLu_VerbosityLevel.hpp:95
MueLu::Warnings
@ Warnings
Print all warning messages.
Definition
MueLu_VerbosityLevel.hpp:89
MueLu::Debug
@ Debug
Print additional debugging information.
Definition
MueLu_VerbosityLevel.hpp:79
MueLu::Errors
@ Errors
Errors.
Definition
MueLu_VerbosityLevel.hpp:55
MueLu::Statistics1
@ Statistics1
Print more statistics.
Definition
MueLu_VerbosityLevel.hpp:71
MueLu::External
@ External
Print external lib objects.
Definition
MueLu_VerbosityLevel.hpp:78
MueLu::Runtime
@ Runtime
Print description of what is going on.
Definition
MueLu_VerbosityLevel.hpp:90
MueLu::NoTimeReport
@ NoTimeReport
By default, enabled timers appears in the teuchos time monitor summary. Use this option if you do not...
Definition
MueLu_VerbosityLevel.hpp:65
MueLu::Medium
@ Medium
Definition
MueLu_VerbosityLevel.hpp:100
MueLu::Timings0
@ Timings0
High level timing information (use Teuchos::TimeMonitor::summarize() to print).
Definition
MueLu_VerbosityLevel.hpp:74
MueLu::None
@ None
Definition
MueLu_VerbosityLevel.hpp:98
MueLu::PerfWarnings
@ PerfWarnings
Performance warnings.
Definition
MueLu_VerbosityLevel.hpp:60
MueLu::Runtime0
@ Runtime0
One-liner description of what is happening.
Definition
MueLu_VerbosityLevel.hpp:62
MueLu::Runtime1
@ Runtime1
Description of what is happening (more verbose).
Definition
MueLu_VerbosityLevel.hpp:63
MueLu::Parameters
@ Parameters
Print parameters.
Definition
MueLu_VerbosityLevel.hpp:91
MueLu::Statistics
@ Statistics
Print all statistics.
Definition
MueLu_VerbosityLevel.hpp:92
MueLu::Extreme
@ Extreme
Definition
MueLu_VerbosityLevel.hpp:105
MueLu::High
@ High
Definition
MueLu_VerbosityLevel.hpp:101
MueLu::Test
@ Test
Definition
MueLu_VerbosityLevel.hpp:94
MueLu::TimingsByLevel
@ TimingsByLevel
Record timing information level by level. Must be used in combinaison with Timings0/Timings1.
Definition
MueLu_VerbosityLevel.hpp:76
MueLu::Warnings1
@ Warnings1
Additional warnings.
Definition
MueLu_VerbosityLevel.hpp:59
MueLu::Timings
@ Timings
Print all timing information.
Definition
MueLu_VerbosityLevel.hpp:93
MueLu::Parameters0
@ Parameters0
Print class parameters.
Definition
MueLu_VerbosityLevel.hpp:67
MueLu::Statistics0
@ Statistics0
Print statistics that do not involve significant additional computation.
Definition
MueLu_VerbosityLevel.hpp:70
MueLu::Parameters1
@ Parameters1
Print class parameters (more parameters, more verbose).
Definition
MueLu_VerbosityLevel.hpp:68
MueLu::lowerCase
std::string lowerCase(const std::string &s)
Definition
MueLu_VerbosityLevel.cpp:75
MueLu::toVerbLevel
MsgType toVerbLevel(const std::string &verbLevelStr)
Definition
MueLu_VerbosityLevel.cpp:90
MueLu::toMueLuVerbLevel
VerbLevel toMueLuVerbLevel(const Teuchos::EVerbosityLevel verbLevel)
Translate Teuchos verbosity level to MueLu verbosity level.
Definition
MueLu_VerbosityLevel.cpp:54
src
MueCentral
MueLu_VerbosityLevel.cpp
Generated by
1.17.0