Belos
Version of the Day
Loading...
Searching...
No Matches
src
BelosStatusTestOutputFactory.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Belos: Block Linear Solvers Package
4
//
5
// Copyright 2004-2016 NTESS and the Belos contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
//
10
11
#ifndef BELOS_STATUS_TEST_OUTPUT_FACTORY_HPP
12
#define BELOS_STATUS_TEST_OUTPUT_FACTORY_HPP
13
18
19
#include "
BelosConfigDefs.hpp
"
20
#include "
BelosTypes.hpp
"
21
#include "
BelosStatusTestResNormOutput.hpp
"
22
#include "
BelosStatusTestUserOutput.hpp
"
23
#include "
BelosStatusTestGeneralOutput.hpp
"
24
25
26
namespace
Belos
{
27
37
template
<
class
ScalarType,
class
MV,
class
OP>
38
class
StatusTestOutputFactory
{
39
40
public
:
42
43
52
StatusTestOutputFactory
(
int
outputStyle, Teuchos::RCP<std::map<std::string,Teuchos::RCP<
StatusTest<ScalarType,MV,OP>
> > > taggedTests = Teuchos::null )
53
: outputStyle_(outputStyle),
54
taggedTests_(taggedTests)
55
{}
56
58
virtual
~StatusTestOutputFactory
() {}
60
61
63
64
79
Teuchos::RCP<StatusTestOutput<ScalarType,MV,OP> >
create
(
const
Teuchos::RCP<
OutputManager<ScalarType>
> &printer,
80
Teuchos::RCP<
StatusTest<ScalarType,MV,OP>
> test,
81
int
mod,
82
int
printStates)
83
{
84
Teuchos::RCP<StatusTestOutput<ScalarType,MV,OP> > outputTest;
85
86
switch
( outputStyle_ ) {
87
88
case
General
:
89
if
(mod > 0) {
90
outputTest = Teuchos::rcp(
new
StatusTestGeneralOutput<ScalarType,MV,OP>
( printer, test, mod, printStates ) );
91
}
92
else
{
93
outputTest = Teuchos::rcp(
new
StatusTestGeneralOutput<ScalarType,MV,OP>
( printer, test, 1 ) );
94
}
95
break
;
96
case
Brief
:
97
if
(mod > 0) {
98
outputTest = Teuchos::rcp(
new
StatusTestResNormOutput<ScalarType,MV,OP>
( printer, test, mod, printStates ) );
99
}
100
else
{
101
outputTest = Teuchos::rcp(
new
StatusTestResNormOutput<ScalarType,MV,OP>
( printer, test, 1 ) );
102
}
103
break
;
104
case
User
:
105
if
(mod > 0) {
106
outputTest = Teuchos::rcp(
new
StatusTestUserOutput<ScalarType,MV,OP>
( printer, test, taggedTests_, mod, printStates ) );
107
}
108
else
{
109
outputTest = Teuchos::rcp(
new
StatusTestUserOutput<ScalarType,MV,OP>
( printer, test, taggedTests_, 1 ) );
110
}
111
break
;
112
default
:
//Default to General if invalid outputStyle_ given.
113
if
(mod > 0) {
114
outputTest = Teuchos::rcp(
new
StatusTestGeneralOutput<ScalarType,MV,OP>
( printer, test, mod, printStates ) );
115
}
116
else
{
117
outputTest = Teuchos::rcp(
new
StatusTestGeneralOutput<ScalarType,MV,OP>
( printer, test, 1 ) );
118
}
119
break
;
120
}
121
122
123
return
outputTest;
124
}
125
127
128
private
:
129
130
// Which type of StatusTestOutput class
131
int
outputStyle_;
132
133
Teuchos::RCP<std::map<std::string,Teuchos::RCP<StatusTest<ScalarType,MV,OP> > > > taggedTests_;
134
135
// Hide the default constructor and copy constructor
136
StatusTestOutputFactory
(
void
) {}
137
StatusTestOutputFactory
(
const
StatusTestOutputFactory<ScalarType,MV,OP>
& ) {}
138
139
};
140
141
}
// end of Belos namespace
142
143
#endif
/* BELOS_STATUS_TEST_OUTPUT_FACTORY_HPP */
BelosConfigDefs.hpp
Belos header file which uses auto-configuration information to include necessary C++ headers.
BelosStatusTestGeneralOutput.hpp
Special StatusTest for printing any kind of status test.
BelosStatusTestResNormOutput.hpp
Special StatusTest for printing status tests in simple format for residuals.
BelosStatusTestUserOutput.hpp
Special StatusTest for printing status tests in simple format for residuals.
BelosTypes.hpp
Collection of types and exceptions used within the Belos solvers.
Belos::OutputManager
Belos's basic output manager for sending information of select verbosity levels to the appropriate ou...
Definition
BelosOutputManager.hpp:42
Belos::StatusTestGeneralOutput
A special StatusTest for printing other status tests.
Definition
BelosStatusTestGeneralOutput.hpp:40
Belos::StatusTestOutputFactory::StatusTestOutputFactory
StatusTestOutputFactory(int outputStyle, Teuchos::RCP< std::map< std::string, Teuchos::RCP< StatusTest< ScalarType, MV, OP > > > > taggedTests=Teuchos::null)
Constructor.
Definition
BelosStatusTestOutputFactory.hpp:52
Belos::StatusTestOutputFactory::~StatusTestOutputFactory
virtual ~StatusTestOutputFactory()
Destructor.
Definition
BelosStatusTestOutputFactory.hpp:58
Belos::StatusTestOutputFactory::create
Teuchos::RCP< StatusTestOutput< ScalarType, MV, OP > > create(const Teuchos::RCP< OutputManager< ScalarType > > &printer, Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test, int mod, int printStates)
Create the StatusTestOutput object specified by the outputStyle.
Definition
BelosStatusTestOutputFactory.hpp:79
Belos::StatusTestResNormOutput
A special StatusTest for printing other status tests in a simple format.
Definition
BelosStatusTestResNormOutput.hpp:42
Belos::StatusTestUserOutput
A special StatusTest for printing other status tests in a simple format.
Definition
BelosStatusTestUserOutput.hpp:38
Belos::StatusTest
A pure virtual class for defining the status tests for the Belos iterative solvers.
Definition
BelosStatusTest.hpp:50
Belos
Definition
Belos_Details_EBelosSolverType.cpp:13
Belos::General
@ General
Definition
BelosTypes.hpp:109
Belos::User
@ User
Definition
BelosTypes.hpp:111
Belos::Brief
@ Brief
Definition
BelosTypes.hpp:110
Generated on
for Belos by
1.15.0