Up until now, the we have dealt with simplified equations, such as the generalised transport equation. Our solution method is as follows :
Solving the NSE causes additional problems however. In vector notation, for an incompressible fluid the NSE are
. | = 0 | (III.1) |
ux t + .(ux) | = - + 2u x | (III.2) |
uy t + .(uy) | = - + 2u y | (III.3) |
uz t + .(uz) | = - + 2u z | (III.4) |
Both of these problems relate to the tangled nature of the NSE. Of the 4 equations making up the NSE (continuity and the 3 components of velocity) all components of velocity appear in all the equations, and the pressure appears in the 3 velocity equations. We cannot evaluate the velocity until we know the pressure, and we cannot find the pressure until we know the velocity. In order to find both, we have to guess one and solve for the other, then go back and correct the first. We might start by guessing the pressure, and use this to get a better estimate of the velocity, then correct the pressure, etc.
In CFD there are 2 basic algorithms for doing this :
We will start with PISO. We note the following :
The PISO algorithm is as follows :
Steps 3 and 4 can be iterated if necessary, but this is usually not necessary. This advances the solution one timestep - the whole procedure is then repeated from 1 to 4 for the next timestep.
The above algorithm is the one usually used to calculate transient flows. To solve for steady-state problems, one can simply apply this algorithm until the solution is unchanging from one timestep to the next. Alternatively one can use the SIMPLE algorithm, as described below. The NSE for a steady flow can be written as
. | = 0 | ||
.(ux) | = - + 2u x | ||
.(uy) | = - + 2u y | (III.5) | |
.(uz) | = - + 2u z |
In theory, p and should now be the desired solution. In practice, it is necessary to repeat this procedure as an iterative process, largely because of the nonlinear nature of the velocity. In addition, if the new solution p**, ** is adopted at each step, it turns out that the algorithm becomes unstable. To correct this, a technique known as underrelaxation is used. The updated value pn+1 is taken as