Belos Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
BelosIteration.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_ITERATION_HPP
43
#define BELOS_ITERATION_HPP
44
48
49
#include "
BelosConfigDefs.hpp
"
50
#include "
BelosTypes.hpp
"
51
52
#include "Teuchos_Array.hpp"
53
#include "Teuchos_ParameterList.hpp"
54
#include "Teuchos_RCP.hpp"
55
#include "Teuchos_ScalarTraits.hpp"
56
57
58
namespace
Belos
{
59
60
template
<
class
ScalarType,
class
MV,
class
OP>
61
class
LinearProblem
;
62
63
template
<
class
ScalarType>
64
class
OutputManager
;
65
66
template
<
class
ScalarType,
class
MV,
class
OP>
67
class
StatusTest
;
68
69
template
<
class
ScalarType,
class
MV,
class
OP>
70
class
MatOrthoManager
;
71
72
template
<
class
ScalarType,
class
MV,
class
OP>
73
class
Iteration
{
74
75
public
:
76
78
79
81
Iteration
() {};
82
84
virtual
~Iteration
() {};
86
87
89
90
94
virtual
void
iterate
() = 0;
95
99
virtual
void
initialize
() = 0;
100
102
103
105
106
108
virtual
int
getNumIters
()
const
= 0;
109
111
virtual
void
resetNumIters
(
int
iter = 0 ) = 0;
112
115
virtual
Teuchos::RCP<const MV>
getNativeResiduals
( std::vector<
typename
Teuchos::ScalarTraits<ScalarType>::magnitudeType> *norms )
const
= 0;
116
118
121
virtual
Teuchos::RCP<MV>
getCurrentUpdate
()
const
= 0;
122
124
125
126
128
129
131
virtual
const
LinearProblem<ScalarType,MV,OP>
&
getProblem
()
const
= 0;
132
134
virtual
int
getBlockSize
()
const
= 0;
135
137
virtual
void
setBlockSize
(
int
blockSize) = 0;
138
140
virtual
bool
isInitialized
() = 0;
141
143
144
};
145
146
}
// end Belos namespace
147
148
#endif
/* BELOS_ITERATION_HPP */
BelosConfigDefs.hpp
Belos header file which uses auto-configuration information to include necessary C++ headers.
BelosTypes.hpp
Collection of types and exceptions used within the Belos solvers.
Belos::Iteration::initialize
virtual void initialize()=0
Initialize the solver with the initial vectors from the linear problem or random data.
Belos::Iteration::getNumIters
virtual int getNumIters() const =0
Get the current iteration count.
Belos::Iteration::getNativeResiduals
virtual Teuchos::RCP< const MV > getNativeResiduals(std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *norms) const =0
Belos::Iteration::~Iteration
virtual ~Iteration()
Destructor.
Definition
BelosIteration.hpp:84
Belos::Iteration::setBlockSize
virtual void setBlockSize(int blockSize)=0
Set the blocksize to be used by the iterative solver in solving this linear problem.
Belos::Iteration::isInitialized
virtual bool isInitialized()=0
States whether the solver has been initialized or not.
Belos::Iteration::Iteration
Iteration()
Default Constructor.
Definition
BelosIteration.hpp:81
Belos::Iteration::iterate
virtual void iterate()=0
This method performs linear solver iterations until the status test indicates the need to stop or an ...
Belos::Iteration::getBlockSize
virtual int getBlockSize() const =0
Get the blocksize to be used by the iterative solver in solving this linear problem.
Belos::Iteration::getCurrentUpdate
virtual Teuchos::RCP< MV > getCurrentUpdate() const =0
Get the current update to the linear system.
Belos::Iteration::resetNumIters
virtual void resetNumIters(int iter=0)=0
Reset the iteration count to iter.
Belos::Iteration::getProblem
virtual const LinearProblem< ScalarType, MV, OP > & getProblem() const =0
Get a constant reference to the linear problem.
Belos::LinearProblem
Definition
BelosLinearProblem.hpp:82
Belos::MatOrthoManager
Belos's templated virtual class for providing routines for orthogonalization and orthonormzalition of...
Definition
BelosMatOrthoManager.hpp:78
Belos::OutputManager
Belos's basic output manager for sending information of select verbosity levels to the appropriate ou...
Definition
BelosOutputManager.hpp:73
Belos::StatusTest
A pure virtual class for defining the status tests for the Belos iterative solvers.
Definition
BelosStatusTest.hpp:79
Belos
Definition
Belos_Details_EBelosSolverType.cpp:45
Generated by
1.17.0