Version 1.3.0

14th August 2013

Recent Changes

Code Download

  • Single
  • Double

MI15 Unsymmetric system: flexible GMRES

This routine uses the ‘Flexible Generalized Minimal Residual’ method with restarts every m iterations, FGMRES(m), to solve the n × n unsymmetric linear system Ax = b, optionally using preconditioning. FGMRES(m) generalises the preconditioned GMRES(m) allowing the possibility of using a different right preconditioner PR(i) at each step in solving the preconditioned system

Āx = b̄ (1)

where Ā = PLA and b̄ = PLb and PL is a left preconditioner. Reverse communication is used for preconditioning operations and matrix-vector products of the form Az.

If PR(i) does not change at each step i, in exact arithmetic the algorithm computes the same solution as GMRES(m) applied to (1). FGMRES(m) needs more memory than GMRES(m) and, in particular, stores an additional n × n real matrix. However, in floating point arithmetic, FGMRES(m) is numerically more stable than the GMRES(m) method.

If Gaussian elimination with static pivoting option has been used to compute an approximate LU factorization of A, FGMRES(m) can be used to recover full backward error stability. In this case the left preconditioner should be chosen to be the identity and the right preconditioner should be chosen to be PR(i) = PR = (LU)1.