[petsc-users] Petsc ILU PC Change between 3.6.4 and 3.7.x?

Klaij, Christiaan C.Klaij at marin.nl
Wed Aug 23 01:27:17 CDT 2017


Barry,

Thanks for the explanation.

We do have some rare cases that give false convergence, but
decided to use

 CALL KSPSetNormType(ksp,KSP_NORM_UNPRECONDITIONED,ierr)

so that convergence is always based on the true residual. Our
results are much more consistent now. So that could have been
your protection against the rare case as well, right? Why do you
prefer left preconditioning?

Chris



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/BlueWeek-October-911-Rostock.htm

________________________________________
From: Barry Smith <bsmith at mcs.anl.gov>
Sent: Tuesday, August 22, 2017 6:25 PM
To: Klaij, Christiaan
Cc: petsc-users at mcs.anl.gov
Subject: Re: [petsc-users] Petsc ILU PC Change between 3.6.4 and 3.7.x?

> On Aug 22, 2017, at 6:49 AM, Klaij, Christiaan <C.Klaij at marin.nl> wrote:
>
> We also faced this problem in our code. So I've added:
>
> CALL PetscOptionsSetValue(PETSC_NULL_OBJECT,"-sub_pc_factor_shift_type","nonzero",ierr)
>
> since there seems to be no setter function for this (correct me
> if I'm wrong). Then everythings fine again.
>
> Out of curiosity, what was the reason to change the default
> behaviour?

   The reason we changed this is that we would rather have a failure that makes the user aware of a serious problem then to produce "garbage" results. In some rare cases the shift can cause a huge jump in the preconditioned residual which then decreases rapidly while the true residual does not improve. This results in the KSP thinking it has converged while in fact it has essentially garbage for an answer. Under the previous model, where we shifted by default, users would in this rare case think they had reasonable solutions when they did not.

   For many users, such as yourself, the previous default behavior was fine because you didn't have the "rare case" but we decided it was best to protect against the rare case even though it would require other users such as yourself to add the option.

   Barry


More information about the petsc-users mailing list