<div dir="ltr"><div class="gmail_default"><font face="arial, helvetica, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">I figured out the cause of my problems with the debugger and the Jacobian evaluation - I had a silly memory corruption issue which is now fixed.</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" color="#000000" style="background-color:rgb(255,255,255)"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" color="#000000" style="background-color:rgb(255,255,255)">I am still having trouble with convergence.  I am using a test problem of intermediate size, which has nearly identical Jacobians when comparing finite difference to hand-coded.  If I run with <span style="font-variant-ligatures:no-common-ligatures">-snes_type newtonls -snes_monitor -ksp_monitor -ksp_ksp_monitor -ksp_monitor_true_residual -ksp_converged_reason -snes_converged_reason, the very first SNES iteration fails to converge, due to the KSP failing to converge after 10,000 iterations.</span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" color="#000000" style="background-color:rgb(255,255,255)"><span style="font-variant-ligatures:no-common-ligatures"><br></span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><font color="#000000" style="background-color:rgb(255,255,255)"><span style="font-variant-ligatures:no-common-ligatures">Following the "Why is my iterative solver not converging?" FAQ, I ran the problem on an even smaller grid, with </span></font></font><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-variant-ligatures:no-common-ligatures">-snes_type newtonls -snes_monitor -ksp_monitor -ksp_ksp_monitor -ksp_monitor_true_residual -ksp_converged_reason -snes_converged_reason </span><font color="#000000" style="font-family:arial,helvetica,sans-serif"><span style="font-variant-ligatures:no-common-ligatures">-pc_type svd -pc_svd_monitor, and the linear system was not close to singular.  I don't have any reason to suspect that the linear system becomes more singular as the grid size increases.  Next, I ran with </span></font><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-variant-ligatures:no-common-ligatures">-snes_type newtonls -snes_monitor -ksp_monitor -ksp_ksp_monitor -ksp_monitor_true_residual -ksp_converged_reason -snes_converged_reason </span><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;white-space:pre-wrap">-ksp_gmres_restart 1000 -pc_type none, and the KSP seemed to converge better, but the SNES only ran for a few iterations before it stopped with "Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations 7".</span></div>







<div class="gmail_extra"><font face="arial, helvetica, sans-serif" color="#000000" style="background-color:rgb(255,255,255)"><br></font><div class="gmail_quote"><div class="gmail_default" style="font-size:small">​Can I conclude from this that running the KSP without a pre-conditioner ​is a good idea?  At that point, should I go back to asking why the SNES doesn't converge, ala the "Why is Newton's method not converging?" FAQ?</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Thanks for the continuing help!</div><br></div></div></div>