Computational fluid dynamics (CFD) is reserved for computationally intensive three-dimensional simulations 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 for their solution. It introduces discretization techniques that are used by finite-difference, finite-volume, finite-element, spectral, and some particle methods, and the associated concepts of numerical stability and accuracy. The article describes two approaches for grid generation with complex geometries. The approaches include use of unstructured grids and use of special differencing methods on structured grids. It discusses the four-step procedures of the CFD process, namely, geometry acquisition, grid generation and problem specification, flow solution, and post-processing and synthesis. The article provides information on the engineering applications of the engineering CFD. Issues and directions for the engineering CFD are also described.