Belos
Version of the Day
|
"Container" for the GMRES projected least-squares problem. More...
#include <BelosProjectedLeastSquaresSolver.hpp>
Public Types | |
typedef Scalar | scalar_type |
The type of the entries in the projected least-squares problem. More... | |
typedef Teuchos::ScalarTraits < Scalar >::magnitudeType | magnitude_type |
The type of the magnitude of scalar_type values. More... | |
Public Member Functions | |
ProjectedLeastSquaresProblem (const int maxNumIterations) | |
Constructor. More... | |
void | reset (const typename Teuchos::ScalarTraits< Scalar >::magnitudeType beta) |
Reset the projected least-squares problem. More... | |
void | reallocateAndReset (const typename Teuchos::ScalarTraits< Scalar >::magnitudeType beta, const int maxNumIterations) |
(Re)allocate and reset the projected least-squares problem. More... | |
Public Attributes | |
Teuchos::SerialDenseMatrix < int, Scalar > | H |
The upper Hessenberg matrix from GMRES. More... | |
Teuchos::SerialDenseMatrix < int, Scalar > | R |
Upper triangular factor from the QR factorization of H. More... | |
Teuchos::SerialDenseMatrix < int, Scalar > | y |
Current solution of the projected least-squares problem. More... | |
Teuchos::SerialDenseMatrix < int, Scalar > | z |
Current right-hand side of the projected least-squares problem. More... | |
Teuchos::Array< Scalar > | theCosines |
Array of cosines from the computed Givens rotations. More... | |
Teuchos::Array< Scalar > | theSines |
Array of sines from the computed Givens rotations. More... | |
"Container" for the GMRES projected least-squares problem.
See the documentation of ProjectedLeastSquaresSolver to learn how to use this class in a GMRES or Flexible GMRES iterative linear solver.
Definition at line 159 of file BelosProjectedLeastSquaresSolver.hpp.
Belos::details::ProjectedLeastSquaresProblem< Scalar >::scalar_type |
The type of the entries in the projected least-squares problem.
Definition at line 163 of file BelosProjectedLeastSquaresSolver.hpp.
Belos::details::ProjectedLeastSquaresProblem< Scalar >::magnitude_type |
The type of the magnitude of scalar_type
values.
Definition at line 166 of file BelosProjectedLeastSquaresSolver.hpp.
|
inline |
Constructor.
Reserve space for a projected least-squares problem of dimension at most (maxNumIterations+1) by maxNumIterations. "Iterations" refers to GMRES iterations. We assume that after the first iteration (not counting the computation of the initial residual as an iteration), the projected least-squares problem has dimension 2 by 1.
Definition at line 237 of file BelosProjectedLeastSquaresSolver.hpp.
|
inline |
Reset the projected least-squares problem.
"Reset" means that the right-hand side of the projected least-squares problem is restored to . The value is typically the norm of the initial or restarted residual vector.
This method does not reallocate or resize any of the matrices or vectors. Since this class keeps the original upper Hessenberg matrix, the application may choose to recompute its QR factorization up to the desired point and apply the resulting Givens rotations to the right-hand size z resulting from this reset operation. Alternately, the application may simply overwrite the upper Hessenberg matrix's entries with new data.
beta | [in] The initial residual norm of the (non-projected) linear system . |
Definition at line 265 of file BelosProjectedLeastSquaresSolver.hpp.
|
inline |
(Re)allocate and reset the projected least-squares problem.
"(Re)allocate" means to (re)size H, R, y, and z to their appropriate maximum dimensions, given the maximum number of iterations that GMRES may execute. "Reset" means to do what the reset()
method does. Reallocation happens first, then reset.
beta | [in] The initial residual norm of the (non-projected) linear system . |
maxNumIterations | [in] The maximum number of iterations that GMRES may execute. |
Definition at line 292 of file BelosProjectedLeastSquaresSolver.hpp.
Teuchos::SerialDenseMatrix<int,Scalar> Belos::details::ProjectedLeastSquaresProblem< Scalar >::H |
The upper Hessenberg matrix from GMRES.
This matrix's number of rows is one more than its number of columns. The updating methods never modify H; they just copy out the relevant data into R. This allows GMRES implementations to implement features like backtracking (throwing away iterations).
Definition at line 175 of file BelosProjectedLeastSquaresSolver.hpp.
Teuchos::SerialDenseMatrix<int,Scalar> Belos::details::ProjectedLeastSquaresProblem< Scalar >::R |
Upper triangular factor from the QR factorization of H.
R is a matrix with the same dimensions as H. It is used for computing and storing the incrementally computed upper triangular factor from the QR factorization of H. R must have the same dimensions as H (the number of rows is one more than the number of columns).
H[0:k, 0:k-1] (inclusive zero-based index ranges) is the upper Hessenberg matrix for the first k iterations of GMRES (where k = 0, 1, 2, ...).
Definition at line 188 of file BelosProjectedLeastSquaresSolver.hpp.
Teuchos::SerialDenseMatrix<int,Scalar> Belos::details::ProjectedLeastSquaresProblem< Scalar >::y |
Current solution of the projected least-squares problem.
The vector (matrix with one column) y has the same number of rows as H. It is used to store the solution of the projected least-squares problem at each step. The vector should have one more entry than necessary for the solution, because of the way we solve the least-squares problem. (Most of the methods require copying the right-hand side vector into y, and the right-hand side has one more entry than the solution.)
Definition at line 200 of file BelosProjectedLeastSquaresSolver.hpp.
Teuchos::SerialDenseMatrix<int,Scalar> Belos::details::ProjectedLeastSquaresProblem< Scalar >::z |
Current right-hand side of the projected least-squares problem.
The vector (one-column matrix) z has the same number of rows as H. It stores the current right-hand side of the projected least-squares problem. The z vector may be updated either progressively (if a Givens rotation method is used) or all at once (if an LAPACK factorization method is used).
Definition at line 210 of file BelosProjectedLeastSquaresSolver.hpp.
Teuchos::Array<Scalar> Belos::details::ProjectedLeastSquaresProblem< Scalar >::theCosines |
Array of cosines from the computed Givens rotations.
This array is only filled in if a Givens rotation method is used for updating the least-squares problem.
In the complex-arithmetic case, it is possible to compute entirely real-valued cosines. However, we choose to represent them as the original scalar type, rather than the magnitude type.
Definition at line 221 of file BelosProjectedLeastSquaresSolver.hpp.
Teuchos::Array<Scalar> Belos::details::ProjectedLeastSquaresProblem< Scalar >::theSines |
Array of sines from the computed Givens rotations.
This array is only filled in if a Givens rotation method is used for updating the least-squares problem.
Definition at line 227 of file BelosProjectedLeastSquaresSolver.hpp.