BiCGStab(l) iterative solver for general (possibly unsymmetric) linear systems. More...
#include <pbicgstab.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 | |
| PBiCGStab (const int l, const IterativeSolverParameters ¶ms, const std::shared_ptr< util::Table > &statistics, const std::vector< SolutionVectorType > &tmp, const PreconditionerT &preconditioner=IdentitySolver< OperatorT >()) | |
| Construct a PBiCGStab solver. | |
| void | set_tag (const std::string &tag) |
| Set a tag string for statistics output. | |
| void | set_convergence_rate_tolerance (const ScalarType &tolerance) |
| Sets the convergence rate tolerance. Iteration exits when that tolerance is surpassed. | |
| void | solve_impl (OperatorType &A, SolutionVectorType &x, const RHSVectorType &b) |
| Solve the linear system ( Ax = b ) using PBiCGStab. Calls the iterative solver and updates statistics. | |
BiCGStab(l) iterative solver for general (possibly unsymmetric) linear systems.
See
for details.
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::PBiCGStab< OperatorT, PreconditionerT >::OperatorType = OperatorT |
Operator type to be solved.
| using terra::linalg::solvers::PBiCGStab< OperatorT, PreconditionerT >::RHSVectorType = DstOf< OperatorType > |
Right-hand side vector type.
| using terra::linalg::solvers::PBiCGStab< OperatorT, PreconditionerT >::ScalarType = typename SolutionVectorType::ScalarType |
Scalar type for computations.
| using terra::linalg::solvers::PBiCGStab< OperatorT, PreconditionerT >::SolutionVectorType = SrcOf< OperatorType > |
Solution vector type.
|
inline |
Construct a PBiCGStab solver.
| l | Number of BiCG iterations per "minimal residual" (MR) step. |
| params | Iterative solver parameters. |
| statistics | Shared pointer to statistics table. |
| tmp | Temporary vectors for workspace. (At least 2 * (l + 1) + 2 vectors are required.) |
| preconditioner | Preconditioner solver (optional). |
|
inline |
Sets the convergence rate tolerance. Iteration exits when that tolerance is surpassed.
|
inline |
Set a tag string for statistics output.
| tag | Tag string. |
|
inline |
Solve the linear system ( Ax = b ) using PBiCGStab. Calls the iterative solver and updates statistics.
| A | Operator (matrix). |
| x | Solution vector (output). |
| b | Right-hand side vector (input). |
Lambda to add a row to the statistics table.