{'fraction_non_alphanumeric': 0.01927007299270073, 'fraction_numerical': 0.004087591240875913, 'mean_word_length': 5.217785843920145, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
book review corner

Computational tools and techniques have evolved greatly over the past few decades, but the foundations of computational methods remain unchanged. Although today’s desktop computers are as powerful as the mainframe computers of the past, the type of software used today in computational fluid dynamics (CFD) is different. The old procedural computer programming is mostly replaced by the modern object-oriented approach; the use of programs developed by the user have relatively diminished, giving rise to the use of commercial codes. Despite these developments, the fundamentals and underlying principles of CFD remain the same. It is highly instructive and pedagogically beneficial for CFD students and practitioners to know the various techniques used in the subject and to be able to develop short programs to implement these techniques. In this respect, this third edition of the book by Pletcher et al. is a welcome addition to the recent CFD literature. This book is a textbook for graduate-level courses in computational fluid dynamics and heat transfer. The subject is covered in two parts: Part I is devoted to fundamentals, while Part II is on applications. The book has 10 chapters with numerous end-of-chapter problems and three appendices. Chapters 1 to 4 cover the fundamentals of CFD. They present the governing partial differential equations, basic discretization methods, and applications of numerical methods to selected model equations. This last topic provides a unique opportunity to learn the basics of CFD through simple model equations. Various methods are presented to solve the wave equation, heat equation, Laplace’s equation, and the inviscid and viscous Burgers equations. Problems at the end of each chapter provide plenty of opportunity to practice with various methods and programming to solve these equations. Chapters 5 to 10 are intended to apply the knowledge gain in previous chapters to certain class of CFD problems. Chapter 5 presents a detailed account of governing equations for fluid flow and heat transfer. Fundamental equations for laminar, turbulent, and boundary-layer flows are covered; Euler equations and a brief account of turbulence modeling are presented. Chapter 6 is on numerical methods for inviscid flows, while Chapter 7 presents methods for solving boundary-layer equations. The numerical methods for the parabolized Navier–Stokes equations are the subjects of Chapter 8. The solution of the Navier–Stokes equations, covered in Chapter 9, is of interest to many CFD practitioners. Topics such as compressible and incompressible flows, vorticity-stream function approach, and the celebrated SIMPLE family of methods for pressure–velocity coupling are all presented in this chapter. The final chapter of the book is on grid generation. Algebraic and differential equation methods for grid generation are presented. Many of today’s commercial codes run on unstructured grids, and it is highly instructive to know about how such grids are generated and the possible errors emerging from improper construction of such grids. Unstructured grid schemes are briefly discussed in Chapter 10. Overall, this book contains a collection of classical and modern numerical techniques that are essential to those who practice CFD; the book especially provides a good understanding of the underlying principles to those who want to use commercial codes correctly.