Books and resources for CFD


We had a nice thread started by @CadManDo a couple months ago regarding resources for learning FEA.

Does anyone have recommendations for CFD resources, any good books or websites that you know of?

Step-by-step tutorial for Session 1 of CFD Master Class

hi @AnnaFless, this topic could be quite useful for many users.

for a new CFD user, who wants to learn the basics (concepts, ideas, good practises), CFD Online is a great place to start (this was how I started exploring CFD!).
The website has a lot of useful info and also contains links to many other resources. It serves as a quick reference to many CFD questions and also has an active forum.

A good introductory textbook is “An Introduction to Computational Fluid Dynamics” (Addison Wesley Longman) by Versteeg, K and Malalasekera W. It is relatively easy-to-read and covers mainly the finite volume method.

A more advanced textbook is “Numerical Computation of internal and external flows: The fundamentals of Computational Fluid dynamics” (Butterworth-Heinemann) by Charles Hirsch. This book covers many concepts in-depth and also lays importance on some of the advanced mathematics. For someone who wants to study CFD in considerable detail, this book is really useful.



Hey @mananthakkar87,

Awesome! I’ll be adding these to the Collection of SimScale Resources posted I pinned awhile back.

Thanks for helping out :slight_smile:



Maybe as much as comprehensive as Prof. Hirsch’s book (recommended by Manan)
but, in my opinion, more didactically organized, is the one by Prof. Pletcher et alii
if concision is very important for you, however, you would prefer Prof. Zikanov’s,subjectCd-PH50.html
(a textbook great for classroom, not very beautifull, but adequate for the usually impatient students).
These three books cover different methods designed for compressible and for incompressible flows simulation, in this order, and I think this is not an unimportant detail: these are books more attractive for those interested in high speed (high Mach number, where shock waves could appear) flows. A fourth very good CFD book for high speed flows (with no more than a few words about techniques for incompressible flows simulation) is the one by Blazek .
The four books above mentioned deal with analysis of stability and accuracy of algorithms in depth (and may be hard to understand for readers without an appreciable degree of mathematical maturity). I will come back to the reasons for distinguishing between books more devoted to high speed flows from those dedicated to low speed flows, after commenting some of those belonging to the low speed (mostly incompressible) flows school in the next paragraph.

Versteeg and Malalasekera, specially in this 2nd. edition
wrote an easy to read book, that probably fits the needs of most CFD users not dealing with high speed flows. Similar to it, but more oriented to code writing is the 2016 book by Moukhaled et alii (of the Matlab generation)
and even more oriented to code writing is the 2002 ed. of that by Ferziger and Peric (with Fortran 2D example codes)
The book of Ferziger and Peric brings less of the turbulence models in use today, but more about the solution of compressible flows, mainly using (pressure based) algorithms designed primarily for incompressible flows solution.

Discussing differences between algorithms designed for compressible flows solution and those designed for incompressible flows it is usual to speak about density based and pressure based algorithms. These denominations reflect the fact that in the numerical solution of a compressible flow, the mass conservation can be used to obtain the variation in time of the fluid density (partial rho / partial t), while in incompressible flows solution, density being constant, normally the mass conservation equation is used to build a Poisson equation for pressure. It should be noted, however, that the accurate representation of the discontinuity of properties that takes place at a shock wave is a much more difficult problem to deal with than the need of creating some artificial compressibility for solving incompressible flows using density based solvers or the provisions needed to allow density variations in an algorithm initially designed for incompressible flows solution. Accurate shock waves representation in difference methods (FVM, FDM or FEM) generally requires that the total variation of the characteristic variables diminishes as the numerical transient solution evolves. This is called the TVD property of a discretization (differencing) scheme and does not deal with the total variation of the primitive variables (density,velocity and pressure) or of the conservative ones (density, momentum and internal energy). When a TVD discretization scheme is used, but in the neighborhood of a shock are found nonphysical oscillations, probably the characteristic variables (I mean some some form of flux-vector splitting using the eigenvectors of the inviscid flux-vector jacobian matrix) and characteristic velocities are not being correctly employed. In the books by Hirsch (in less depth in the 2nd. than in the 1st. ed.), Pletcher et alii, Zikanov, Blazek and in that by Chung (to be presented in the next paragraph), the meaning of these characteristic variables (and of their corresponding characteristic velocities of propagation) are discussed, but I only started to understand its importance after following (implementing some of the methods and reproducing figures of) Prof. LeVeque’s book (almost entirely dedicated to the numerical solution of Euler equations in 1D).

In a category of its own, containing essentially all the subjects (and all the speeds) approached by the others here mentioned but going also into acoustics, reactive, multiphase and electromagnetic flows, radiative heat transfer (this topic, and combustion, are discussed by Versteeg and Malalasekera also in depth) and even relativistic astrophysics in its 1012 pages (it is not for the weak), is the book of Prof. Chung . It seems more recommendable for consulting than for learning the basics, but albeit this and the weight, I deem it handier than Hirsch’s.

Finally, for those interested in free-surface flows (absent of the books above with the exception of those of Ferziger and Peric and of Chung), a great resource is the site edited by Prof. Hirt


In fact, pressure-based solvers for compressible flow also build the pressure equation using the continuity equation. Divergence free velocity is obtained after the pressure corrector is performed. Density based solvers for compressible flow solve continuity to update density.

These are good for those who want to learn OpenFOAM


Hi, Dylan, we agree about algorithms. But I feel that the algorithm is an ingredient, in a compressible flows solver recipe, overemphasized in the extensions of incompressible flows solution methodologies to cope with all speed flows. In my opinion the density based, pressure based (or “coupled”, like in CFX) algorithm, in a compressible flows solver, is like the rice in a risotto or the bread in a sandwich: there are different kinds of it and its qualities make a lot of difference, but the most remarkable taste usually comes from other ingredients.

The most important of these other ingredients, is the discretization of the advective (convective) terms, that in compressible solvers generally takes into account the coupling between the mass, momentum and energy conservation equations, having the pressure incorporated in the momentum and energy fluxes. A conservative discretization of the so coupled advective terms involves the inviscid flux-vector estimation. If an upwind (generally of 2nd. order, but limited) differencing scheme is chosen, the best practice is to use the characteristic velocities (V + c, c, and V - c, where V is the fluid velocity and c the sound speed) to define from what side of a cell interface we should take the value attributed to that face. The value of what? - of the local characteristic variables (that premultiplied by characteristic velocities and by the eigenvectors of the jacobian matrix of the inviscid flux-vector will be transformed back into that flux-vector, now upwinded). Even if a central differencing scheme is to be used the maximum characteristic velocity (spectral radius of the previously mentioned jacobian matrix) and the difference of pressure between the neighbor cells will be needed to define the coefficients of the artificial 2nd and 4th order dissipation terms generally used to avoid spurious oscillations near shock waves. See the section IV in

This advective terms discretization is where the incompressible school books generally fall short for those interested in high order accurate shock capturing methods. This is one of the main reasons to use books like those recommended in the first paragraph of my previous post or (to mention an old, but still very appreciated edition) that of Anderson
even recognizing that they are not as easy to read and do not bring a so up to date review of turbulence modeling as that of Versteeg and Malalasekera and other books mentioned in the second paragraph of my previous post.

I believe that the advective terms discretization schemes are also among the main reasons why SimScale incorporates not only OpenFOAM (mostly incompressible) solvers but also SU2, of the compressible breed.