CFD Online Logo CFD Online URL
Home > Wiki > SIMPLE algorithm

SIMPLE algorithm

From CFD-Wiki

Jump to: navigation, search

SIMPLE [Semi-Implicit Method for Pressure-Linked Equations]

If a steady-state problem is being solved iteratively, it is not necessary to fully resolve the linear pressure-velocity coupling, as the changes between consecutive solutions are no longer small. The SIMPLE algorithm:

  • An approximation of the velocity field is obtained by solving the momentum equation. The pressure gradient term is calculated using the pressure distribution from the previous iteration or an initial guess.
  • The pressure equation is formulated and solved in order to obtain the new pressure distribution.
  • Velocities are corrected and a new set of conservative fluxes is calculated.

The discretized momentum equation and pressure correction equation are solved implicitly, where the velocity correction is solved explicitly. This is the reason why it is called "Semi-Implicit Method".

SIMPLE Solver Algorithm

The algorithm may be summarized as follows:

The basic steps in the solution update are as follows:

  1. Set the boundary conditions.
  2. Compute the gradients of velocity and pressure.
  3. Solve the discretized momentum equation to compute the intermediate velocity field .
  4. Compute the uncorrected mass fluxes at faces .
  5. Solve the pressure correction equation to produce cell values of the pressure correction .
  6. Update the pressure field:  p^{k + 1}  = p^k  + urf \bullet p^' where urf is the under-relaxation factor for pressure.
  7. Update the boundary pressure corrections  p_b^' .
  8. Correct the face mass fluxes: \dot m_f^{k + 1}  = \dot m_f^*  + \dot m_f^'
  9. Correct the cell velocities:  \vec v^{k + 1}  = \vec v^*  - \frac{{Vol\nabla p^' }}{{\vec a_P^v }}  ; where  {\nabla p^' } is the gradient of the pressure corrections,  {\vec a_P^v } is the vector of central coefficients for the discretized linear system representing the velocity equation and Vol is the cell volume.
  10. Update density due to pressure changes.

Sample code for solving Lid-Driven_cavity test (Re=1000) - Fortran 90


  • Patankar, S. V. and Spalding, D.B. (1972), "A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows", Int. J. of Heat and Mass Transfer, Volume 15, Issue 10, October 1972, Pages 1787-1806.
  • Ferziger, J. H.; Peric, M. (2001), "Computational Methods for Fluid Dynamics", Springer-Verlag. ISBN 978-3-540-42074-3.
  • Qi-Hong Deng & Guang-Fa Tang, D.B. (2002), "SPECIAL TREATMENT OF PRESSURE CORRECTION BASED ON CONTINUITY CONSERVATION IN A PRESSURE BASED ALGORITHM", Numerical Heat Transfer, Part B: Fundamentals: An International Journal of Computation and Methodology, 42:1, 73-92, DOI: 10.1080/10407790190053842.

Return to Numerical Methods

My wiki