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 semi-implicit pressure solver for the solution of the poisson-equation 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.0e-6 on 64*64 grid. The solver needs approximatly 20 to 40 iterations to satisfy the pressure-residuum 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 multi-grid solver worth-while compared with optimal SOR? (I'm not familiar with multigrid solvers, I only know some basic ideas).
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 line-implicit when the geometry allows, but it will take more effort to code it, and require the co-operation 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 line-implicit will update the whole line per iteration even if it will take longer to solve the matrix equation by Thomas algorithm. (3). For un-structured methods such as un-structured FVM, FEM, it is likely that the basic method is still the point-iteration method (or S.O.R.), because the line-implicit method would work only for simple known sub-region. (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 12:41.|