[petsc-users] CG with right preconditioning supports NONE norm type only

Klaij, Christiaan C.Klaij at marin.nl
Thu Mar 9 01:49:57 CST 2017


Barry,

I came across the same problem and decided to use KSPSetNormType
instead of KSPSetPCSide.  Do I understand correctly that CG with
KSP_NORM_UNPRECONDITIONED would be as efficient as with
KSP_NORM_PRECONDITIONED? Since PC_RIGHT is not supported, I was
under the impression that the former would basically be the
latter with an additional true residual evaluation for the
convergence monitor, which would be less efficient.

Chris

> On Mar 8, 2017, at 10:47 AM, Kong, Fande <fande.kong at inl.gov> wrote:
>
> Thanks Barry,
>
> We are using "KSPSetPCSide(ksp, pcside)" in the code.  I just tried "-ksp_pc_side right", and petsc did not error out.
>
> I like to understand why CG does not work with right preconditioning? Mathematically, the right preconditioning does not make sense?

   No, mathematically it makes sense to do it on the right. It is just that the PETSc code was never written to support it on the right. One reason is that CG is interesting that you can run with the true residual or the preconditioned residual with left preconditioning, hence less incentive to ever bother writing it to support right preconditioning. For completeness we should support right as well as symmetric.

  Barry


dr. ir. Christiaan Klaij  | Senior Researcher | Research & Development
MARIN | T +31 317 49 33 44 | mailto:C.Klaij at marin.nl | http://www.marin.nl

MARIN news: http://www.marin.nl/web/News/News-items/Your-future-is-Blue-Blueweek-April-1013.htm



More information about the petsc-users mailing list