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
16
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, class DM>
29class LinearProblem;
30
31template <class ScalarType>
32class OutputManager;
33
34template <class ScalarType, class MV, class OP, class DM>
35class StatusTest;
36
37template <class ScalarType, class MV, class OP, class DM>
38class MatOrthoManager;
39
40template<class ScalarType, class MV, class OP, class DM = DefaultDenseMatrix<int, ScalarType>>
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
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 Teuchos::RCP< const MV > getNativeResiduals(std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *norms) const =0
virtual int getNumIters() const =0
Get the current iteration count.
virtual ~Iteration()
Destructor.
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 void initialize()=0
Initialize the solver with the initial vectors from the linear problem or random data.
virtual const LinearProblem< ScalarType, MV, OP, DM > & getProblem() const =0
Get a constant reference to the linear problem.
virtual bool isInitialized()=0
States whether the solver has been initialized or not.
virtual void resetNumIters(int iter=0)=0
Reset the iteration count to iter.
Iteration()
Default Constructor.
virtual void setBlockSize(int blockSize)=0
Set 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.
Belos's templated virtual class for providing routines for orthogonalization and orthonormzalition of...
Belos's basic output manager for sending information of select verbosity levels to the appropriate ou...
A pure virtual class for defining the status tests for the Belos iterative solvers.

Generated for Belos by doxygen 1.15.0