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