On Wed, Jul 1, 2015 at 7:19 AM, Michael White <mrwh...@umn.edu> wrote:
> Hello, > > I am not quite sure how to use the L-BFGS implementation in PETSc with a > preconditioner that approximates the Jacobian. As far as I understand it, > L-BFGS is like Newton's Method but doesn't require the user to input the > Jacobian matrix. However, for my application, I do have a good > preconditioner that approximates the Jacobian matrix. My question is where > to input such a preconditioner. I have 3 possible guesses about the correct > way to do it. > > 1. Use SNESSetJacobian to provide a function which computes the > preconditioner. I'm unsure if this information is even used though, since > L-BFGS builds its own approximation to the inverse Jacobian as it goes. > > 2. Use SNESQNSetScaleType with SNES_QN_SCALE_JACOBIAN to set my > preconditioner as an initial approximation to the Jacobian somehow? > This is the intent, but we have no tests of this in PETSc, so let me know if this works. Jed Brown and Peter Brune have a paper where they do this and it has the options they used. > 3. Use an SNESSetNPC with my preconditioner as a linear preconditioner? > > Anyone that could point me in the right direction would be greatly > appreciated. > Why are you using L-BFGS if you have a good Jacobian preconditioner? You could do Newton with that preconditioning matrix and MF application of the Jacobian. Thanks, Matt > Best regards, > Michael White > > > -- 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