Computational Methods in Environmental Fluid Mechanics , Olaf Kolditz Springer-Verlag, New York, 2002. $54.95 (378 pp.). ISBN 3-540-42895-X

Environmental fluid mechanics (EFM) is the study of natural fluid systems with emphasis on the transport and dispersion of environmental contamination. The diverse field includes fluid flows in the atmosphere; in surface waters such as wetlands, rivers, estuaries, and oceans; and in subsurface regions. A wide range of time and spatial scales and a multiplicity of interacting processes often make numerical simulation of such flows challenging and computationally intense. Continued increases in computer power allow modeling of larger, more detailed, and more complex problems; increase the accuracy and scope of flow and transport simulations; and create excitement among researchers.

Because of the diversity and complexity of EFM, it is not surprising that most texts limit their focus to specific areas. For example, Jacob Bear’s excellent text * Dynamics of Fluids in Porous Media * (Dover, 1988) focuses on subsurface flows and transport. Benoit Cushman-Roisin’s *Introduction to Geophysical Fluid Dynamics * (Prentice Hall, 1994) discusses oceanographic and atmospheric flows. However, a good text is long overdue on computational methods in EFM, tailored to the masters or beginning PhD level and addressing the many challenges of numerical-model design. I was therefore interested to read Olaf Kolditz’s * Computational Methods in Environmental Fluid Mechanics *.

The book comprises four parts. In part I (chapters 1–4) Kolditz gives a general introduction to the partial differential equations (PDEs) that describe fluid flows, including turbulence and flows in porous media. The discussion, limited to flows in inertial frames of reference, does not include large-eddy simulation and therefore excludes many geophysical flows. Part II (chapters 5–8) introduces numerical methods—finite differences, finite volumes, and finite elements—for solving PDEs. Part III (chapters 9–11) is devoted to object-oriented programming and emphasizes a software package Kolditz and his colleagues developed for the simulation of flows in fractured porous media. Each chapter in part IV (chapters 12–15) discusses a particular application in the complex and challenging field in which Kolditz is active—flow and transport in fractured porous media.

According to the preface, the first three parts are taken from a masters course in computational fluid mechanics at the University of Tübingen. The level is suitable for beginning graduate students. In contrast, part IV is based on research papers written by Kolditz and colleagues and is therefore pitched at a much higher level. The book has a narrower scope than the title suggests, but that is to be expected considering the diversity of EFM.

Unfortunately, the contents of the book are disappointing. Part I offers mostly mathematical discussion but little physical insight. Chapter 3’s introduction to flows in porous media does not provide sufficient background for parts III and IV. Part II would have benefited from an additional chapter on the challenges to numerical simulation of porous media flows, such as upscaling, geological uncertainty, and effects of numerical diffusion and dispersion. Although part III gives a good overview of RockFlow, Kolditz’s object-oriented software package, it does not provide general insight into object-oriented programming. For example, Part III does not explain the essential concepts of encapsulation and polymorphism. Also, the RockFlow software is not distributed with the book. Part IV requires extensive additional reading for people not trained in flows through fractured porous media, although it does offer domain experts a nice overview of Kolditz’s research.

The text of parts I–III is sketchy, at times sloppy, and resembles class notes more than a textbook. The sloppiness is annoying; for example, chapter 5 states the Lax equivalence theorem as if it were valid for all fluid-mechanical systems. Roughly half of the chapters in parts I-III come with exercises, but almost all merely ask the student to regurgitate material covered in the text and are therefore not very interesting. The equations are hard to follow because the book has no list of symbols. Also, many figures lack appropriate commentary. Finally, except in part IV, reference lists are surprisingly short. For example, part I has only 17 references, 8 of which are to sources in German.

Unfortunately, I cannot recommend * Computational Methods in Environmental Fluid Mechanics * as a textbook. Until a better alternative is published, I will stick with the excellent texts by Bear and Cushman-Roisin, supplemented by C. A. J. Fletcher’s * Computational Techniques for Fluid Dynamics * (Springer-Verlag, 1991) or Joel Ferziger and Milovan Perić’s * Computational Methods for Fluid Dynamics * (Springer-Verlag, 2001).