Anasazi
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
AnasaziOutputManager.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Anasazi: Block Eigensolvers Package
5
// Copyright 2004 Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8
// the U.S. Government retains certain rights in this software.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef ANASAZI_OUTPUT_MANAGER_HPP
43
#define ANASAZI_OUTPUT_MANAGER_HPP
44
48
49
#include "
AnasaziConfigDefs.hpp
"
50
#include "
AnasaziTypes.hpp
"
51
52
#include "Teuchos_FancyOStream.hpp"
53
#include "Teuchos_RCP.hpp"
54
#include "Teuchos_oblackholestream.hpp"
55
64
65
namespace
Anasazi
{
66
67
template
<
class
ScalarType>
68
class
OutputManager
{
69
70
public
:
71
73
74
76
OutputManager
(
int
vb =
Anasazi::Errors
,
77
const
Teuchos::RCP<Teuchos::FancyOStream> &fos = Teuchos::getFancyOStream(Teuchos::rcpFromRef(std::cout)) )
78
: vb_(vb),
79
fos_(fos)
80
{
81
bh_fos_ = Teuchos::getFancyOStream(Teuchos::rcpFromRef( myBHS_ ));
82
};
83
85
virtual
~OutputManager
() {};
87
89
90
92
virtual
void
setVerbosity
(
int
vb ) { vb_ = vb; }
93
95
virtual
int
getVerbosity
( )
const
{
return
vb_; }
96
98
virtual
void
setFancyOStream
(
const
Teuchos::RCP<Teuchos::FancyOStream>& fos ) { fos_ = fos; }
99
101
virtual
const
Teuchos::RCP<Teuchos::FancyOStream>&
getFancyOStream
( )
const
{
return
fos_; }
102
104
106
107
109
112
virtual
bool
isVerbosity
(
MsgType
type )
const
;
113
115
virtual
void
print
(
MsgType
type,
const
std::string output );
116
118
virtual
Teuchos::FancyOStream &
stream
(
MsgType
type );
119
121
122
private
:
123
125
126
128
OutputManager
(
const
OutputManager<ScalarType>
& OM );
129
131
OutputManager<ScalarType>
& operator=(
const
OutputManager<ScalarType>
& OM );
132
134
135
protected
:
136
int
vb_;
137
Teuchos::RCP<Teuchos::FancyOStream> fos_, bh_fos_;
138
Teuchos::oblackholestream myBHS_;
139
};
140
141
template
<
class
ScalarType>
142
bool
OutputManager<ScalarType>::isVerbosity
(
MsgType
type )
const
143
{
144
if
( (type & vb_) == type ) {
145
return
true
;
146
}
147
return
false
;
148
}
149
150
template
<
class
ScalarType>
151
void
OutputManager<ScalarType>::print
(
MsgType
type,
const
std::string output )
152
{
153
if
( (type & vb_) == type ) {
154
*fos_ << output;
155
}
156
}
157
158
template
<
class
ScalarType>
159
Teuchos::FancyOStream &
OutputManager<ScalarType>::stream
(
MsgType
type ) {
160
if
( (type & vb_) == type )
161
{
162
return
*fos_;
163
}
164
return
*bh_fos_;
165
}
166
167
}
// end Anasazi namespace
168
169
#endif
170
171
// end of file AnasaziOutputManager.hpp
AnasaziConfigDefs.hpp
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
AnasaziTypes.hpp
Types and exceptions used within Anasazi solvers and interfaces.
Anasazi::OutputManager
Output managers remove the need for the eigensolver to know any information about the required output...
Definition
AnasaziOutputManager.hpp:68
Anasazi::OutputManager::getVerbosity
virtual int getVerbosity() const
Get the message output types for this manager.
Definition
AnasaziOutputManager.hpp:95
Anasazi::OutputManager::setFancyOStream
virtual void setFancyOStream(const Teuchos::RCP< Teuchos::FancyOStream > &fos)
Set the formatted output stream object for this manager.
Definition
AnasaziOutputManager.hpp:98
Anasazi::OutputManager::getFancyOStream
virtual const Teuchos::RCP< Teuchos::FancyOStream > & getFancyOStream() const
Get the formatted output stream object for this manager.
Definition
AnasaziOutputManager.hpp:101
Anasazi::OutputManager::OutputManager
OutputManager(int vb=Anasazi::Errors, const Teuchos::RCP< Teuchos::FancyOStream > &fos=Teuchos::getFancyOStream(Teuchos::rcpFromRef(std::cout)))
Default constructor.
Definition
AnasaziOutputManager.hpp:76
Anasazi::OutputManager::~OutputManager
virtual ~OutputManager()
Destructor.
Definition
AnasaziOutputManager.hpp:85
Anasazi::OutputManager::stream
virtual Teuchos::FancyOStream & stream(MsgType type)
Create a stream for outputting to.
Definition
AnasaziOutputManager.hpp:159
Anasazi::OutputManager::setVerbosity
virtual void setVerbosity(int vb)
Set the message output types for this manager.
Definition
AnasaziOutputManager.hpp:92
Anasazi::OutputManager::print
virtual void print(MsgType type, const std::string output)
Send output to the output manager.
Definition
AnasaziOutputManager.hpp:151
Anasazi::OutputManager::isVerbosity
virtual bool isVerbosity(MsgType type) const
Find out whether we need to print out information for this message type.
Definition
AnasaziOutputManager.hpp:142
Anasazi
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.
Anasazi::MsgType
MsgType
Enumerated list of available message types recognized by the eigensolvers.
Definition
AnasaziTypes.hpp:162
Anasazi::Errors
@ Errors
Definition
AnasaziTypes.hpp:163
Generated by
1.17.0