The usual method is discretize the fluid domain into small cells to form a grid, and then apply iterative methods to solving the Navier-Stokes equations for them.

The solution of the Navier-Stokes equation is sufficiently accurate alone for cases where the fluid flow is laminar. For turbulent flows special turbulence models must be used that introduce new terms into the equations. For many problems the solutions for the fluid equations are obtained at the same time as equations describing other properties of the system. These other equations can include those describing heat transfer, chemical reactions and radiative heat transfer. More advanced codes allow the simulation of more complex cases involving multiple fluids ('multi-phase') or non-newtonian fluids.

The most used numerical methods are:

- finite difference This method has some drawbacks, but it is simple for programmers. It is therefore often used in institutional CFD codes.
- finite element method More often used in structural analysis of solids, but also applicable to fluids
- finite volume method The "classical" approach, most often used in commercial software. The conserving equations are solved on discrete control volumes by integration

- The geometry (physical boundaries) of the problem is defined.
- The space occupied by the fluid is divided into discrete cells (the mesh).
- Boundary conditions are defined. This involves specifying the fluid behaviour and properties at the boundaries of the problem. For time-varying problems the initial conditions are defined.
- The equations are solved iteratively.
- Analysis or visualisation of the solution.

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