# [petsc-users] snes failures

Matthew Knepley knepley at gmail.com
Fri May 20 09:47:55 CDT 2016

```On Fri, May 20, 2016 at 9:30 AM, Juha Jaykka <juhaj at iki.fi> wrote:

> > > It does not. And I should have mentioned earlier, that I tried
> -snes_mf, -
> > > snes_mf_operator, -snes_fd and -snes_fd_color already and none of those
> > > converges. Your suggested options result in
> >
> > For solver questions, I always need to see the result of
> >
> >   -snes_view -snes_monitor -ksp_converged_reason
> -ksp_monitor_true_residual
> > -snes_converged_reason
> >
> > Turn on LU for the linear solver so it plays no role.
>
> I'm not sure what you mean by the last sentence, but I ran with -pc_type lu
> and the other options you suggested. Output is in
> http://paste.debian.net/688191/
>
> I don't see anything wrong in it except it does not converge. :) And it
> settles in a weird oscillatory solution (looks almost like a sin()) whereas
> the real solution is 4*arctan(exp(x)).
>

Okay, so the linear solves are accurate and we think the Jacobian is
correct because
you ran with -snes_test, or ran using -snes_fd and it made no difference.

Nonlinear Gauss-Siedel (coordinate descent) converges but slowly, and
Newton does
not. This usually indicates a bad guess for Newton. I would now advocate
trying at least
two things:

1) Grid sequencing: This is easy if you use a DMDA. You just use
-snes_grid_sequence
and its automatic. Since you report that smaller grids converge, this
is usually enough.

2) NPC: If the above fails, I would try preconditioning Newton with GS.
You can do this
just using multiplicative composition, or left preconditioning.

If 1 works, then its likely that FAS would work even better.

Thanks,

Matt

>
> Cheers,
> Juha
>

--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their