|
Belos Version of the Day
|
The LSQRSolMgr managers the LSQR linear least squares solver. More...
#include <BelosLSQRSolMgr.hpp>

Public Member Functions | |
Construct/Destroy | |
| LSQRSolMgr () | |
| Empty constructor for LSQRSolMgr. This constructor takes no arguments and sets the default values for the solver. The linear problem must be passed in using setProblem() before solve() is called on this object. The solver values can be changed using setParameters(). | |
| LSQRSolMgr (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< Teuchos::ParameterList > &pl) | |
| Basic constructor for LSQRSolMgr. | |
| virtual | ~LSQRSolMgr () |
| Destructor. | |
Accessor methods | |
| const LinearProblem < ScalarType, MV, OP > & | getProblem () const |
| Get current linear problem being solved for in this object. | |
| Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
| Get a parameter list containing the valid parameters for this object. | |
| Teuchos::RCP< const Teuchos::ParameterList > | getCurrentParameters () const |
| Get a parameter list containing the current parameters for this object. | |
| Teuchos::Array< Teuchos::RCP < Teuchos::Time > > | getTimers () const |
| Return the timers for this object. | |
| int | getNumIters () const |
| Iteration count from the last solve. | |
| MagnitudeType | getMatCondNum () const |
| Estimated matrix condition number from the last solve. | |
| MagnitudeType | getMatNorm () const |
| Estimated matrix Frobenius norm from the last solve. | |
| MagnitudeType | getResNorm () const |
| Estimated residual norm from the last solve. | |
| MagnitudeType | getMatResNorm () const |
Estimate of (residual vector ) from the last solve. | |
| bool | isLOADetected () const |
| Whether a loss of accuracy was detected during the last solve. | |
Set methods | |
| void | setProblem (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem) |
| Set the linear problem that needs to be solved. | |
| void | setParameters (const Teuchos::RCP< Teuchos::ParameterList > ¶ms) |
| Set the parameters the solver manager should use to solve the linear problem. | |
Reset methods | |
| void | reset (const ResetType type) |
reset the solver manager as specified by the ResetType, informs the solver manager that the solver should prepare for the next call to solve by resetting certain elements of the iterative solver strategy. | |
Solver application methods | |
| ReturnType | solve () |
| method that performs possibly repeated calls to the underlying linear solver's iterate() routine until the problem has been solved (as defined by the solver manager) or the solver manager decides to quit. | |
Overridden from Teuchos::Describable | |
| std::string | description () const |
| Method to return description of the LSQR solver manager. | |
The LSQRSolMgr managers the LSQR linear least squares solver.
Implementation of the LSQR method for solving least-squares problems.
The LSQR method (Paige and Saunders 1982)
LSQR solves a least-squares problem. A converged preconditioned residual norm suffices for convergence, but is not necessary. LSQR sometimes returns a larger relative residual norm than what would have been returned by a linear solver. For details on the stopping criteria, see the documentation of LSQRStatusTest, which implements the three-part stopping criterion recommended by Paige and Saunders.
If the linear problem to solve includes a preconditioner, then the least-squares problem is solved for the preconditioned linear system. Preconditioning changes the least-squares problem (in the sense of changing the norms), and the solution depends on the preconditioner in this sense.
In the context of linear least-squares problems, "preconditioning" refers to the regularization matrix. In this solver, the regularization matrix is always a scalar multiple of the identity (standard form least squares).
The "loss of accuracy" concept is not yet implemented here, becuase it is unclear what this means for linear least squares. LSQR solves an inconsistent system in a least-squares sense. "Loss of accuracy" would correspond to the difference between the preconditioned residual and the unpreconditioned residual.
References:
C. C. Paige and M. A. Saunders, LSQR: An algorithm for sparse linear equations and sparse least squares, TOMS 8(1), 43-71 (1982).
C. C. Paige and M. A. Saunders, Algorithm 583; LSQR: Sparse linear equations and least-squares problems, TOMS 8(2), 195-209 (1982).
See also the LSQR web page.
Definition at line 171 of file BelosLSQRSolMgr.hpp.
| Belos::LSQRSolMgr< ScalarType, MV, OP >::LSQRSolMgr | ( | ) |
Empty constructor for LSQRSolMgr. This constructor takes no arguments and sets the default values for the solver. The linear problem must be passed in using setProblem() before solve() is called on this object. The solver values can be changed using setParameters().
Definition at line 411 of file BelosLSQRSolMgr.hpp.
| Belos::LSQRSolMgr< ScalarType, MV, OP >::LSQRSolMgr | ( | const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > & | problem, |
| const Teuchos::RCP< Teuchos::ParameterList > & | pl | ||
| ) |
Basic constructor for LSQRSolMgr.
This constructor accepts the LinearProblem to be solved in addition to a parameter list of options for the solver manager. Blocks of size > 1 are not implemented. The options are otherwise the BlockGmres options.
MagnitudeType specifying the upper limit of the estimate of the norm of Abar to decide convergence. Default: 0.OrthoManagerFactory for a list of the available orthogonalization methods.MagnitudeType that specifies the regularization parameter. Definition at line 420 of file BelosLSQRSolMgr.hpp.
| virtual Belos::LSQRSolMgr< ScalarType, MV, OP >::~LSQRSolMgr | ( | ) | [inline, virtual] |
Destructor.
Definition at line 224 of file BelosLSQRSolMgr.hpp.
| const LinearProblem<ScalarType,MV,OP>& Belos::LSQRSolMgr< ScalarType, MV, OP >::getProblem | ( | ) | const [inline, virtual] |
Get current linear problem being solved for in this object.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 232 of file BelosLSQRSolMgr.hpp.
| Teuchos::RCP< const Teuchos::ParameterList > Belos::LSQRSolMgr< ScalarType, MV, OP >::getValidParameters | ( | ) | const [virtual] |
Get a parameter list containing the valid parameters for this object.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 441 of file BelosLSQRSolMgr.hpp.
| Teuchos::RCP<const Teuchos::ParameterList> Belos::LSQRSolMgr< ScalarType, MV, OP >::getCurrentParameters | ( | ) | const [inline, virtual] |
Get a parameter list containing the current parameters for this object.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 242 of file BelosLSQRSolMgr.hpp.
| Teuchos::Array<Teuchos::RCP<Teuchos::Time> > Belos::LSQRSolMgr< ScalarType, MV, OP >::getTimers | ( | ) | const [inline] |
Return the timers for this object.
The timers are ordered as follows:
Definition at line 249 of file BelosLSQRSolMgr.hpp.
| int Belos::LSQRSolMgr< ScalarType, MV, OP >::getNumIters | ( | ) | const [inline, virtual] |
Iteration count from the last solve.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 254 of file BelosLSQRSolMgr.hpp.
| MagnitudeType Belos::LSQRSolMgr< ScalarType, MV, OP >::getMatCondNum | ( | ) | const [inline] |
Estimated matrix condition number from the last solve.
LSQR computes a running condition number estimate of the (preconditioned, if applicable) operator.
Definition at line 262 of file BelosLSQRSolMgr.hpp.
| MagnitudeType Belos::LSQRSolMgr< ScalarType, MV, OP >::getMatNorm | ( | ) | const [inline] |
Estimated matrix Frobenius norm from the last solve.
LSQR computes a running Frobenius norm estimate of the (preconditioned, if applicable) operator.
Definition at line 270 of file BelosLSQRSolMgr.hpp.
| MagnitudeType Belos::LSQRSolMgr< ScalarType, MV, OP >::getResNorm | ( | ) | const [inline] |
Estimated residual norm from the last solve.
LSQR computes the current residual norm. LSQR can solve inconsistent linear systems in a least-squares sense, so the residual norm may not necessarily be small, even if LSQR converges. (LSQR defines "convergence" to allow for possibly inconsistent systems. See the documentation of LSQRStatusTest for details.)
Definition at line 282 of file BelosLSQRSolMgr.hpp.
| MagnitudeType Belos::LSQRSolMgr< ScalarType, MV, OP >::getMatResNorm | ( | ) | const [inline] |
Estimate of
(residual vector
) from the last solve.
Definition at line 287 of file BelosLSQRSolMgr.hpp.
| bool Belos::LSQRSolMgr< ScalarType, MV, OP >::isLOADetected | ( | ) | const [inline, virtual] |
Whether a loss of accuracy was detected during the last solve.
The "loss of accuracy" concept is not yet implemented here, becuase it is unclear what this means for linear least squares. LSQR solves a possibly inconsistent linear system in a least-squares sense. "Loss of accuracy" would correspond to the difference between the preconditioned residual and the unpreconditioned residual.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 299 of file BelosLSQRSolMgr.hpp.
| void Belos::LSQRSolMgr< ScalarType, MV, OP >::setProblem | ( | const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > & | problem | ) | [inline, virtual] |
Set the linear problem that needs to be solved.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 307 of file BelosLSQRSolMgr.hpp.
| void Belos::LSQRSolMgr< ScalarType, MV, OP >::setParameters | ( | const Teuchos::RCP< Teuchos::ParameterList > & | params | ) | [virtual] |
Set the parameters the solver manager should use to solve the linear problem.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 528 of file BelosLSQRSolMgr.hpp.
| void Belos::LSQRSolMgr< ScalarType, MV, OP >::reset | ( | const ResetType | type | ) | [inline, virtual] |
reset the solver manager as specified by the ResetType, informs the solver manager that the solver should prepare for the next call to solve by resetting certain elements of the iterative solver strategy.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 320 of file BelosLSQRSolMgr.hpp.
| Belos::ReturnType Belos::LSQRSolMgr< ScalarType, MV, OP >::solve | ( | ) | [virtual] |
method that performs possibly repeated calls to the underlying linear solver's iterate() routine until the problem has been solved (as defined by the solver manager) or the solver manager decides to quit.
This method calls LSQRIter::iterate(), which will return either because a specially constructed status test evaluates to Passed or an std::exception is thrown.
A return from LSQRIter::iterate() signifies that either
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 834 of file BelosLSQRSolMgr.hpp.
| std::string Belos::LSQRSolMgr< ScalarType, MV, OP >::description | ( | ) | const [virtual] |
Method to return description of the LSQR solver manager.
Reimplemented from Teuchos::Describable.
Definition at line 977 of file BelosLSQRSolMgr.hpp.
1.7.4