Belos Package Browser (Single Doxygen Collection) Development
Public Member Functions
Belos::GmresRejectsCandidateBasis Class Reference

Thrown if GmresBase's current candidate "basis" isn't a basis. More...

#include <BelosGmresBase.hpp>

Inheritance diagram for Belos::GmresRejectsCandidateBasis:
Inheritance graph

List of all members.

Public Member Functions

 GmresRejectsCandidateBasis (const std::string &what_arg)

Detailed Description

Thrown if GmresBase's current candidate "basis" isn't a basis.

Mark Hoemmen

This exception is thrown by GmresBase::advance(), if it rejected the computed candidate basis vector(s) due to (numerical) rank deficiency, and doesn't know how to recover.

This usually means that after orthogonalizing the candidate basis vector(s) returned by GmresBase::extendBasis(), the candidate vectors are not full rank. In the case of standard GMRES (flexible or not), this means the candidate basis vector has very small or zero norm. For CA-GMRES, the vectors might have nonzero norm, but are not full rank. CA-GMRES may choose to retry with a shorter candidate basis length, but if the candidate basis length is too short, it may opt to "give up." In that case, advance() throws this exception. Restarting with standard GMRES or even a different iterative method may be a good idea in that case.

Applications may choose to recover from or deal with this error in one or more of the following ways:

It might be good to verify that the matrix (and preconditioner) are nonzero.

This may not necessarily be a "logic error," since it may result from valid user input to correct code. (For example, the input matrix $A$ may be nonsingular in exact arithmetic, but ill-conditioned in the given floating-point precision.) However, this exception must inherit from BelosError, which is an std::logic_error.

Definition at line 186 of file BelosGmresBase.hpp.

Constructor & Destructor Documentation

Belos::GmresRejectsCandidateBasis::GmresRejectsCandidateBasis ( const std::string &  what_arg) [inline]

Definition at line 188 of file BelosGmresBase.hpp.

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines