Belos Version of the Day
Loading...
Searching...
No Matches
BelosIteration.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#ifndef BELOS_ITERATION_HPP
11#define BELOS_ITERATION_HPP
12
17#include "BelosConfigDefs.hpp"
18#include "BelosTypes.hpp"
19
20#include "Teuchos_Array.hpp"
21#include "Teuchos_ParameterList.hpp"
22#include "Teuchos_RCP.hpp"
23#include "Teuchos_ScalarTraits.hpp"
24
25
26namespace Belos {
27
28template <class ScalarType, class MV, class OP>
29class LinearProblem;
30
31template <class ScalarType>
32class OutputManager;
33
34template <class ScalarType, class MV, class OP>
35class StatusTest;
36
37template <class ScalarType, class MV, class OP>
38class MatOrthoManager;
39
40template<class ScalarType, class MV, class OP>
41class Iteration {
42
43 public:
44
46
47
50
52 virtual ~Iteration() {};
54
55
57
58
62 virtual void iterate() = 0;
63
67 virtual void initialize() = 0;
68
70
71
73
74
76 virtual int getNumIters() const = 0;
77
79 virtual void resetNumIters( int iter = 0 ) = 0;
80
83 virtual Teuchos::RCP<const MV> getNativeResiduals( std::vector<typename Teuchos::ScalarTraits<ScalarType>::magnitudeType> *norms ) const = 0;
84
86
89 virtual Teuchos::RCP<MV> getCurrentUpdate() const = 0;
90
92
93
94
96
97
99 virtual const LinearProblem<ScalarType,MV,OP>& getProblem() const = 0;
100
102 virtual int getBlockSize() const = 0;
103
105 virtual void setBlockSize(int blockSize) = 0;
106
108 virtual bool isInitialized() = 0;
109
111
112};
113
114} // end Belos namespace
115
116#endif /* BELOS_ITERATION_HPP */
Belos header file which uses auto-configuration information to include necessary C++ headers.
Collection of types and exceptions used within the Belos solvers.
virtual void initialize()=0
Initialize the solver with the initial vectors from the linear problem or random data.
virtual int getNumIters() const =0
Get the current iteration count.
virtual Teuchos::RCP< const MV > getNativeResiduals(std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *norms) const =0
Get the residuals native to the solver.
virtual ~Iteration()
Destructor.
virtual void setBlockSize(int blockSize)=0
Set the blocksize to be used by the iterative solver in solving this linear problem.
virtual bool isInitialized()=0
States whether the solver has been initialized or not.
Iteration()
Default Constructor.
virtual void iterate()=0
This method performs linear solver iterations until the status test indicates the need to stop or an ...
virtual int getBlockSize() const =0
Get the blocksize to be used by the iterative solver in solving this linear problem.
virtual Teuchos::RCP< MV > getCurrentUpdate() const =0
Get the current update to the linear system.
virtual void resetNumIters(int iter=0)=0
Reset the iteration count to iter.
virtual const LinearProblem< ScalarType, MV, OP > & getProblem() const =0
Get a constant reference to the linear problem.
Alternative run-time polymorphic interface for operators.

Generated for Belos by doxygen 1.9.8