CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   SIMPLE algorithm (

Jonathan Castro December 9, 1999 11:11

SIMPLE algorithm

I've just coded the SIMPLE algorithm for incompressible, viscous, laminar flow. The code is currently for a simple 2-D case (channel flow), and has been implemented on a staggered grid (p and u staggered and on same lines [x-dirn], v staggered in x- and y- dirns).

As you will know, the code requires specification of the pressure correction p' on all boundaries. For p specified on the inlet and outlet, p' = 0. On the walls, the assumption of (dp/dy) = 0 is made. Thus after the updated pressure is calculated from p = p* + p', the value of p on the upper and lower walls is set equal to the values on the first grid points away from the walls (zeroth order extrapolation).

The question is, what about p'? Is this set to zero on the walls? I would assume so, since the actual pressure p is updated on the walls after each iteration, and an actual pressure would imply a zero correction.

I have found that for a simple pressure difference between the ends of the channel, the code requires a large number of iterations to converge and a very small time step (0.0001 typically). If the time step is increased to 0.001, the code blows up. I was wondering if anyone had any ideas as to why this is the case. The converged solution seems OK. Also, I am confused over whether the SIMPLE algorithm is really a transient algorithm or more like a steady-state iteration process. Surely the delta.t finite difference terms refer to a transient variation?

If anyone has any answers, it would be appreciated!


tomi December 9, 1999 17:18

Re: SIMPLE algorithm

when you set the p' at the wall equal to the first grid point of your point inside you do not extrapolate but apply a zero gradient condition. Try to use an extrapolation with help of the two points from the inside. (apply this also to the boundaries (inflow and outflow). your code won't blow up even for larger time steps (of course depending on the convection scheme). let me know if it works. good luck tomi

Jonathan Castro December 10, 1999 05:09

Re: SIMPLE algorithm
OK I'll try it, thanks. However, I think you were referring to p, rather than p'? I would have thought that p', being a pressure correction, would be zero where the value of p is specified. In this case, p is specified on the inlet and outlet, and on the walls after each iteration (from dp/dy = 0). Thus, p' = 0 on all boundaries?

tomi December 10, 1999 05:59

Re: SIMPLE algorithm

yes you are certainly right. but specifying the pressure at both ends is also somewhat difficult and not recommended. I would rather try to fix the pressure at one end and specify a e.g inflow velocity at the other end. This will improve your convergence rate a lot.


All times are GMT -4. The time now is 18:26.