Computational fluid dynamics (CFD) is the use of computers to analyse problems in fluid dynamics.

The most fundamental consideration in CFD is how one treats a continuous fluid in a discretized fashion on a computer. One method is to discretize the spatial domain into small cells to form a volume mesh or grid, and then apply a suitable algorithm to solve the equations of motion (Euler equations for inviscid, and Navier-Stokes equations for viscid flow). In addition, such a mesh can be either irregular (for instance consisting of triangles in 2D, or pyramidal solids in 3D) or regular; the distinguishing characteristic of the former is that each cell must be stored separately in memory. Lastly, if the problem is highly dynamic and occupies a wide range of scales, the grid itself can be dynamically modified in time, as in adaptive mesh refinement methods.

If one chooses not to proceed with a mesh-based method, a number of alternatives exist, notably :

  • smoothed particle hydrodynamics, a Lagrangian method of solving fluid problems,
  • spectral methods, a technique where the equations are projected onto basis functions like the spherical harmonics and Chebyshev polynomials
  • Lattice Boltzmann Methods, which simulate an equivalent mesoscopic system on a Cartesian grid, instead of solving the macroscopic system (or the real microscopic physics).

It is possible to directly solve the Navier-Stokes equations for laminar flow cases and for turbulent flows when all of the relevant length scales can be contained on the grid (a direct numerical simulation). In general however, the range of length scales appropriate to the problem is larger than even today's massively parallel computers can model. In these cases, turbulent flow simulations require the introduction of a turbulence model. large eddy simulations and the RANS formulation (Reynolds-averaged Navier-Stokes equations), with the k-ε model or the Reynolds stress model, are two techniques for dealing with these scales.

In many instances, other equations (mostly convective-diffusion equations) are solved simultaneously with the Navier-Stokes equations. These other equations can include those describing species concentration, chemical reactions, heat transfer, etc. More advanced codes allow the simulation of more complex cases involving multi-phase flows (eg, liquid/gas, solid/gas, liquid/solid) or non-Newtonian fluids (such as blood).


In all of these approaches the same basic procedure is followed.

  1. The geometry (physical bounds) of the problem is defined.
  2. The volume occupied by the fluid is divided into discrete cells (the mesh).
  3. The physical modelling is defined - for example, the equations of motions + enthalpy + species conservation
  4. Boundary conditions are defined. This involves specifying the fluid behaviour and properties at the boundaries of the problem. For transient problems, the initial conditions are also defined.
  5. The equations are solved iteratively as a steady-state or transient.
  6. Analysis and visualization of the resulting solution.

Discretization methods[]

The stability of the chosen discretization is generally established numerically rather than analytically as with simple linear problems. Special care must also be taken to ensure that the discretization handles discontinuous solutions gracefully. The Euler and Navier-Stokes equations both admit shocks, and contact surfaces.

Some of the discretization methods being used are:

  • Finite volume method. This is the "classical" or standard approach used most often in commercial software and research codes. The governing equations are solved on discrete control volumes. This integral approach yields a method that is inherently conservative (i.e., quantities such as density remain physically meaningful):
is the vector of conserved variables, and 
is the vector of fluxes.
  • Finite element method. This method is popular for structural analysis of solids, but is also applicable to fluids. The FEM formulation requires, however, special care to ensure a conservative solution.
  • Finite difference method. This method has historical importance and is simple to program. It is currently only used in few specialized codes.
  • Boundary element method. The boundary occupied by the fluid is divided into surface mesh.

Turbulence Models[]

Direct numerical simulation (DNS) captures all of the relevant scales of turbulent motion, so no model is needed for the smallest scales. This approach is extremely expensive, if not intractable, for complex problems on modern computing machines, hence the need for models to represent the smallest scales of fluid motion.

Reynolds-averaged Navier-Stokes[]

Reynolds-averaged Navier-Stokes equations (RANS) is the oldest approach to turbulence modeling. An ensemble version of the governing equations is solved, which introduces new apparent stresses known as Reynolds stress. This adds a second order tensor of unknowns for which various models can provide different levels of closure. It is commonl misconception that these equations are 'time-averaged', and that therefore the RANS equations do not apply to flows with a time-varying mean flow. This is false, and statistically unsteady (on non-stationary) flows can equally be treated. This is sometimes referred to as URANS. There is nothing inherent in Reynolds averaging to preclude this, but the turbulence models used to close the equations are valid only as long as the time over which these changes in the mean occur is large compared to the time scales of the turbulent motion containing most of the energy.

