Thanks Jed, Maybe I was not 100% clear, the way that I dealt with the nullspace was to set the pressure to zero at one node in the entire domain.
Best, Mohamad On Sun, Jan 8, 2012 at 3:33 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote: > Missing the null space can definitely cause problems. > > I suggest checking unpreconditioned residuals. > On Jan 8, 2012 5:13 PM, "Mohamad M. Nasr-Azadani" <mmnasr at gmail.com> > wrote: > >> Thanks Barry and Matt, >> >> Barry, >> Also if you are really solving the Poisson problem you should use >> multigrid; if simple geometry then geometric multigrid if complicated >> geometry probably easier to use hypre BoomerAMG. No sane person solves >> Poisson problem with anything but a multigrid or FFT based solver. >> >> In my main code, I am actually doing what you suggested, i.e. GMRES + >> boomerAMG to solve for my Poisson equation. I have not used the >> KSPSetNullSpace() though. >> The problem is that my code (CFD, incompressible flow 3D) diverges after >> a long time integration and I am trying to find out why. >> The system that I have is a fairly big one, i.e. 100 million grid points >> and more. >> I see that pressure solution (which is obviously coupled to the velocity >> field) starts showing strange behavior. >> That's why I tried to first double check my pressure solver. >> >> Based on your experience, do you think that not using a nullspace() for >> the pressure solver for that linear system size could have caused it to >> diverge? >> >> >> Matt, >> 1) Matlab could be doing a lot of things. I am betting that they scale >> the problem, so -pc_type jacobi. >> >> That could be right. The reason that I relied on the MATLAB's gmres >> solver to behave exactly similar to PETSc was just their "help" saying that >> ************ >> X = GMRES(A,B,RESTART,TOL,MAXIT,M1,M2) use preconditioner M or M=M1*M2 >> and effectively solve the system inv(M)*A*X = inv(M)*B for X. If M is >> [] then a preconditioner is not applied. >> ************ >> >> Best, >> Mohamad >> >> On Sat, Jan 7, 2012 at 5:39 PM, Barry Smith <bsmith at mcs.anl.gov> wrote: >> >>> >>> On Jan 7, 2012, at 4:00 PM, Mohamad M. Nasr-Azadani wrote: >>> >>> > 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. >>> >>> Please don't do this. That results in a unnecessaryly huge condition >>> number. Use KSPSetNullSpace.() >>> >>> Also if you are really solving the Poisson problem you should use >>> multigrid; if simple geometry then geometric multigrid if complicated >>> geometry probably easier to use hypre BoomerAMG. No sane person solves >>> Poisson problem with anything but a multigrid or FFT based solver. >>> >>> Barry >>> >>> > 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/20120108/a9d0b402/attachment-0001.htm>
