|
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 Number of Linear iterations = 18 Average Linear its / 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 Number of Linear iterations = 54 Average Linear its / Thanks, Vijay |