[petsc-users] Understanding 'snes' object

Barry Smith bsmith at petsc.dev
Sun Aug 24 15:30:25 CDT 2025


   You should have very similar behavior, but not identical behavior. The Jacobian-vector product will produce slightly different values with the two approaches, which means that the computed residual norms displayed with -ksp_monitor -snes_monitor etc will be somewhat different. With long runs that involve many nonlinear solves the differences in the norms computed will become nontrivial and you will start getting different iteration counts, but the solutions computed should remain very similar.

   Barry


> On Aug 23, 2025, at 10:03 AM, Zou, Ling via petsc-users <petsc-users at mcs.anl.gov> wrote:
> 
> Thank you both Jed and Stefano.
> Then, somehow, I may have introduced inconsistence in my code, because I expected they have exactly the same behavior.
>  
> Best,
> -Ling
>  
> From: Stefano Zampini <stefano.zampini at gmail.com <mailto:stefano.zampini at gmail.com>>
> Date: Friday, August 22, 2025 at 4:42 PM
> To: Zou, Ling <lzou at anl.gov <mailto:lzou at anl.gov>>
> Cc: PETSc <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>>
> Subject: Re: [petsc-users] Understanding 'snes' object
> 
> Il giorno sab 23 ago 2025 alle ore 00: 25 Zou, Ling via petsc-users <petsc-users@ mcs. anl. gov> ha scritto: Hi all, Can someone please help me understand the output of the following two outputs using ‘-snes_view’? Option 1: SNES Object: 1
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>  
> ZjQcmQRYFpfptBannerEnd
>  
>  
> Il giorno sab 23 ago 2025 alle ore 00:25 Zou, Ling via petsc-users <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> ha scritto:
> Hi all,
>  
> Can someone please help me understand the output of the following two outputs using ‘-snes_view’?
>  
> Option 1:
> SNES Object: 1 MPI process
> 
>   type: newtonls
> 
>   maximum iterations=15, maximum function evaluations=10000
> 
>   tolerances: relative=1e-08, absolute=1e-50, solution=1e-08
> 
>   total number of linear solver iterations=5
> 
>   total number of function evaluations=14
> 
>   norm schedule ALWAYS
> 
>   Jacobian is built using finite differences with coloring
> 
>  
> Option 2:
> SNES Object: 1 MPI process
> 
>   type: newtonls
> 
>   maximum iterations=50, maximum function evaluations=10000
> 
>   tolerances: relative=1e-08, absolute=1e-50, solution=1e-08
> 
>   total number of linear solver iterations=8
> 
>   total number of function evaluations=17
> 
>   norm schedule ALWAYS
> 
>   Jacobian is applied matrix-free with differencing
> 
>   Preconditioning Jacobian is built using finite differences with coloring
> 
>  
>  
> Does it mean that
> Option 1 uses Newton’s method, such that J du = b is solved with J being explicitly constructed?
> yes
>  
>  
> Option 2 uses matrix free method, such that J du = b is solved with  J v ~ (F(u + dv) – F(u)) / h when needed, e.g., in a Krylov method.
>  
> yes, and the preconditioner is constructed using an explicitly constructed Jacobian matrix
>  
>  
>  
> Thanks,
> -Ling
>  
>  
> 
>  
> --
> Stefano

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20250824/f23aabb6/attachment.html>


More information about the petsc-users mailing list