Belos Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
BelosStatusTestResNorm.hpp
Go to the documentation of this file.
1//@HEADER
2// ************************************************************************
3//
4// Belos: Block Linear Solvers Package
5// Copyright 2004 Sandia Corporation
6//
7// Under the 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 BELOS_STATUS_TEST_RESNORM_H
43#define BELOS_STATUS_TEST_RESNORM_H
44
50#include "BelosStatusTest.hpp"
53
59namespace Belos {
60
61template <class ScalarType, class MV, class OP>
62class StatusTestResNorm: public StatusTest<ScalarType,MV,OP> {
63
64 public:
65
66 // Convenience typedefs
67 typedef Teuchos::ScalarTraits<ScalarType> SCT;
68 typedef typename SCT::magnitudeType MagnitudeType;
70
72
73
75
78 virtual int setTolerance(MagnitudeType tolerance) = 0;
79
82 virtual int setQuorum(int quorum) = 0;
83
85 virtual int setShowMaxResNormOnly(bool showMaxResNormOnly) = 0;
86
88 virtual int defineScaleForm( ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue = Teuchos::ScalarTraits<MagnitudeType>::one()) = 0;
89
91
93
94
97 virtual int getQuorum() const = 0;
98
100 virtual bool getShowMaxResNormOnly() = 0;
101
103 virtual std::vector<int> convIndices() = 0;
104
106 virtual MagnitudeType getTolerance() const = 0;
107
109 virtual const std::vector<MagnitudeType>* getTestValue() const = 0;
110
113 virtual Teuchos::RCP<MV> getSolution() = 0;
114
116 virtual bool getLOADetected() const = 0;
117
119
120};
121
122} // end namespace Belos
123
124#endif /* BELOS_STATUS_TEST_RESNORM_H */
Class which describes the linear problem to be solved by the iterative solver.
Declaration of basic traits for the multivector type.
Pure virtual base class for defining the status testing capabilities of Belos.
Traits class which defines basic operations on multivectors.
An abstract class of StatusTest for stopping criteria using residual norms.
Teuchos::ScalarTraits< ScalarType > SCT
virtual const std::vector< MagnitudeType > * getTestValue() const =0
Returns the test value, , computed in most recent call to CheckStatus.
virtual int defineScaleForm(ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue=Teuchos::ScalarTraits< MagnitudeType >::one())=0
Define the form of the scaling for the residual.
virtual MagnitudeType getTolerance() const =0
Returns the value of the tolerance, , set in the constructor.
virtual bool getShowMaxResNormOnly()=0
Returns whether the only maximum residual norm is displayed when the print() method is called.
virtual bool getLOADetected() const =0
Returns a boolean indicating a loss of accuracy has been detected in computing the residual.
virtual int getQuorum() const =0
Returns the number of residuals that must pass the convergence test before Passed is returned.
virtual int setQuorum(int quorum)=0
Sets the number of residuals that must pass the convergence test before Passed is returned.
virtual int setShowMaxResNormOnly(bool showMaxResNormOnly)=0
Set whether the only maximum residual norm is displayed when the print() method is called.
virtual int setTolerance(MagnitudeType tolerance)=0
Set the value of the tolerance.
virtual Teuchos::RCP< MV > getSolution()=0
Returns the current solution estimate that was computed for the most recent residual test.
MultiVecTraits< ScalarType, MV > MVT
virtual std::vector< int > convIndices()=0
Returns the std::vector containing the indices of the residuals that passed the test.
A pure virtual class for defining the status tests for the Belos iterative solvers.
NormType
The type of vector norm to compute.
ScaleType
The type of scaling to use on the residual norm value.