[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Something weird with SNES convergence reason




run with -ksp_monitor -ksp_converged_reason to see how the linear solver is working. Also try adding
-ksp_rtol 1.e-10 to see if solving the linear system more accurately helps (it really shouldn't matter).
You can also run with -info to get a lot more detailed information about the nonlinear solve and the
line search. This is suppose to be an easy nonlinear problem so I would expect it to converge easily,
there may be a slight error with your FormFunction() that starts to matter only for larger problems.


   Barry




On May 14, 2008, at 10:30 PM, Rafael Santos Coelho wrote:

Hello everybody,

I've coded a program which solves, in parallel, the three- dimensional Bratu problem. Afterwards, I've run tests in a cluster to see how it would go and, at first, it seemed ok to me, but then I've noticed that whenever I increased the number of processors (from 16 to 32, for example), the program started to diverge due to a failure in the Line Search Newton's Method. Here is what a monitoring function prints out:

nonlinear iteration number = 1, norm(F(x)) = 1013.53, linear iterations = 16
nonlinear iteration number = 2, norm(F(x)) = 1013.33, linear iterations = 32
nonlinear iteration number = 3, norm(F(x)) = 1013.33, linear iterations = 48
Nonlinear solve did not converge due to DIVERGED_LS_FAILURE


Indeed, one can see that the method is really diverging (for smaller tests, though, say N = 8 * 8 * 8, it converges).

What's wrong here? Is it something with my code? If yes, how can I fix it?

Best regards,

Rafael