<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 12, 2017 at 10:54 AM, Alexander Lindsay <span dir="ltr"><<a href="mailto:alexlindsay239@gmail.com" target="_blank">alexlindsay239@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm working with a relatively new set of physics (new to me) and the Jacobians are bad. While debugging the Jacobians, I've been running with different finite difference approximations. I've found in general that matrix-free approximation of the Jacobian action leads to much better convergence than explicitly forming the Jacobian matrix using finite differences. Should I be surprised by this or is this something that's known? It would be great if anyone has a reference they could point me to.</div></blockquote><div><br></div><div>They should give the same answer. Maybe I do not understand what you are doing. First, use -pc_type lu so that the linear solver is not a factor.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Just to illustrate the different solves:</div><div><br></div><div>Matrix-free (preconditioner formed from finite-differenced approximation of Jacobian):</div><div><br></div><div><div> 0 Nonlinear |R| = 2.259203e-02</div><div>      0 Linear |R| = 2.259203e-02</div><div>      1 Linear |R| = 2.259203e-02</div><div>      2 Linear |R| = 1.682777e-02</div><div>      3 Linear |R| = 9.274378e-09</div><div> 1 Nonlinear |R| = 1.744830e-02</div><div>      0 Linear |R| = 1.744830e-02</div><div>      1 Linear |R| = 2.335817e-08</div><div> 2 Nonlinear |R| = 2.704512e-08</div><div>      0 Linear |R| = 2.704512e-08</div><div>      1 Linear |R| = 1.265577e-14</div><div> 3 Nonlinear |R| = 1.478929e-10</div><div> Solve Converged!</div></div><div><br></div><div>Explicit formation of Jacobian using finite-differences (preconditioner formed from same matrix):</div><div><br></div><div><div> 0 Nonlinear |R| = 2.259203e-02</div><div>      0 Linear |R| = 2.259203e-02</div><div>      1 Linear |R| = 2.259203e-02</div><div>      2 Linear |R| = 1.481452e-12</div><div> 1 Nonlinear |R| = 2.258733e-02</div><div>      0 Linear |R| = 2.258733e-02</div><div>      1 Linear |R| = 2.258520e-02</div><div>      2 Linear |R| = 1.594456e-07</div><div> 2 Nonlinear |R| = 2.258733e-02</div><div>      0 Linear |R| = 2.258733e-02</div><div>      1 Linear |R| = 2.258520e-02</div><div>      2 Linear |R| = 1.869913e-07</div><div>Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations 2</div></div><div><br></div><div><br></div><div><br></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>