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>
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
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.
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 on for Belos by doxygen 1.15.0