Can anyone enlighten me as to how is the Scialb “tolerance” of the iterative solver GMRES defined? Scilab’s help on GMRES gives only this inadequate description:
" tol
error tolerance (default: 1e-6) "
without any qualification as to what exactly this relates to. Au contraire, for, say, BiCGSTAB iterative solver (part of the “conjgrad” group of iterative solvers), Scilab’s help gives the clear and complete description:
" tol
error relative tolerance (default: 1e-8). The termination criteria is based on the 2-norm of the residual r=b-Ax, divided by the 2-norm of the right hand side b."
which, AFAIK, is what the world+dog (including myself) use to check the convergence of an iterative solver.
Initially I thought this applies to GMRES too (despite the inadequate description mentioned above), however, it seems this is not the case. This is manifested in the results produced when the same linear system Ax=b is solved by my own hand-crafted Jacobi solver (accelerated either by straight Aitken or by Jennings-modified Aitken or by Irons-modified Aitken, all using exclusively matrix/vector constructs, i.e., no explicit for-loops whatsoever). I get results pretty identical to those of BiCGSTAB (obviously because both solvers use identical tolerances as convergence criteria) but slighly off results by GMRES. Which makes me suspect that specifying, say, 1.e-8 as tolerance in GMRES is not the same as specifying that same number in BiCGSTAB.
TIA.