[petsc-users] GMRES stability

Barry Smith bsmith at mcs.anl.gov
Thu Feb 26 22:36:39 CST 2015


  By stability I assume you mean the the GMRES does not converge (or converges too slowly)?

  The way to improve GMRES convergence is with a preconditioner better suited to your problem. By default PETSc uses GMRES with a block Jacobi preconditioner with one block per process and ILU(0) on each block. For some problems this is fine, but for many problems it will give bad convergence.

   What do you get for -ksp_view  (are you using the default?) Are you running yet in parallel?

  As a test on one process you can use GS in PETSc as the preconditioner and make sure you get similar convergence to your code. For example -ksp_richardson -pc_type sor on one processor will give you a GS solver.
 
   Once we know a bit more about your problem we can suggest better preconditioners.

  Barry


> On Feb 26, 2015, at 10:25 PM, Orxan Shibliyev <orxan.shibli at gmail.com> wrote:
> 
> Hi
> 
> I tried to solve Ax=b with my own Gauss-Seidel code and Petsc's GMRES.
> With my GS, for a steady state problem I can set CFL=40 and for
> unsteady case can set dt=0.1. However, for GMRES I can't set CFL more
> than 5 and for unsteady case dt more than 0.00001. I need GMRES for
> parallel computations so I cannot use GS for this purpose. Is there a
> way to improve the stability of GMRES?



More information about the petsc-users mailing list