Dear all, I am working with an example of "petsc-3.2-p5/src/ts/examples/tutorials/ex15.c"
I noticed that in ex15.c, Jtype == 0 means that /* use user provided Jacobian evaluation routine */ Jtype == 1 is for /* slow finite difference J; */ and Jtype == 2 is /* Use coloring to compute finite difference J efficiently */ I found a problem, when I run ex15 with mpiexec -n 8 ./ex15 -da_grid_x 101 -da_grid_y 101 -Jtype 0 -drawcontours or mpiexec -n 8 ./ex15 -da_grid_x 101 -da_grid_y 101 -Jtype 2 -drawcontours , it works well. However, when I run ex15 with mpiexec -n 8 ./ex15 -da_grid_x 101 -da_grid_y 101 -Jtype 1 -drawcontours the solution remains the same as the initial condition. If I reduced the da_grid_x and da_grid_y, the command mpiexec -n 8 ./ex15 -da_grid_x 51 -da_grid_y 51 -Jtype 1 -drawcontours works well. The manual tells me that "Although SNESDefaultComputeJacobian() is not recommended for general use in large-scale applications, It can be useful in checking the correctness of a user-provided Jacobian." I am confused that if SNESDefaultComputeJacobian() can not give the correct Jacobian when using "mpiexec -n 8 ./ex15 -da_grid_x 101 -da_grid_y 101 -Jtype 1 -drawcontours", then how can it be used to check the user-provided Jacobian? Is there somebody encountering the same problem or give me some advice? Thank you very much! Feng-Chao Wang