# Matrix free example snes/ex20.c

Vijay M vijay.m at gmail.com
Sat Dec 29 20:07:11 CST 2007

```Hi all,

I was trying to compile and run the ex20.c example code in the tutorial
section of SNES. Although it does not explicitly specify that -snes_mf
option can be used, my understanding is that as long as a nonlinear residual
function is written correctly, PETSc will calculate via finite difference
the action of the Jacobian on a given vector. Is that correct ?

Now if that is the case, then please observe the discrepancy in the number
of linear iterations taken with an analytical Jacobian and matrix-free
option. What puzzles me is that the SNES function norm are quite close for
both the methods but the linear iterations differ by a factor of 3. Why
exactly is this ?

Here's the output to make this clearer.

vijay :mpirun -np 1 ex20 -ksp_type gmres -snes_monitor

0 SNES Function norm 2.271442542876e-01

1 SNES Function norm 6.881516100891e-02

2 SNES Function norm 1.813939751552e-02

3 SNES Function norm 2.354176462207e-03

4 SNES Function norm 3.063728077362e-05

5 SNES Function norm 3.106106268946e-08

6 SNES Function norm 5.344742712545e-12

0 SNES Function norm 2.271442542876e-01

1 SNES Function norm 6.881516100891e-02

2 SNES Function norm 1.813939751552e-02

3 SNES Function norm 2.354176462207e-03

4 SNES Function norm 3.063728077362e-05

5 SNES Function norm 3.106106268946e-08

6 SNES Function norm 5.344742712545e-12

Number of Newton iterations = 6

Number of Linear iterations = 18

Average Linear its / Newton = 3.000000e+00

vijay :mpirun -np 1 ex20 -ksp_type gmres -snes_monitor -snes_mf

0 SNES Function norm 2.271442542876e-01

1 SNES Function norm 6.870629867542e-02

2 SNES Function norm 1.804335379848e-02

3 SNES Function norm 2.290074339682e-03

4 SNES Function norm 3.082384186373e-05

5 SNES Function norm 3.926396277038e-09

6 SNES Function norm 3.754922566585e-16

0 SNES Function norm 2.271442542876e-01

1 SNES Function norm 6.870629867542e-02

2 SNES Function norm 1.804335379848e-02

3 SNES Function norm 2.290074339682e-03

4 SNES Function norm 3.082384186373e-05

5 SNES Function norm 3.926396277038e-09

6 SNES Function norm 3.754922566585e-16

Number of Newton iterations = 6

Number of Linear iterations = 54

Average Linear its / Newton = 9.000000e+00

Thanks,

Vijay

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20071229/2b6050ee/attachment.htm>
```