Computational Fluid Dynamics

Computational Fluid Dynamics is a discipline that deals with the numerical solution of partial differential equations (PDEs) governing the flow of fluids. The equations under consideration are the Navier-Stokes equations, describing the momentum transport in the fluid,

\[\rho \frac{D \textbf{u}}{Dt} = - \nabla p + \nabla \cdot \mathbf{\tau} + \rho \textbf{g},\]

where \(\rho\) is the density, \(\frac{D}{Dt} := \frac{\partial}{\partial t} + \textbf{u} \cdot \nabla\) is the material derivative, \(p\) is the pressure, \(\tau\) is the deviatoric stress tensor and \(\mathbf{g}\) are body forces acting on the fluid. Depending on the taken assumptions of the fluid properties the Navier-Stokes equations may be modified or simplified and additional constraints may be added.

Different properties are considered. The fluid can either be viscous (like oil or honey) or inviscid (like water). It is also either considered to be compressible or incompressible. Incompressible flows are less complex to simulate as some terms can be dropped from the Navier-Stokes equations. One also distinguishes between steady and unsteady or transient fluid flows. Transient flows are time-dependent while steady flows are not. Similarly, a flow can either be laminar or turbulent. Laminar flows are characterized by layers of the fluid flowing in the same direction while turbulent flows are less orderly and involve recirculation and randomness.

In order to solve these PDEs numerically different space discretizations are applied. Some commonly used methods are:

  • Finite volume method
  • Finite element method
  • Finite difference method

Finally, the solution of the governing PDEs in each timestep are applied to the fluid by time integration. Therefor either explicit or implicit integration methods are used. Explicit methods use the results from the previous timestep while implicit methods solve a system of equations to obtain and use updated values of the current timestep for the integration. For instance let \(\mathbf{x}(t)\) denote the position field of the fluid at time \(t\) and \(\mathbf{u}(t)\) the velocity field at time \(t\).

Then an explicit position update is performed by

\[\mathbf{x}(t + \Delta t) = \mathbf{x}(t) + \Delta t \mathbf{u}(t)\]

while an implicit position is given by

\[\mathbf{x}(t + \Delta t) = \mathbf{x}(t) + \Delta t \mathbf{u}(t + \Delta t).\]

Since a lot of different combinations of fluid properties, space and time discretizations are possible there is a whole zoo of computational fluid dynamics methods available.

Related program(s): Related algorithm(s): Finite Element Method