Belos Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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"
22 #include "Teuchos_RCP.hpp"
23 #include "Teuchos_ScalarTraits.hpp"
24 
25 
26 namespace Belos {
27 
28 template <class ScalarType, class MV, class OP>
30 
31 template <class ScalarType>
33 
34 template <class ScalarType, class MV, class OP>
35 class StatusTest;
36 
37 template <class ScalarType, class MV, class OP>
39 
40 template<class ScalarType, class MV, class OP>
41 class Iteration {
42 
43  public:
44 
46 
47 
49  Iteration() {};
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 */
Collection of types and exceptions used within the Belos solvers.
virtual void iterate()=0
This method performs linear solver iterations until the status test indicates the need to stop or an ...
virtual Teuchos::RCP< const MV > getNativeResiduals(std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *norms) const =0
Get the residuals native to the solver.
Belos&#39;s basic output manager for sending information of select verbosity levels to the appropriate ou...
virtual int getBlockSize() const =0
Get the blocksize to be used by the iterative solver in solving this linear problem.
virtual ~Iteration()
Destructor.
virtual Teuchos::RCP< MV > getCurrentUpdate() const =0
Get the current update to the linear system.
A pure virtual class for defining the status tests for the Belos iterative solvers.
virtual int getNumIters() const =0
Get the current iteration count.
A linear system to solve, and its associated information.
virtual bool isInitialized()=0
States whether the solver has been initialized or not.
virtual const LinearProblem< ScalarType, MV, OP > & getProblem() const =0
Get a constant reference to the linear problem.
virtual void resetNumIters(int iter=0)=0
Reset the iteration count to iter.
virtual void setBlockSize(int blockSize)=0
Set the blocksize to be used by the iterative solver in solving this linear problem.
Iteration()
Default Constructor.
Belos&#39;s templated virtual class for providing routines for orthogonalization and orthonormzalition of...
virtual void initialize()=0
Initialize the solver with the initial vectors from the linear problem or random data.
Belos header file which uses auto-configuration information to include necessary C++ headers...