Version 1.1.0

15th April 2015

Recent Changes

Code Download

  • Single
  • Double

HSL_MI29 MPGMRES: an extension of GMRES which allows multiple preconditioners

This package solves the n × n unsymmetric linear system Ax = b using the iterative method restarted MPGMRES, otherwise known as MPGMRES(m). MPGMRES(m) is itself a generalization of the standard right-preconditioned generalized minimal residual method with restarts (GMRES(m)) that allows the user to employ multiple preconditioners at each iteration.

MPGMRES comes in two variants: complete and selective. Complete MPGMRES finds the approximation which minimizes the 2-norm of the residual over some space, termed the multi-Krylov space, which is defined by the choice of preconditioners. This search space grows exponentially with the iteration number, and so this version is generally to be avoided in practice, but useful in diagnostics. A selective version of MPGMRES finds an approximation to the solution in some subspace of the full multi-Krylov space, the dimension of which will grow only linearly with the iteration number. The use of both variants is supported in this package.

Reverse communication is used for preconditioning operations and matrix-vector/matrix-matrix products with A.