[petsc-users] Regarding SNESSetFunction and SNESSetJacobian

Matthew Knepley knepley at gmail.com
Fri Oct 9 06:38:24 CDT 2020


On Fri, Oct 9, 2020 at 4:53 AM baikadi pranay <pranayreddy865 at gmail.com>
wrote:

> Hello,
> I have a couple of questions regarding how SNESSetFunction,SNESSetJacobian
> and SNESSolve work together. I am trying to solve a nonlinear system of the
> form A(x)x=b(x). I am using Fortran90. The way I intend to solve the above
> equation is as follows:
> Step 1: initialize x with an initial guess
> Step 2: Solve using SNESSolve for (x^i, i is the iteration number,
> i=1,2,3...)
> Step 3: Calculate the update and check if it is less than tolerance
> Step 4: If yes, end the loop. Else the jacobian matrix and function should
> be updated using x^(i) and go back to step 2.
>

You are describing the Picard iteration:


https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESSetPicard.html

You can do this, but it will converge more slowly than Newton. We usually
advise using Newton.


> The part which is a little confusing to me is in understanding how to
> update the jacobian matrix and the function F (= A(x)x-b(x)).
>
> 1) Should I explicitly call the subroutines Form Function and FormJacobian
> by using x^i as the input argument or is this automatically taken care of
> when I go back to step 2 and call SNESSolve?
>

No. SNES calls these automatically.

  Thanks,

     Matt


> 2) If the answer to the above question is yes, I do not fully understand
> the role played by the functions SNESSetFunction and SNESSetJacobian.
>
> I apologize if I am not clear in my explanation. I would be glad to
> elaborate on any section of my question. Please let me know if you need any
> further information from my side.
>
> Thank you,
> Sincerely,
> Pranay.
>>


-- 
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.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20201009/626e22e7/attachment.html>


More information about the petsc-users mailing list