On Tue, Dec 12, 2017 at 11:30 AM, Alexander Lindsay < [email protected]> wrote:
> I'm not using any hand-coded Jacobians. > This looks to me like the rules for FormFunction/Jacobian() are being broken. If the residual function depends on some third variable, and it changes between calls independent of the solution U, then the stored Jacobian could look wrong, but one done every time on the fly might converge. Matt > Case 1 options: -snes_fd -pc_type lu > > 0 Nonlinear |R| = 2.259203e-02 > 0 Linear |R| = 2.259203e-02 > 1 Linear |R| = 7.821248e-11 > 1 Nonlinear |R| = 2.258733e-02 > 0 Linear |R| = 2.258733e-02 > 1 Linear |R| = 5.277296e-11 > 2 Nonlinear |R| = 2.258733e-02 > 0 Linear |R| = 2.258733e-02 > 1 Linear |R| = 5.993971e-11 > Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations 2 > > Case 2 options: -snes_fd -snes_mf_operator -pc_type lu > > 0 Nonlinear |R| = 2.259203e-02 > 0 Linear |R| = 2.259203e-02 > 1 Linear |R| = 2.258733e-02 > 2 Linear |R| = 3.103342e-06 > 3 Linear |R| = 6.779865e-12 > 1 Nonlinear |R| = 7.497740e-06 > 0 Linear |R| = 7.497740e-06 > 1 Linear |R| = 8.265413e-12 > 2 Nonlinear |R| = 7.993729e-12 > Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE iterations 2 > > On Tue, Dec 12, 2017 at 9:12 AM, zakaryah . <[email protected]> wrote: > >> When you say "Jacobians are bad" and "debugging the Jacobians", do you >> mean that the hand-coded Jacobian is wrong? In that case, why would you be >> surprised that the finite difference Jacobians, which are "correct" to >> approximation error, perform better? Otherwise, what does "Jacobians are >> bad" mean - ill-conditioned? Singular? Not symmetric? Not positive >> definite? >> > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
