
[Sponsors] 
March 14, 2001, 05:11 
SIMPLE Algorithm & Conjugate Gradient Method

#1 
Guest
Posts: n/a

hi friends out there,
I am attempting to solve viscous incomp, driven cavity flow using SIMPLE algorithm, but instead of using gauus siedel/LSOR/ADI i wanna use Conjugate Gradient Method. I can pose that as minimization problem and solve it. My coeffficient matrix [A] will not be symmetric but it will be positive definate (for u,v, Temp ). What about Pressure Correction equation ? The matrix [A] for Pres corr'n cannot be reduced using CG method. Has anyone tried this? with what results. Is pre conditioning required for P' ? any references ? Lemme know Thanks Abhijit Tilak 

March 14, 2001, 09:05 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#2 
Guest
Posts: n/a

I can't answer you about the SIMPLE algorithm aspects, but I can relative to CG and linear systems. Several thoughts:
(1) CG is generally only valid for symmetric, positive definite matrices. If your matrix ends up being nonsymmetric, you may want to look at other gradientbased methods such as Conjugate Gradient Squared (CGS), GMRES, BiCGStab, or even Minimum Residual. (2) Gradient methods usually only work well with preconditioning. You can use any standard iterative method as a preconditioner. Examples include Point or Line Jacobi, Point or Line SOR, or incomplete factorization. See the Solution of Linear Systems topic on the CFD Resources Online  Special Topics page for more info. 

March 14, 2001, 09:15 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#3 
Guest
Posts: n/a

1) By definition, a square matrix has to be symmetric in order to be positive definite. Your matrix for u,v,T is diagonally dominant.
2) Since your matrix for u,v and T is not symmetric positive definite, You can espect bad results from the CG method (I personnaly experienced this when advection was dominant). Better results can be obtained with GMRES or Orthomin2. 3) The matrix for the pressure correction equation is usually weakly diagonally dominant (0 eighenvalues can exist). It is very illconditionned. It can be solved with CG. But it takes many iterations (depending on the tolerance and the mesh, you can expect between 100 and 600 iterations to get an acceptable solution). A good and reliable conditionner for CG is the Jacobi conditionner. But it has to be applied on both sides (left and right) to keep the the matrix symmetric. Better conditionner can be used (incomplete Cholesky), but they are more difficult to implement. From my point of view, the best conditionners are multigrid methods. Here's a good reference: @BOOK(greenbaum, AUTHOR = " A. Greenbaum", TITLE = " Iterative Methods for solving Linear Systems", YEAR = 1997, PUBLISHER = "SIAM" ) If you understand french, Email me, I good give you some other infos. Good luck. 

March 14, 2001, 13:13 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#4 
Guest
Posts: n/a

My experience with the CG for the poisson equation has been similar. For many structured mesh problems, ADI preconditioner works far better than the jacobi and SOR/GaussSeidel preconditioners. However, this is not the case for the pressure poisson equation. So the main issue in using CG (or BiCGS) is preconditioning for the pressure. Multigrid indeed works well although you may have to play with types of cycles. Most MG methods are demonstrated on Poisson type equations, so you should be able to identify which MG method works well in your case with (relatively) less work.
Abhijit, here is another suggestion about the pressurevelocity coupling. I am currently using a pressure correction type method and in cases where the density gradients and the CFL are high, a lot of outer iterations are required for convergence. This is because the pressure overpredicts the velocity/momentum correction and it is hard to guess the underrelaxation factor for the pressure. Within each outer iteration, a CG (or some other linear solver) is needed to compute the pressure thus making the solver very expensive. As long as you are using a BiCG type solver, I suggest you solve for the vector x={u,v,T,p} simultaneously. The matrix A (with 4x4 blocks) depends on the type of discretization you use. This way the coupling between velocity and pressure is taken care of immediately. Since the system Ax=b (where x={u,v,T,p}) is obtained by linearization of a nonlinear system you need to assemble A after each BiCGS iteration (before you do the matrixvector multiply in BiCGS). This methods amounts to a Newton type iterations and likely to have quadratic convergence. The only problems is preconditioning since A has 4x4 blocks. You can use jacobi preconditioner for each variable or use block jacobi by inverting the 4x4 blocks if not singular (I haven't yet checked). Sequential computation of u,v,T,p is similar to Picard iterations which at best have superlinear convergence (the culprit being the slow velocitypressure coupling). I welcome any thoughts you may have on this approach. 

March 14, 2001, 14:44 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#5 
Guest
Posts: n/a

HI, In most discretization methods, the coefficients for the velocity is not S.P.D., If you use Shur Complementation, the coeffcients for Pressure equation would be symmetric, PCG ( especially ICCG) should work well for the Pressure poission equations.
You can also view this problem from another angle, the pressure poission equation and velocity equation can be solved simutaneously. If so, you can make use of multigrid to get better convergence rate. In this case you have to make sure that your pressure poisson equation is numerically stable ( in some cases the pressure poisson eqution is unstable). Good luck 

March 16, 2001, 04:58 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#6 
Guest
Posts: n/a

hi sebastian,
thanks for ur suggestion. I don't understand french. But there could be english translations for those papers. I would be glad if u can pass them on to me. thnx abhijit 

March 16, 2001, 06:26 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#7 
Guest
Posts: n/a

The french reference is a chapter of my thesis. And there are no translation.
But If you can find the book from Greenbaum, it will help you out. This is a very good book. There is some good documentation and source code available at this location: http://www.netlib.org/templates/ 

March 20, 2001, 00:01 
Re: SIMPLE Algorithm & Conjugate Gradient Method

#8 
Guest
Posts: n/a

hi kalyan,
well i was doing some background work before i could reply. Actually i am trying to implement SIMPLE on unstructured grids so ADI/LSOR are out of question. Gauss Siedel is painful slow. Regarding pressurevelocity coupling i am taking appropriate care of that (addition of third order P' terms , the modified form of Rhie & Chow, & Peric). Well in my case initially it's viscous incompressible flow.yeah ur right i am currently underrelaxing pressure quiet a bit (about 0.4), that's probably one of the causes for painful convergence. The suggestion for using block gauss siedel looks good , also the Jacobi Preconditioner. U will get quad. convergence if u start from good initial guess, which may be possible now(since i am currently solving parallel plates, backward facing step & so on) If i start from zero initial guess i think as u said i will get quasilinear convergence. Thanks. I'll now give it a try. abhijit tilak 

Thread Tools  Search this Thread 
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Fractional Step Method and SIMPLE  Ha Lim Choi  Main CFD Forum  14  June 14, 2017 11:17 
Comparing between the Fractional step method and the SIMPLE method  ghlee  Main CFD Forum  1  April 10, 2012 16:59 
Apply Multigrid method to SIMPLE Algorithm  yang  Main CFD Forum  1  February 25, 2006 11:28 
Multigrid method for SIMPLE Algorithm  yang  Main CFD Forum  2  February 23, 2006 17:11 
SIMPLE algorithm  Jonathan Castro  Main CFD Forum  3  December 10, 1999 04:59 