Belos  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
Belos::GmresIteration< ScalarType, MV, OP > Class Template Referenceabstract

#include <BelosGmresIteration.hpp>

Inheritance diagram for Belos::GmresIteration< ScalarType, MV, OP >:
Inheritance graph
[legend]

Public Member Functions

State methods
virtual void initializeGmres (GmresIterationState< ScalarType, MV > &newstate)=0
 Initialize the solver to an iterate, providing a complete state. More...
 
virtual GmresIterationState
< ScalarType, MV > 
getState () const =0
 Get the current state of the linear solver. More...
 
Status methods
virtual void updateLSQR (int dim=-1)=0
 Method for updating QR factorization of upper Hessenberg matrix. More...
 
virtual int getCurSubspaceDim () const =0
 Get the dimension of the search subspace used to generate the current solution to the linear problem. More...
 
virtual int getMaxSubspaceDim () const =0
 Get the maximum dimension allocated for the search subspace. More...
 
Accessor methods
virtual void setSize (int blockSize, int numBlocks)=0
 Set the blocksize and number of blocks to be used by the iterative solver in solving this linear problem. More...
 
- Public Member Functions inherited from Belos::Iteration< ScalarType, MV, OP >
 Iteration ()
 Default Constructor. More...
 
virtual ~Iteration ()
 Destructor. More...
 
virtual void iterate ()=0
 This method performs linear solver iterations until the status test indicates the need to stop or an error occurs (in which case, an std::exception is thrown). More...
 
virtual void initialize ()=0
 Initialize the solver with the initial vectors from the linear problem or random data. More...
 
virtual int getNumIters () const =0
 Get the current iteration count. More...
 
virtual void resetNumIters (int iter=0)=0
 Reset the iteration count to iter. More...
 
virtual Teuchos::RCP< const MV > getNativeResiduals (std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *norms) const =0
 Get the residuals native to the solver. More...
 
virtual Teuchos::RCP< MV > getCurrentUpdate () const =0
 Get the current update to the linear system. More...
 
virtual const LinearProblem
< ScalarType, MV, OP > & 
getProblem () const =0
 Get a constant reference to the linear problem. More...
 
virtual int getBlockSize () const =0
 Get the blocksize to be used by the iterative solver in solving this linear problem. More...
 
virtual void setBlockSize (int blockSize)=0
 Set the blocksize to be used by the iterative solver in solving this linear problem. More...
 
virtual bool isInitialized ()=0
 States whether the solver has been initialized or not. More...
 

Detailed Description

template<class ScalarType, class MV, class OP>
class Belos::GmresIteration< ScalarType, MV, OP >

Definition at line 141 of file BelosGmresIteration.hpp.

Member Function Documentation

template<class ScalarType , class MV , class OP >
virtual void Belos::GmresIteration< ScalarType, MV, OP >::initializeGmres ( GmresIterationState< ScalarType, MV > &  newstate)
pure virtual

Initialize the solver to an iterate, providing a complete state.

The GmresIteration contains a certain amount of state, consisting of the current residual, preconditioned residual, and decent direction.

initialize() gives the user the opportunity to manually set these, although only the current unpreconditioned residual is required.

Postcondition
isInitialized() == true (see post-conditions of isInitialize())
Note
For any pointer in newstate which directly points to the multivectors in the solver, the data is not copied.

Implemented in Belos::BlockFGmresIter< ScalarType, MV, OP >, and Belos::BlockGmresIter< ScalarType, MV, OP >.

template<class ScalarType , class MV , class OP >
virtual GmresIterationState<ScalarType,MV> Belos::GmresIteration< ScalarType, MV, OP >::getState ( ) const
pure virtual

Get the current state of the linear solver.

The data is only valid if isInitialized() == true.

Returns
A GmresIterationState object containing const pointers to the current solver state.

Implemented in Belos::BlockFGmresIter< ScalarType, MV, OP >, and Belos::BlockGmresIter< ScalarType, MV, OP >.

template<class ScalarType , class MV , class OP >
virtual void Belos::GmresIteration< ScalarType, MV, OP >::updateLSQR ( int  dim = -1)
pure virtual

Method for updating QR factorization of upper Hessenberg matrix.

Note
If dim >= getCurSubspaceDim() and dim < getMaxSubspaceDim(), then the dim-th equations of the least squares problem will be updated.

Implemented in Belos::BlockFGmresIter< ScalarType, MV, OP >, and Belos::BlockGmresIter< ScalarType, MV, OP >.

template<class ScalarType , class MV , class OP >
virtual int Belos::GmresIteration< ScalarType, MV, OP >::getCurSubspaceDim ( ) const
pure virtual

Get the dimension of the search subspace used to generate the current solution to the linear problem.

Implemented in Belos::BlockFGmresIter< ScalarType, MV, OP >, and Belos::BlockGmresIter< ScalarType, MV, OP >.

template<class ScalarType , class MV , class OP >
virtual int Belos::GmresIteration< ScalarType, MV, OP >::getMaxSubspaceDim ( ) const
pure virtual

Get the maximum dimension allocated for the search subspace.

Implemented in Belos::BlockFGmresIter< ScalarType, MV, OP >, and Belos::BlockGmresIter< ScalarType, MV, OP >.

template<class ScalarType , class MV , class OP >
virtual void Belos::GmresIteration< ScalarType, MV, OP >::setSize ( int  blockSize,
int  numBlocks 
)
pure virtual

Set the blocksize and number of blocks to be used by the iterative solver in solving this linear problem.

Changing either the block size or the number of blocks will reset the solver to an uninitialized state.

Implemented in Belos::BlockFGmresIter< ScalarType, MV, OP >, and Belos::BlockGmresIter< ScalarType, MV, OP >.


The documentation for this class was generated from the following file:

Generated on Fri Jun 5 2020 10:20:57 for Belos by doxygen 1.8.5