Preconditioned MINRES (PMINRES) iterative solver for symmetric indefinite linear systems. More...
#include <pminres.hpp>
Public Types | |
| using | OperatorType = OperatorT |
| Operator type to be solved. | |
| using | SolutionVectorType = SrcOf< OperatorType > |
| Solution vector type. | |
| using | RHSVectorType = DstOf< OperatorType > |
| Right-hand side vector type. | |
| using | ScalarType = typename SolutionVectorType::ScalarType |
| Scalar type for computations. | |
Public Member Functions | |
| PMINRES (const IterativeSolverParameters ¶ms, const std::shared_ptr< util::Table > &statistics, const std::vector< SolutionVectorType > &tmp) | |
| Construct a PMINRES solver with default identity preconditioner. | |
| PMINRES (const IterativeSolverParameters ¶ms, const std::shared_ptr< util::Table > &statistics, const std::vector< SolutionVectorType > &tmp, const PreconditionerT preconditioner) | |
| Construct a PMINRES solver with a custom preconditioner. | |
| void | set_tag (const std::string &tag) |
| Set a tag string for statistics output. | |
| void | solve_impl (OperatorType &A, SolutionVectorType &x, const RHSVectorType &b) |
| Solve the linear system \( Ax = b \) using PMINRES. Calls the iterative solver and updates statistics. | |
Preconditioned MINRES (PMINRES) iterative solver for symmetric indefinite linear systems.
See, e.g.,
Satisfies the SolverLike concept (see solver.hpp). Supports optional preconditioning.
| OperatorT | Operator type (must satisfy OperatorLike). |
| PreconditionerT | Preconditioner type (must satisfy SolverLike, defaults to IdentitySolver). |
| using terra::linalg::solvers::PMINRES< OperatorT, PreconditionerT >::OperatorType = OperatorT |
Operator type to be solved.
| using terra::linalg::solvers::PMINRES< OperatorT, PreconditionerT >::RHSVectorType = DstOf< OperatorType > |
Right-hand side vector type.
| using terra::linalg::solvers::PMINRES< OperatorT, PreconditionerT >::ScalarType = typename SolutionVectorType::ScalarType |
Scalar type for computations.
| using terra::linalg::solvers::PMINRES< OperatorT, PreconditionerT >::SolutionVectorType = SrcOf< OperatorType > |
Solution vector type.
|
inline |
Construct a PMINRES solver with default identity preconditioner.
| params | Iterative solver parameters. |
| statistics | Shared pointer to statistics table. |
| tmp | Temporary vectors for workspace. |
|
inline |
Construct a PMINRES solver with a custom preconditioner.
| params | Iterative solver parameters. |
| statistics | Shared pointer to statistics table. |
| tmp | Temporary vectors for workspace. |
| preconditioner | Preconditioner solver. |
|
inline |
Set a tag string for statistics output.
| tag | Tag string. |
|
inline |
Solve the linear system \( Ax = b \) using PMINRES. Calls the iterative solver and updates statistics.
| A | Operator (matrix). |
| x | Solution vector (output). |
| b | Right-hand side vector (input). |
< Temporary vector for A*z.
< Temporary vector for v_{j-1}.
< Temporary vector for v_j.
< Temporary vector for w_{j-1}.
< Temporary vector for w_j.
< Temporary vector for z_{j+1}.
< Temporary vector for z.