Large eddy simulation[]

Large eddy simulations (LES) is a technique in which the smaller eddies are filtered and are modeled using a sub-grid scale model, while the larger energy carrying eddies are simulated. This method generally requires a more refined mesh than a RANS model, but a far coarser mesh than a DNS solution.

Detached eddy simulation[]

Detached eddy simulations (DES) is a modification of a RANS model in which the model switches to a subgrid scale formulation in regions fine enough for LES calculations. Regions near solid boundaries and where the turbulent length scale is less than the maximum grid dimension are assigned the RANS mode of solution. As the turbulent length scale exceeds the grid dimension, the regions are solved using the LES mode. Therefore the grid resolution is not as demanding as pure LES, thereby considerably cutting down the cost of the computation. Though DES was initially formulated for the Spalart-Allmaras model (Spalart et al, 1997), it can be implemented with other RANS models (Strelets, 2001), by appropriately modifying the length scale which is explicitly or implicitly involved in the RANS model. So while Spalart-Allamaras model based DES acts as LES with a wall model, DES based on other models (like two equation models) behave as a hybrid RANS-LES model. Grid generation is more complicated than for a simple RANS or LES case due to the RANS-LES switch. DES is a non-zonal approach and provides a single smooth velocity field across the RANS and the LES regions of the solution.

Solution algorithms[]

The basic solution of the system of equations arising after discretization is accomplished by many of the familiar algorithms of numerical linear algebra. One can either use a stationary iterative method, like symmetric Gauss-Seidel or successive overrelaxation, or a Krylov subspace method. In the latter, the solution residual is minimized on an orthogonal basis for a subspace of the non-linear operator. Krylov subspace methods are generally used with a preconditioner and an inner Newton iteration. Unfortunately for non-linear problems, the orthogonal basis can not be constructed with short recurrences (as in the plain conjugate gradient method) and the entire sequence of vectors must be stored.


The techniques are widely used by engineers designing or analysing devices that interact with fluid, such as vehicles, pumps, chemical apparatus or ventilation systems.

There are numerous commercial software packages to solve the Navier Stokes Equations. Examples of such commercial packages include the following (alphabetically listed): AVL/FIRE, CFX, FLUENT, KIVA, NUMECA, Phoenics, and STAR-CD. Other software packages serve as add-ons or complementary products to CFD tools. These include FieldView for post-processing and KINetics for solving detailed chemical kinetics.


  • EasyCFD educational software with a graphical interface
  • OpenFOAM a former commercial code that is now under GPL
  • NASA provides CFD software to residents in the US
  • GERRIS is a GPL incompressible flow solver
  • Piping Systems FluidFlow has a fully functional demo which uses sample fluids for evaluations available for download
  • Atmos
  • Stoner Pipeline Simulator
  • Pipeline Studio includes an evaluation download (~ 132 M)
  • Olga 2000
  • CFD Studio Educational program to study CFD Problems
  • Hysys
  • Comet commercial Finite Volume Method
  • Channelflow Channelflow uses "spectral method" (GPL)
  • Net-Pipe
  • NEKTON "Spectral Element Method (SEM)"
  • Exa Powerflow "Lattice Boltzmann Method"
  • Enzo is an open-source cosmological simulation code that uses an adaptive mesh.
  • FLASH is a free for non-commercial use, adaptive mesh, compressible solver for astrophysical flows
  • STAR Industrial CAD-embedded flow simulation
  • FLUENT CFD code for a wide range of free surface flow applications
  • FLOW-3D CFD code especially for free surface flow applications
  • Intelligent Light - makers of FieldView
  • Tecplot CFD post-processing, plotting, graphing and visualization software.
  • COSILAB - software and CFD add-ins for chemistry in laminar and turbulent flows
  • Reaction Design - software for chemical kinetics and CFD add-ins
  • Flotherm commercial CFD software with emphasis on electronic enclosures, Cartesian grid
  • COMSOL Multiphysics (aka FEMLAB) commercial finite element package for multiphysics including CFD
  • CFX CFD-code by Ansys
  • TAU Unstructured Finite-Volume CFD-code from DLR for aircraft and rotorcraft
  • FLOWer Structured Finite-Volume CFD-code from DLR for aircraft and rotorcraft
  • Moldex3D commercial CAE software for injection molding

External links[]

This page uses Creative Commons Licensed content from Wikipedia (view authors). Smallwikipedialogo.png