gmres - restart and Gauss-Seidel

Barry Smith bsmith at
Thu Aug 14 21:03:37 CDT 2008

On Aug 14, 2008, at 5:09 PM, Lukasz Kaczmarczyk wrote:

> Hello,
> I have implementation of geometric multi-grid for heterogeneous
> quasi-brittle materials for hybrid-trefftz finite elements (degrees of
> freedom are on faces -> small number of neighbours). Multi-grid
> algorithm need smoothing, for that I use Gauss-Seidel, however SOR
> implemented in PETSc is not parallel. That is way, I implemented my  
> own
> parallel Gauss-Seidel with colouring of faces in order to reduce
> communication. Everything seems to work prefect, except that that for
> GMRES after restart algorithm is divergent.

     What do you mean? It is converging fine until you hit the restart  
iteration and
then get a totally different residual norm? And then each iteration  
worse residuals?

    Please run with -ksp_monitor_true_residual and send the output.
If the preconditioner is not actually a linear operator (i.e. it has a  
bug in
smoother) then the residual norm computed  in GMRES may be wrong
and so GMRES may look like it is working but actually is basically
chugging on garbage. Also run with -ksp_type fgmres - 
and send the output.


> With SOR implemented in
> PETSc algorithm does not have this  problem. Can any give my tip how  
> to
> cure may problem.
> Regards,
> Lukasz

More information about the petsc-users mailing list