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?

3. Use an SNESSetNPC with my preconditioner as a linear preconditioner?

Anyone that could point me in the right direction would be greatly
appreciated.

Best regards,
Michael White

Reply via email to