Belos Package Browser (Single Doxygen Collection)
Development
|
Implementation of the LSQR iteration. More...
#include <BelosLSQRIter.hpp>
Public Types | |
typedef Belos::MultiVecTraits < ScalarType, MV > | MVT |
typedef Belos::OperatorTraits < ScalarType, MV, OP > | OPT |
typedef Teuchos::ScalarTraits < ScalarType > | SCT |
typedef SCT::magnitudeType | MagnitudeType |
Private Member Functions | |
void | setStateSize () |
Method for initalizing the state storage needed by LSQR. More... | |
Private Attributes | |
const Teuchos::RCP < Belos::LinearProblem < ScalarType, MV, OP > > | lp_ |
const Teuchos::RCP < Belos::OutputManager < ScalarType > > | om_ |
const Teuchos::RCP < Belos::StatusTest < ScalarType, MV, OP > > | stest_ |
bool | initialized_ |
bool | stateStorageInitialized_ |
int | iter_ |
Teuchos::RCP< MV > | U_ |
Teuchos::RCP< MV > | V_ |
Teuchos::RCP< MV > | W_ |
MagnitudeType | lambda_ |
ScalarType | resid_norm_ |
ScalarType | frob_mat_norm_ |
ScalarType | mat_cond_num_ |
ScalarType | mat_resid_norm_ |
ScalarType | sol_norm_ |
ScalarType | bnorm_ |
Constructors/Destructor | |
LSQRIter (const Teuchos::RCP< Belos::LinearProblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< Belos::OutputManager< ScalarType > > &printer, const Teuchos::RCP< Belos::StatusTest< ScalarType, MV, OP > > &tester, Teuchos::ParameterList ¶ms) | |
LSQRIter constructor with linear problem, solver utilities, and parameter list of solver options. More... | |
virtual | ~LSQRIter () |
Destructor. More... | |
Solver methods | |
void | iterate () |
This method performs LSQR iterations until the status test indicates the need to stop or an error occurs (in which case, an std::exception is thrown). More... | |
void | initializeLSQR (LSQRIterationState< ScalarType, MV > &newstate) |
Initialize the solver to an iterate, completing the initial state. More... | |
void | initialize () |
The solver is initialized using initializeLSQR. More... | |
LSQRIterationState< ScalarType, MV > | getState () const |
Get the current state of the linear solver. More... | |
Status methods | |
int | getNumIters () const |
Get the current iteration count. More... | |
void | resetNumIters (int iter=0) |
Reset the iteration count. More... | |
Teuchos::RCP< const MV > | getNativeResiduals (std::vector< MagnitudeType > *) const |
Get the norms of the residuals native to the solver. More... | |
Teuchos::RCP< MV > | getCurrentUpdate () const |
Get the current update to the linear system. More... | |
Accessor methods | |
const Belos::LinearProblem < ScalarType, MV, OP > & | getProblem () const |
Get a constant reference to the linear problem. More... | |
int | getBlockSize () const |
Get the blocksize to be used by the iterative solver in solving this linear problem. More... | |
void | setBlockSize (int blockSize) |
Set the blocksize to be used by the iterative solver to solve this linear problem. More... | |
bool | isInitialized () |
States whether the solver has been initialized or not. More... | |
Implementation of the LSQR iteration.
Definition at line 43 of file BelosLSQRIter.hpp.
typedef Belos::MultiVecTraits<ScalarType,MV> Belos::LSQRIter< ScalarType, MV, OP >::MVT |
Definition at line 50 of file BelosLSQRIter.hpp.
typedef Belos::OperatorTraits<ScalarType,MV,OP> Belos::LSQRIter< ScalarType, MV, OP >::OPT |
Definition at line 51 of file BelosLSQRIter.hpp.
typedef Teuchos::ScalarTraits<ScalarType> Belos::LSQRIter< ScalarType, MV, OP >::SCT |
Definition at line 52 of file BelosLSQRIter.hpp.
typedef SCT::magnitudeType Belos::LSQRIter< ScalarType, MV, OP >::MagnitudeType |
Definition at line 53 of file BelosLSQRIter.hpp.
Belos::LSQRIter< ScalarType, MV, OP >::LSQRIter | ( | const Teuchos::RCP< Belos::LinearProblem< ScalarType, MV, OP > > & | problem, |
const Teuchos::RCP< Belos::OutputManager< ScalarType > > & | printer, | ||
const Teuchos::RCP< Belos::StatusTest< ScalarType, MV, OP > > & | tester, | ||
Teuchos::ParameterList & | params | ||
) |
LSQRIter constructor with linear problem, solver utilities, and parameter list of solver options.
This constructor takes pointers required by the linear solver iteration, in addition to a parameter list of options for the linear solver.
Definition at line 255 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Destructor.
Definition at line 74 of file BelosLSQRIter.hpp.
|
virtual |
This method performs LSQR iterations until the status test indicates the need to stop or an error occurs (in which case, an std::exception is thrown).
iterate() first determine whether the solver is initialized; if not, it will call initialize() without arguments. After initialization, iterate() iterates LSQR until the status test is Passed, and then returns to the caller.
The status test is queried at the beginning of the iteration.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 401 of file BelosLSQRIter.hpp.
void Belos::LSQRIter< ScalarType, MV, OP >::initializeLSQR | ( | LSQRIterationState< ScalarType, MV > & | newstate | ) |
Initialize the solver to an iterate, completing the initial state.
The LSQRIter contains a certain amount of state, consisting of two bidiagonalization vectors, a descent direction, a damping value, and various estimates of errors and the like.
newstate
which directly points to the multivectors in the solver, the data is not copied. Definition at line 312 of file BelosLSQRIter.hpp.
|
inlinevirtual |
The solver is initialized using initializeLSQR.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 107 of file BelosLSQRIter.hpp.
|
inline |
Get the current state of the linear solver.
The data is only valid if isInitialized() == true
.
Definition at line 120 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Get the current iteration count.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 142 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Reset the iteration count.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 145 of file BelosLSQRIter.hpp.
|
inline |
Get the norms of the residuals native to the solver.
Definition at line 149 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Get the current update to the linear system.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 154 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Get a constant reference to the linear problem.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 162 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Get the blocksize to be used by the iterative solver in solving this linear problem.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 165 of file BelosLSQRIter.hpp.
|
inlinevirtual |
Set the blocksize to be used by the iterative solver to solve this linear problem.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 170 of file BelosLSQRIter.hpp.
|
inlinevirtual |
States whether the solver has been initialized or not.
Implements Belos::Iteration< ScalarType, MV, OP >.
Definition at line 176 of file BelosLSQRIter.hpp.
|
private |
Method for initalizing the state storage needed by LSQR.
Definition at line 278 of file BelosLSQRIter.hpp.
|
private |
Definition at line 191 of file BelosLSQRIter.hpp.
|
private |
Definition at line 192 of file BelosLSQRIter.hpp.
|
private |
Definition at line 193 of file BelosLSQRIter.hpp.
|
private |
Definition at line 203 of file BelosLSQRIter.hpp.
|
private |
Definition at line 208 of file BelosLSQRIter.hpp.
|
private |
Definition at line 211 of file BelosLSQRIter.hpp.
|
private |
Definition at line 218 of file BelosLSQRIter.hpp.
|
private |
Definition at line 221 of file BelosLSQRIter.hpp.
|
private |
Definition at line 224 of file BelosLSQRIter.hpp.
|
private |
Definition at line 227 of file BelosLSQRIter.hpp.
|
private |
Definition at line 230 of file BelosLSQRIter.hpp.
|
private |
Definition at line 233 of file BelosLSQRIter.hpp.
|
private |
Definition at line 236 of file BelosLSQRIter.hpp.
|
private |
Definition at line 239 of file BelosLSQRIter.hpp.
|
private |
Definition at line 242 of file BelosLSQRIter.hpp.
|
private |
Definition at line 245 of file BelosLSQRIter.hpp.