Belos Version of the Day
Public Member Functions
Belos::GmresRejectsCandidateBasis Class Reference

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

Candidate "basis" isn't a basis.

Thrown by GmresBase::advance(), when it rejects 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) from extendBasis(), they are not full rank. In the case of standard GMRES, this means the candidate basis vector has 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 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" (i.e., coding bug), since it can result from a matrix which is nonsingular in exact arithmetic, but ill-conditioned. However, this exception must inherit from BelosError, which is an std::logic_error.

Definition at line 190 of file BelosGmresBase.hpp.

Constructor & Destructor Documentation

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

Definition at line 192 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