Hostname: page-component-745bb68f8f-d8cs5 Total loading time: 0 Render date: 2025-02-07T03:15:08.533Z Has data issue: false hasContentIssue false

Think Before You Compute: A Prelude to Computational Fluid Dynamics (Cambridge Texts in Applied Mathematics). By E.J. Hinch. Cambridge University Press, 2020. ISBN: 978-1-108-85529-7.

Review products

Think Before You Compute: A Prelude to Computational Fluid Dynamics (Cambridge Texts in Applied Mathematics). By E.J. Hinch. Cambridge University Press, 2020. ISBN: 978-1-108-85529-7.

Published online by Cambridge University Press:  13 January 2021

Matthias Heil*
Affiliation:
Department of Mathematics, University of Manchester

Abstract

Type
Book Review
Copyright
© The Author(s), 2021. Published by Cambridge University Press

When I was asked if I was willing to review this book I readily agreed because I found the title rather intriguing. ‘Think Before You Compute’ sounded wonderfully combative, in contrast to the ‘Prelude’ in the subtitle which seemed strangely defensive. So which one is it? The answer is that it is both, and, to start with my summary: this is a brilliant and refreshingly different book on numerical methods for fluids. The preface identifies the target readership as students who have taken undergraduate courses on fluid mechanics and basic numerical methods. Ideas get sketched at a high but very appropriate level – hence the ‘Think’. It is then left to the student/reader to fill in the nitty-gritty details from other sources – hence the ‘Prelude’.

The book is split into three parts of which part I is my favourite. The author uses the problem of two-dimensional flow in a driven cavity to develop a working numerical method, focusing very much on the heuristics/ideas (as opposed to rigorous derivations/analysis), while also discussing issues such as how to write and test code, and how to extract meaningful results from the computations. The initial approach (in chapter 2) is based on the stream function–vorticity formulation, time stepped to a steady state. The only issue arises from the need to respect the Courant–Friedrichs–Lewy condition, and the effects of violating it are nicely demonstrated. The primitive variable formulation (discussed in chapter 3) then illustrates the many potential pitfalls arising from the lack of an evolution equation for the pressure. I liked that the author shows explicitly how and why naive approaches to this problem fail – the final algorithm (pressure projection on a staggered grid) is developed step-by-step, incorporating lessons learned from the earlier failed attempts.

Part II, entitled ‘Generalities’, takes a step back and revisits some of the components employed in the algorithms in part I in more detail. It discusses alternative spatial discretisations (finite elements and spectral methods), time stepping and linear algebra. Again, the material is presented very much by focusing on the ideas behind the methods, and by discussing what complications may arise in practice and in a Navier–Stokes context. While this makes the material easy and enjoyable to read (especially for a reader who is already familiar with the methods), the near-total lack of references to papers or textbooks that provide the deliberately omitted details makes me wonder how helpful this section is for the intended readers. There is an occasional reference (typically to articles in the ‘Annual Review of Fluid Mechanics’) listed under ‘Further Reading’ but this does not really address this problem. While the style remains similar to how one would explain the material to a first-year PhD student during a supervision meeting, what is missing is that most supervisors would end such a meeting by giving the student a couple of books from their bookshelf or by saying something like: ‘N.N. has written a nice paper on this – have a look through this for the details’. Including some specific references would have been very easy for the author, and their omission is really inexplicable to me. The readers can obviously perform their own literature search, but the provision of specific references that the author regards as particularly appropriate, and that match the way in which things have been explained, would have been extremely helpful.

Part III covers what the author describes as ‘Special Topics’. These include a brief discussion of software packages (mainly FreeFem++) and a chapter on methods for hyperbolic equations. The latter expands on the pessimistic assertion that ‘solving hyperbolic equations numerically is unwise’ from the introduction. Boundary integral methods, fast Poisson solvers and fast multipole methods are all covered in a few pages. Other topics are the representation of free surfaces (with a discussion of the volume of fluid method), issues arising in the solution of nonlinear problems, and wavelets. A chapter on particle methods provides a brief overview of a wide range of such techniques for modelling fluids and granular materials, highlighting the methods’ strengths and weaknesses, with the latter occasionally conveyed in very strong statements such as ‘I see no useful role for this approach’. The lack of specific references is even more inexplicable here since the chapter explicitly refers to certain papers (by author/year), yet there is no list of references with full details.

Leaving aside the problem with references, I greatly enjoyed this book and highly recommend it. The writing is somewhat unconventional and very opinionated – but in a good way! (My favourite is that in a list of operating systems Windows is referred to as ‘Windoze’! This is how I spell it too, but I was surprised that the proofreaders let the author get away with this.) The author certainly doesn't mince his words, but even if you disagree with some of his superbly blunt statements (and I can guarantee that every reader will find something that annoys them), the book will – as promised by the title – make you think, and may even make you a better computational fluid mechanician.