[petsc-users] DIVERGED_DTOL with SNES after switching to 3.8

Smith, Barry F. bsmith at mcs.anl.gov
Sat Oct 28 09:44:19 CDT 2017


  Run with something like   -snes_divergence_tolerance 1e20

  Barry







> On Oct 28, 2017, at 9:31 AM, David Knezevic <david.knezevic at akselos.com> wrote:
> 
> Hi all,
> 
> I updated to the head of the maint branch (b5b0337). Previously (with version 3.7), I had a SNES test case that converged like this:
> 
>   NL step  0, |residual|_2 = 9.074962e-03
>   NL step  1, |residual|_2 = 5.516783e+03
>   NL step  2, |residual|_2 = 1.370884e-12
> Number of nonlinear iterations: 2
> Nonlinear solver convergence/divergence reason: CONVERGED_FNORM_RELATIVE
> 
> and now I get the following behavior:
> 
>   NL step  0, |residual|_2 = 9.074962e-03
>   NL step  1, |residual|_2 = 5.516783e+03
> Number of nonlinear iterations: 1
> Nonlinear solver convergence/divergence reason: DIVERGED_DTOL
> 
> I didn't change anything in my code, so I guess the default DTOL options in SNES have changed? If someone could suggest how I can recover the old behavior, that'd be great.
> 
> (Note that this is a contact problem using an augmented Lagrangian penalty method, so the convergence is pretty nasty and it's hard to avoid these large jumps in the residual, so I don't want to get the DIVERGED_DTOL error in this case.)
> 
> Thanks,
> David



More information about the petsc-users mailing list