Anasazi Version of the Day
Loading...
Searching...
No Matches
AnasaziOutputManager.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Anasazi: Block Eigensolvers Package
4//
5// Copyright 2004 NTESS and the Anasazi contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef ANASAZI_OUTPUT_MANAGER_HPP
11#define ANASAZI_OUTPUT_MANAGER_HPP
12
17#include "AnasaziConfigDefs.hpp"
18#include "AnasaziTypes.hpp"
19
20#include "Teuchos_FancyOStream.hpp"
21#include "Teuchos_RCP.hpp"
22#include "Teuchos_oblackholestream.hpp"
23
33namespace Anasazi {
34
35template <class ScalarType>
37
38 public:
39
41
42
45 const Teuchos::RCP<Teuchos::FancyOStream> &fos = Teuchos::getFancyOStream(Teuchos::rcpFromRef(std::cout)) )
46 : vb_(vb),
47 fos_(fos)
48 {
49 bh_fos_ = Teuchos::getFancyOStream(Teuchos::rcpFromRef( myBHS_ ));
50 };
51
53 virtual ~OutputManager() {};
55
57
58
60 virtual void setVerbosity( int vb ) { vb_ = vb; }
61
63 virtual int getVerbosity( ) const { return vb_; }
64
66 virtual void setFancyOStream( const Teuchos::RCP<Teuchos::FancyOStream>& fos ) { fos_ = fos; }
67
69 virtual const Teuchos::RCP<Teuchos::FancyOStream>& getFancyOStream( ) const { return fos_; }
70
72
74
75
77
80 virtual bool isVerbosity( MsgType type ) const;
81
83 virtual void print( MsgType type, const std::string output );
84
86 virtual Teuchos::FancyOStream &stream( MsgType type );
87
89
90 private:
91
93
94
97
100
102
103 protected:
104 int vb_;
105 Teuchos::RCP<Teuchos::FancyOStream> fos_, bh_fos_;
106 Teuchos::oblackholestream myBHS_;
107};
108
109template<class ScalarType>
111{
112 if ( (type & vb_) == type ) {
113 return true;
114 }
115 return false;
116}
117
118template<class ScalarType>
119void OutputManager<ScalarType>::print( MsgType type, const std::string output )
120{
121 if ( (type & vb_) == type ) {
122 *fos_ << output;
123 }
124}
125
126template<class ScalarType>
127Teuchos::FancyOStream & OutputManager<ScalarType>::stream( MsgType type ) {
128 if ( (type & vb_) == type )
129 {
130 return *fos_;
131 }
132 return *bh_fos_;
133}
134
135} // end Anasazi namespace
136
137#endif
138
139// end of file AnasaziOutputManager.hpp
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
Types and exceptions used within Anasazi solvers and interfaces.
Output managers remove the need for the eigensolver to know any information about the required output...
virtual int getVerbosity() const
Get the message output types for this manager.
virtual void setFancyOStream(const Teuchos::RCP< Teuchos::FancyOStream > &fos)
Set the formatted output stream object for this manager.
virtual const Teuchos::RCP< Teuchos::FancyOStream > & getFancyOStream() const
Get the formatted output stream object for this manager.
OutputManager(int vb=Anasazi::Errors, const Teuchos::RCP< Teuchos::FancyOStream > &fos=Teuchos::getFancyOStream(Teuchos::rcpFromRef(std::cout)))
Default constructor.
virtual ~OutputManager()
Destructor.
virtual Teuchos::FancyOStream & stream(MsgType type)
Create a stream for outputting to.
virtual void setVerbosity(int vb)
Set the message output types for this manager.
virtual void print(MsgType type, const std::string output)
Send output to the output manager.
virtual bool isVerbosity(MsgType type) const
Find out whether we need to print out information for this message type.
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.
MsgType
Enumerated list of available message types recognized by the eigensolvers.