This package solves the unsymmetric linear system 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 ﬁnds the approximation which minimizes the 2-norm of the residual over some space, termed the multi-Krylov space, which is deﬁned 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 ﬁnds 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 .