Coupled Pressure–Velocity Solver
Theory: solving pressure and velocity together
Overview
My CFD software offers 'SIMPLE' and 'Coupled'. What's the difference, and which should I choose?
In incompressible flow there's no equation that sets pressure directly; pressure is whatever makes the velocity satisfy continuity. SIMPLE provisionally solves momentum for velocity, then corrects pressure to satisfy continuity, alternating. Each pass is cheap, but it captures pressure–velocity coupling only a bit at a time, so it tends to need many iterations. A coupled solver assembles both into one large system and solves them together — heavier per pass, but far fewer iterations.
The coupled system
$A_u$ and $A_v$ are the momentum operators (convection and diffusion), $G$ the pressure gradient and $D$ the divergence (continuity). Nonlinear convection is frozen at the previous iterate (Picard), and this system is solved each outer iteration.
SIMPLE correction
SIMPLE approximates the pressure correction using only the momentum diagonal $a_P$, so updates must be damped by relaxation $\alpha_u$ and $\alpha_p$ to avoid divergence. That approximation is why iteration counts grow.
The long problem of how to solve for pressure
SIMPLE was published by Patankar and Spalding in 1972 and became the standard in general-purpose CFD as a way to solve incompressible flow with little memory — solving all unknowns as one system was impossible on the computers of the day. Coupled solvers became practical in commercial software in the 2000s, when algebraic multigrid and other techniques for large systems met growing memory. The choice of method has shifted with computing progress.
Worked example: comparing on cavity flow
Lid-driven square cavity flow was solved with the same discretisation (staggered grid, first-order upwind) by a coupled solver and by SIMPLE. Outer iterations to a residual of 10⁻⁶ are compared (run time depends heavily on implementation, so iteration counts are used here):
| Case | Coupled | SIMPLE (0.7/0.3) | SIMPLE (0.5/0.2) | Centreline u min |
|---|---|---|---|---|
| 16 cells, Re 100 | 9 | 110 | 240 | −0.170 |
| 32 cells, Re 100 | 9 | 355 | 810 | −0.189 |
| 64 cells, Re 100 | 8 | 1,215 | 2,825 | −0.201 |
| 32 cells, Re 400 | 13 | 335 | 760 | −0.200 |
Refining the grid makes only SIMPLE's iterations climb.
Right. SIMPLE passes pressure information to neighbouring cells only gradually, so more cells take longer to spread it everywhere. The coupled solver solves the whole system each pass, so it's barely affected by grid size. Both reach the same solution in the end (differences around 10⁻⁵), so the choice is about speed and memory, not accuracy. The centreline minimum approaches −0.201 with refinement but not the reference −0.211 — that's numerical diffusion from first-order upwinding, a separate matter from the solution method.
Choosing and configuring
- With spare memory and large steady cases, try the coupled solver.
- If using SIMPLE, don't over-reduce relaxation (it more than doubles iterations).
- Tune the coupled solver's stability with its Courant number (pseudo time step); lower it if diverging.
- For transient runs, balance inner iterations per step against time-step size.
- Judge convergence by monitored quantities settling, not residuals alone.
“Switched to coupled, ran out of memory”
A pump steady case that took two days with SIMPLE was switched to the coupled solver and stopped midway with out-of-memory. Treating all pressure and velocity unknowns as one system multiplies memory use several times for the same grid. Adding compute nodes for more parallel partitions cut iterations to about a tenth and run time to about a quarter. Speed is bought with memory — choose with your computing resources in mind.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| Thinking the method changes accuracy | Grid and scheme issues missed | Accuracy comes from discretisation |
| Over-reducing relaxation | Iterations balloon | Adjust gradually from defaults |
| Going coupled without checking memory | Out-of-memory stop | Estimate partitions and memory |
| Courant number too high | Coupled solver diverges | Start low and raise |
| Residuals-only convergence | Monitored values unsettled | Check monitors too |
I'd like to learn related topics.
For segregated methods see the SIMPLE algorithm and PISO algorithm; for basics, finite volume fundamentals; for solving large systems, multigrid; for compressible flow, density-based solvers; and for a verification case, the lid-driven cavity.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators