[petsc-users] GMRES solver

Mohamad M. Nasr-Azadani mmnasr at gmail.com
Sat Jan 7 16:00:40 CST 2012


Hi guys,

I am trying to narrow down an issue with my Poisson solver.
I have the following problem setup

Laplace(f) = rhs(x,z,y)
0 <= x,y,z <= (Lx,Ly,Lz)

I solve the Poisson equation in three dimensions with the analytical
function f(x,y,z) defined by

f(x,z,y) = cos(2*pi*x/Lx)*cos(2*pi*y/Ly)*cos(2*pi*z/Lz) + K
where Lx = Ly =Lz = 1.0 and K is a constant I use to set f(Lx,Ly,Lz) = 0.0.

Second order descritization is used for the Poisson equation.
Also, Neumann boundary condition is used everywhere, but I set the
top-right-front node's value to zero to get rid of the Nullspaced matrix
manually.
I use 20 grid points in each direction.

The problem is:
I use GMRES(20) without any preconditioners (rtol = 1e-12) to solve the
linear system.
It takes 77,000 iterations to converge!!!!

For the size of only 8,000 unknowns, even though the lsys is not
preconditioned, I guess that is a LOT of iterations.
Next, I setup the exact same problem in MATLAB and use their GMRES solver
function.
I set the same parameters and MATLAB tells me that it converges using only
3870 iterations.

I know that there might be some internal differences between MATLAB and
PETSc's implementations of this method, but given the fact that these two
solvers are not preconditioned, I am wondering about this big difference?

Any ideas?

Best,
Mohamad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120107/b5f939c1/attachment.htm>


More information about the petsc-users mailing list