[petsc-users] Question regarding preconditioning in L-BFGS

Matthew Knepley knepley at gmail.com
Wed Jul 1 05:43:25 CDT 2015

On Wed, Jul 1, 2015 at 7:19 AM, Michael White <mrwhite at 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.



> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150701/26dba8c1/attachment.html>

More information about the petsc-users mailing list