[petsc-users] Petsc ILU PC Change between 3.6.4 and 3.7.x?
Barry Smith
bsmith at mcs.anl.gov
Wed Aug 23 01:30:29 CDT 2017
Some argue that the preconditioned residual is "closer to" the norm of the error than the unpreconditioned norm. I don't have a solid mathematical reason to prefer left preconditioning with the preconditioned norm.
Barry
> On Aug 22, 2017, at 11:27 PM, Klaij, Christiaan <C.Klaij at marin.nl> wrote:
>
> 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