Belos Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
BelosStatusTest.hpp
Go to the documentation of this file.
1
2
//@HEADER
3
// ************************************************************************
4
//
5
// Belos: Block Linear Solvers Package
6
// Copyright 2004 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 Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ************************************************************************
41
//@HEADER
42
//
43
44
#ifndef BELOS_STATUS_TEST_HPP
45
#define BELOS_STATUS_TEST_HPP
46
51
52
#include "
BelosTypes.hpp
"
53
#include "
BelosIteration.hpp
"
54
#include "
BelosConfigDefs.hpp
"
55
#include "Teuchos_Describable.hpp"
56
65
66
namespace
Belos
{
67
69
70
73
class
StatusTestError
:
public
BelosError
74
{
public
:
StatusTestError
(
const
std::string& what_arg) :
BelosError
(what_arg) {}};
75
77
78
template
<
class
ScalarType,
class
MV,
class
OP>
79
class
StatusTest
:
public
Teuchos::Describable {
80
81
public
:
83
84
86
StatusTest
() {};
87
89
virtual
~StatusTest
() {};
91
93
94
103
virtual
StatusType
checkStatus
(
Iteration<ScalarType,MV,OP>
* iSolver ) = 0;
104
106
virtual
StatusType
getStatus
()
const
= 0;
108
110
111
117
virtual
void
reset
() = 0;
119
121
122
124
virtual
void
print
(std::ostream& os,
int
indent = 0)
const
= 0;
125
127
virtual
void
printStatus
(std::ostream& os,
StatusType
type)
const
{
128
os << std::left << std::setw(13) << std::setfill(
'.'
);
129
switch
(type) {
130
case
Passed
:
131
os <<
"Passed"
;
132
break
;
133
case
Failed
:
134
os <<
"Failed"
;
135
break
;
136
case
Undefined
:
137
default
:
138
os <<
"**"
;
139
break
;
140
}
141
os << std::left << std::setfill(
' '
);
142
return
;
143
};
144
145
146
};
147
148
}
// end of Belos namespace
149
150
#endif
/* BELOS_STATUS_TEST_HPP */
BelosConfigDefs.hpp
Belos header file which uses auto-configuration information to include necessary C++ headers.
BelosIteration.hpp
Pure virtual base class which describes the basic interface to the linear solver iteration.
BelosTypes.hpp
Collection of types and exceptions used within the Belos solvers.
Belos::BelosError::BelosError
BelosError(const std::string &what_arg)
Definition
BelosTypes.hpp:62
Belos::Iteration
Definition
BelosIteration.hpp:73
Belos::StatusTestError::StatusTestError
StatusTestError(const std::string &what_arg)
Definition
BelosStatusTest.hpp:74
Belos::StatusTest::getStatus
virtual StatusType getStatus() const =0
Return the result of the most recent CheckStatus call.
Belos::StatusTest::~StatusTest
virtual ~StatusTest()
Destructor.
Definition
BelosStatusTest.hpp:89
Belos::StatusTest::print
virtual void print(std::ostream &os, int indent=0) const =0
Output formatted description of stopping test to output stream.
Belos::StatusTest::checkStatus
virtual StatusType checkStatus(Iteration< ScalarType, MV, OP > *iSolver)=0
Check convergence status: Unconverged, Converged, Failed.
Belos::StatusTest::StatusTest
StatusTest()
Constructor.
Definition
BelosStatusTest.hpp:86
Belos::StatusTest::reset
virtual void reset()=0
Informs the convergence test that it should reset its internal configuration to the initialized state...
Belos::StatusTest::printStatus
virtual void printStatus(std::ostream &os, StatusType type) const
Output the result of the most recent CheckStatus call.
Definition
BelosStatusTest.hpp:127
Belos
Definition
Belos_Details_EBelosSolverType.cpp:45
Belos::StatusType
StatusType
Whether the StatusTest wants iteration to stop.
Definition
BelosTypes.hpp:189
Belos::Failed
@ Failed
Definition
BelosTypes.hpp:190
Belos::Undefined
@ Undefined
Definition
BelosTypes.hpp:191
Belos::Passed
@ Passed
Definition
BelosTypes.hpp:189
Generated by
1.17.0