How efficient is optimal SOR compared with other solvers?
I set up a quite old standard simulation, the laminar incompressibel flow in a 2D driven cavity with finite differencing. I used a quite simpel solution algorithm according to a "CFD for beginners" book from Griebel et. al.. When I rememeber correctly the algorithm was originally derived from "Harlow and Welsh". It uses an explict time marching, and a semiimplicit pressure solver for the solution of the poissonequation via an overrelaxation method (SOR). Instead of using a fixed overrelaxtion parameter I used the "optimal parameter" which could be derived from the problem setup with some iterations ("Numerical Recipes"). To acchieve the steady state I used a "rate of change" dependent solution accuracy to avoid exhausive numerical computation for the poisson equation when the flow field develops. I began with a pressure error norm of 0.1 an ended with an error norm of l.th. 1.0e6 on 64*64 grid. The solver needs approximatly 20 to 40 iterations to satisfy the pressureresiduum for each time step. I compared the overall time demand with an old PHOENICS version (1.5, finit volume, SIMPLE algorithm) and with FLOTRAN Rev 5.6. (Finite Element, preconditioned conjugate gradient solver)and found surprisingly (for me), that it was not world aparts. I have not compared the solutions in detail, I took only a brief look on the resulting velocity contours and they seemed identically. Has somebody experiences with optimal overrelaxation in comparsion with other solvers, e.g. ADI or multigrid techniques? Is it the effort coding a multigrid solver worthwhile compared with optimal SOR? (I'm not familiar with multigrid solvers, I only know some basic ideas).
Thanks Wolfgang 
Re: How efficient is optimal SOR compared with other solvers?
(1). The code associated with the S.O.R. is minimum. So, I use it most of the time. It is also good for complex geometry problem. (2). I also have done lineimplicit when the geometry allows, but it will take more effort to code it, and require the cooperation from the geometry and the boundary. So, it will be somewhat faster when the mesh size is large or very large. The information propagation speed is only one grid point per iteration for S.O.R. , on the other hand, the lineimplicit will update the whole line per iteration even if it will take longer to solve the matrix equation by Thomas algorithm. (3). For unstructured methods such as unstructured FVM, FEM, it is likely that the basic method is still the pointiteration method (or S.O.R.), because the lineimplicit method would work only for simple known subregion. (4). For code development, I would suggest the use of S.O.R., it will keep the code simple and easy to read (for debugging purpose). Once the problem is fixed, there are various ways to speed up the convergence of iteration. But, the code will be more or less problem dependent and hard to debug.

All times are GMT 4. The time now is 07:39. 