Computational fluid dynamics (CFD) is a computationally intensive three-dimensional simulation of thermal fluids systems where non-linear momentum transport plays an important role. This article presents the governing equations of fluid dynamics and an introduction to the CFD techniques. It introduces some common techniques for discretizing the fluid-flow equations and methods for solving the discrete equations. These include finite-difference methods, finite-element methods, spectral methods, and computational particle methods. The article describes the approaches for grid generation with complex geometries. It discusses the four-step procedures used in the CFD process for engineering design: geometry acquisition, grid generation and problem specification, flow solution, and post-processing and synthesis. The article also provides information on the engineering applications of the CFD. It concludes with a discussion on issues and directions for engineering CFD.