[petsc-users] linear problem solved by snes in 2 iteration.

Hailong Xiao xiaohl1986 at gmail.com
Thu Dec 8 12:12:14 CST 2011


Hi

I am using cell centered finite difference method for
-div K (grad p) = f
with Neumann boundary condtion.

I called
SNESGetKSP(snes, &ksp);
MatNullSpaceCreate(PETSC_COMM_WORLD, PETSC_TRUE, 0, PETSC_NULL, &nullsp);
KSPSetNullSpace(ksp, nullsp);
MatNullSpaceDestroy(&nullsp);

to handle the null space.

But I got the result like the following
  0 SNES Function norm 3.512407365520e+02
  Linear solve converged due to CONVERGED_RTOL iterations 16
  1 SNES Function norm 6.615335308038e-03
  Linear solve converged due to CONVERGED_RTOL iterations 20
  2 SNES Function norm 3.979662741066e-08

I checked my numerical solution with analytical solution
(p=x,y,z,cos(pi*x),cos(pi*y), cos(pi*z).

These are the difference between the petsc result and analytical solution
for
-da_grid_x 5
-da_grid_y 5
-da_grid_z 100

i j k 1 1 0
petsc      0.499959
true       0.495
petsc-true 0.00495888
i j k 1 1 1
petsc      0.486626
true       0.485
petsc-true 0.00162554
i j k 1 1 2
petsc      0.475959
true       0.475
petsc-true 0.000958875
i j k 1 1 3
petsc      0.465673
true       0.465
petsc-true 0.000673159

I think I got the correct solution.

I do not understand why snes took 2 iterations for a linear problem? Is it
normal?


-- 
Hailong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111208/16c40b4d/attachment.htm>


More information about the petsc-users mailing list