To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Fluid dynamics concerns fluid motions. No single book, or even shelf of books, could hope to describe the full range of known fluid dynamics. By tradition, introductory books mainly concern three simplified categories of flow:
Gasdynamics – compressible frictionless flows.
Viscous flows, boundary layers, and turbulence – incompressible frictional flows.
Books with generic titles like fluid dynamics, fluid mechanics, or aerodynamics generally survey all three basic categories of flow. Other books concern just gasdynamics or just viscous flows. These books sacrifice breadth for depth. Given the huge differences between compressible inviscid flows and viscous incompressible flows, single-topic treatments make sense for many readers, who need to know only one or the other.
Computational fluids dynamics (CFD) concerns computer simulations of fluid flows. Each type of fluid flow listed above has inspired a myriad of competing numerical methods, each with its own pros and cons, each demanding a good understanding of both traditional fluid dynamics and numerical analysis. As a result, the size of computational fluid dynamics far exceeds that of traditional fluid dynamics. At the present time, most CFD books survey numerical methods for all three of the basic flow categories. While such surveys work well for traditional fluid dynamics, the larger size of CFD requires more compromises and trade-offs. With so much to cover, even a two-volume survey can only describe the basic principles and techniques common to all three categories of flows, plus a limited and sometimes arbitrary sampling of the principles and techniques specific to each category of flow.
This chapter concerns boundary treatments. Before now, the book has avoided boundary treatments by using either infinite boundaries or periodic boundaries, but one cannot remain innocent forever. Boundary conditions and governing equations have equal importance, despite the fact that most sources, including this one, spend most of their time focused on the governing equations. For the same governing equations, boundary conditions distinguish flow over a plane from flow over a train from flow over a space shuttle from any other sort of flow. In practice, numerical boundary treatments often consume a large percentage of computational gasdynamics codes, both in terms of the number of lines of code and in terms of the development effort.
This chapter concerns two types of boundaries – solid and far-field boundaries. Solid boundaries are also known as surface, wall, rigid, or impermeable boundaries; naturally enough, solid boundaries occur at the surfaces of solid objects. This chapter considers only stationary solid boundaries. Far-field boundaries are also known as open, artificial, permeable, or remote boundaries. Far-field boundaries limit the computational domain to a reasonable finite size; the true boundaries may be extremely far away, or even infinitely far away, at least conceptually. In general, when the physical domain is very large or infinite, then the farther away the numerical far-field boundary is, the more accurate but also the more costly the numerical approximation will be. Far-field boundaries are divided into inflow boundaries, where fluid enters the computational domain, and outflow boundaries, where fluid exits the computational domain. In multidimensions, far-field boundaries may also be streamlines, across which fluid neither exits nor enters.
The last two chapters dramatically demonstrate the folly in attempting to represent a discontinuous function by a single polynomial. In the best case, with the entire true function available, the single polynomial representation will suffer from narrow width but large-amplitude Gibbs oscillations near the jump discontinuities, at least when minimizing the error in ordinary norms, as seen in Chapter 7. In more typical cases, with only limited information about the true function available or, more specifically, with only samples of the function available, the single polynomial will suffer from the Runge phenomenon, a relatively severe form of spurious oscillation that can increase rapidly as the number of samples increases, as seen in Chapter 8.
To overcome the problems associated with single-polynomial reconstructions, this chapter will consider piecewise-polynomial reconstructions, which were introduced earlier in Section 6.3, especially in Example 6.8. In piecewise-polynomial reconstructions, instead of representing the entire function by a single polynomial, we represent different local regions or cells by different polynomials. Figure 9.1 illustrates a typical piecewise-polynomial representation. By using separate and independent polynomials for each cell, only the cells containing jump discontinuities need suffer from large spurious oscillations, rather than the entire representation. Furthermore, piecewise-polynomial representations naturally allow jump discontinuities: the simplest reconstructions allow jump discontinuities only at cell edges, whereas the subcell resolution techniques discussed in Section 9.4 allow jump discontinuities to occur anywhere, including the insides of cells. Of course, piecewise-polynomial reconstructions cost more to build and evaluate and require more storage space than a single polynomial reconstruction; however, for discontinuous functions, the accuracy improvements easily justify the additional costs.
Logically, all things are created by a combination of simpler, less capable components.
Dogbert in Dilbert by Scott Adams
This part of the book concerns solution-sensitive methods. After possibly accounting for the wind direction, the first-generation methods studied so far mindlessly treat every part of the solution the same, regardless of how the solution behaves. The solution-sensitive methods studied in Part V combine a range of first-generation methods, varying the exact blend from place to place based on solution features such as shocks. For example, a solution-sensitive method might use Roe's first-order upwind method at shocks and the Lax–Wendroff method in smooth regions. Most solution-sensitive methods decide what to do based on solution gradients or flux gradients; large gradients indicate shocks or other features with the potential to cause trouble in the polynomial interpolations underlying most numerical methods.
In the literature, solution-sensitive methods are commonly called high-resolution or TVD methods. Less common terms include hybrid, adaptive, self-adjusting, averaged, reconstructed, essentially nonosdilatory, combination, corrected, and limited methods. No one book could describe the huge number of solution-sensitive methods suggested in the research literature. Part V includes methods based partly on historical significance and influence, partly on how well they exemplify general principles and notations, partly on current popularity, and partly on the author's personal tastes.
Many solution-sensitive methods explicitly enforce nonlinear stability conditions, such as the upwind range condition or the TVD condition. Stability conditions reduce spurious oscillations near shocks, but they also typically impose clipping errors at solution extrema. Although combination methods have trade-offs, these are far less severe than for the fixed methods studied in Part IV.
This chapter concerns numerical methods for the Euler equations. Rather than starting from scratch, this chapter mainly converts the numerical methods for scalar conservation laws seen in the last chapter into numerical methods for the Euler equations. The approaches described here can be divided into two categories – flux approaches and wave approaches. Wave approaches can be further subdivided into two categories – flux vector splitting approaches and reconstruction–evolution approaches. Whereas flux approaches consider only fluxes, wave approaches model both fluxes and waves, and especially the interactions between various families of waves, using either flux vector splitting or Riemann solvers, which makes them more physical and accurate but also more expensive and complicated. Before continuing, the reader may wish to review pertinent material from previous chapters. In particular, in preparation for flux vector splitting, discussed in Section 18.2, the reader should review the introduction to flux splitting and wave speed splitting found in Sections 13.4 and 13.5, respectively. Furthermore, in preparation for reconstruction–evolution methods, which use real or approximate Riemann solvers, the reader should review Chapter 5 and the introduction to reconstruction–evolution methods found in Section 13.6. And, of course, the reader should not even consider reading this chapter until carefully ingesting the last chapter.
This chapter converts all of the numerical methods for scalar conservation laws seen in the last chapter, except for Fromm's method, into numerical methods for the vector Euler equations in one if not several ways. For most numerical methods, the vector versions retain most of the properties of the scalar versions.
This part of the book concerns gasdynamics. One might think that the term “gasdynamics” could refer to any sort of flow of any sort of gas. However, by tradition, unless specifically stated otherwise, the terms gasdynamics or compressible flow refers to a relatively simple type of gas flow, affected only by pressure and flux, neither too dense nor too rare. A more precise definition appears in Chapter 2.
The treatment of gasdynamics found in Part I varies from the traditional gasdynamics treatment in several ways, due mainly to the demands of the numerical approximations studied later in this book, as opposed to the demands of the simple hand calculations studied in traditional gasdynamics texts. For example, traditional gasdynamics texts consider linearized potential flow approximations such as the the Prandtl–Glauert equation; while many people still use linear approximations, modern computing power has made them increasingly unnecessary. This book will not discuss linearized approximations. For another example, traditional gasdynamics texts focus mainly on steady two-dimensional flows, whereas this book focuses mainly on unsteady one-dimensional flows. These two model problems are equally difficult: Both model problems involve the same number of dependent and independent variables; and many solutions to one problem have an analogous solution in the other problem such as, for example, the steady two-dimensional expansion fan versus the unsteady one-dimensional expansion fan. The steady two-dimensional model problem has one major positive aspect: Many gas flows of practical interest are approximately steady and two dimensional. Unfortunately, the steady two-dimensional model problem has at least two critical cons.
The governing equations of gasdynamics are expressions of conservation and the second law of thermodynamics. Conservation requires that three fundamental quantities – mass, momentum, and energy – are neither created nor destroyed but are only redistributed or, excepting mass, converted from one form to another. For example, if momentum increases in one place, either momentum or an equivalent amount of energy must decrease someplace else. Conservation of momentum and energy is extremely complicated for a general physical system owing to the variety of mechanisms that can affect momentum and energy, such as viscosity, chemical reactions, gravity, electromagnetic forces, and so forth. To keep things simple, traditional gasdynamics as discussed in this book concerns inviscid flows of perfect gases, optionally free of forces except for pressure, which eliminates all influences on momentum and energy except for redistribution and pressure.
A companion principle to conservation, known as the second law of thermodynamics, requires that a fourth fundamental quantity called entropy should never decrease. The second law of thermodynamics restricts the redistributions and conversions of conserved quantities otherwise allowed by the conservation laws. As another supplement to conservation, the equations of state specify the nature and type of gas. Three conservation laws, two equations of state, and the second law of thermodynamics collectively constitute the Euler equations when expressed in a fixed coordinate system, or the Lagrange equations when expressed in a coordinate system that moves with the flow. This book mainly concerns the Euler equations, but see Problem 2.7 and Section 23.1 for an introduction to the Lagrange equations.
This chapter concerns reconstruction–evolution methods, also called solution-averaged or solution-reconstructed methods. Before continuing, you may wish to review the earlier discussions of reconstruction–evolution methods found in Sections 13.6, 17.3, and 18.3. The reconstruction–evolution methods seen in those earlier sections were all first-order accurate. This chapter concerns second- and higher-order accurate methods. In some cases, solution-averaged methods differ from flux-averaged methods in relatively minor ways. For example, the solution-averaged method might use an average like f((x + y)/2), whereas the flux-averaged method might use an average like (f(x) + (y))/2. However, in general, solution-averaged methods use elaborate physical modeling of a sort not possible in flux-averaged methods, making them far more complex.
This chapter describes five reconstruction–evolution methods. Section 23.1 concerns Van Leer's reconstruction–evolution method, better known as MUSCL. Section 23.2, concerns the Colella–Woodward reconstruction–evolution method, better known as PPM. Section 23.3 describes two reconstruction–evolution methods devised by Anderson, Thomas, and Van Leer, also often called MUSCL methods, that strongly resemble the flux-limited methods devised by Chakravarthy and Osher seen in Section 20.3. Section 23.4 describes the Harten–Osher reconstruction–evolution method, better known as the UNO method. Finally, Section 23.5 describes the Harten–Engquist–Osher–Chakravarthy reconstruction–evolution methods, better known as ENO methods. Do not confuse the finite-volume ENO methods seen in Section 23.5 with the finite-difference ENO methods seen in Section 21.4. The two classes of methods have basically one thing in common: both use ENO reconstruction, as described in Chapter 9, one to reconstruct the solution and the other to reconstruct the flux.
This chapter concerns orthogonal functions. A professor recently translated some of Elvis Presley's hit songs into Latin. The love songs were easy, but the professor had trouble with Elvis' rock hits – there are no Latin words for “blue suede shoes” or “hound dog.” Computers have a similar difficulty when it comes to functions. As seen in the last chapter, computers represent functions by finite sequences. Unfortunately, most finite sequences cannot adequately express most discontinuous functions. For example, whereas an infinite-order polynomial can represent any piecewise-smooth function, even the best finite-order polynomial approximations exhibit substantial oscillations in the presence of jump discontinuities. Of course, the best polynomial depends on how you define “best.” For example, the “best” polynomial could be the polynomial with the least error in the 1-norm, the 2-norm, the ∞-norm, or at some specified critical point. However, sometimes there are no good polynomials regardless of your criteria. This is quite often the case with discontinuous functions. Even completely smooth functions can suffer, as seen in the following example.
Example 7.1 Find the best quadratic approximation for a function with one maximum and one minimum.
Solution As seen in Figure 7.1, the error is enormous no matter which quadratic is chosen. The quadratic can model the maximum or the minimum but not both. There is simply no way to make a one-hump camel look like a two-hump camel. In this case, the choice of quadratic is largely arbitrary, and thus it is impossible to tell much about the original function by examining the chosen quadratic representation.
Welcome. This book concerns computational gasdynamics, a part of the broader field of computational fluid dynamics (CFD). More specifically, put in precise technical terms, this book concerns numerical methods for simulating high-speed flows of inviscid perfect gases, especially flows containing shocks. Computational gasdynamics falls across a number of traditional disciplines including aerospace engineering, mechanical engineering, chemical engineering, applied mathematics, numerical analysis, and physics. The book should appeal to practitioners of any of these disciplines, although it does not claim to have the theoretical rigor expected of mathematics texts nor the drive towards immediate full-scale applications found in many engineering books. This book presumes an understanding of calculus, differential equations, numerical analysis, fluid dynamics, and physics and a level of sophistication of the sort found in most seniors and first-year graduate students in science, mathematics, or engineering.
I have taught courses based on the material in this book numerous times in the past five years at the University of Colorado at Boulder. These courses have variously included juniors, seniors, graduate students, professors, post-docs, and practicing engineers in a variety of different disciplines. The feedback from my students has critically guided the development and evolution of the book, taking it from a handwritten collection of notes to the present form. Researchers in the field have also reviewed many parts of the book, although the needs of newcomers have always determined the final presentation. The book contains about a semester-and-a-half worth of material. To trim the material to a one-semester length, less advanced courses should use Part III selectively and omit Part V, while advanced courses should only sample Parts I and II.
The last chapter concerned linear stability. This chapter concerns nonlinear stability. Linear stability theory is classic, dating to the late 1940s. The study of nonlinear stability is far newer. Starting with papers by Boris and Book (1973) and Van Leer (1974), nonlinear stability theory developed over roughly the next fifteen years. Although nonlinear stability theory may someday undergo major revision, no significant new developments have appeared in the literature since the late 1980s. Thus after a period of intensive development, nonlinear stability theory has plateaued, at least temporarily.
To keep the discussion within reasonable bounds, this chapter concerns only explicit forward-time finite-difference approximations. Furthermore, this chapter concerns mainly one-dimensional scalar conservation laws on infinite spatial domains. As far as more realistic scenarios go, the Euler equations are discussed briefly in Section 16.12, multidimensions are discussed briefly at the end of this introduction, and solid and far-field boundaries are discussed briefly in Section 19.1. Unlike solid and far-field boundaries, the periodic boundaries in Chapter 15 and the infinite boundaries in this chapter do not pose any difficult stability issues.
The last chapter began with a general introduction to stability, both linear and nonlinear. Any impatient readers who skipped the last chapter should go back and read Section 15.0. While linear and nonlinear stability share the same broad philosophical principles, especially the emphasis on spurious oscillations, the details are completely different. Thus, except for its introduction, the last chapter is not a prerequisite for this chapter. One of the more important nonlinear stability conditions relies heavily on the wave speed split form described in Section 13.5. Readers who skipped this section should go back and read it.
This chapter surveys simple classic methods for scalar conservation laws. As seen in Part III, the six basic design techniques used in computational gasdynamics are as follows:
flux averaging (Section 13.3),
flux and wave speed splitting (Sections 13.4 and 13.5),
numerical integration and numerical differentiation (Chapter 10),
Cauchy–Kowalewski (Section 15.3),
method of lines (Subsection 11.2.1), and
reconstruction–evolution (Section 13.6).
The numerical methods found in this chapter use all of these derivational techniques, albeit in the simplest possible ways. To begin with, Section 17.1 derives the Lax–Friedrichs method using numerical differentiation and the method of lines. Section 17.2 derives the Lax–Wendroff method using the Cauchy–Kowalewski technique and numerical differentiation. Section 17.3 derives three first-order upwind methods using reconstruction-evolution and numerical integration. Section 17.4 derives the Beam–Warming second-order upwind method using the Cauchy–Kowalewski technique, numerical differentiation, and flux splitting. Finally, Section 17.5 derives Fromm's method using a simple fixed flux average of the Lax–Wendroff method and the Beam–Warming second-order upwind method.
To help evaluate the numerical methods found in this chapter, consider the following twelve-point checklist based on the material found in Part III:
Artificial viscosity (Chapter 14, Sections 15.1, 15.3, and 16.4).
CFL condition (Chapter 12).
Conservation (Chapter 11).
Consistency (Sections 11.1, 15.3, 15.4 and 16.11).
Convergence (Sections 15.4 and 16.11).
Explicit versus implicit (Sections 11.1 and 12.1).
Finite volume versus finite difference (Chapter 11).
Linear stability (Section 11.1, Chapter 15).
Linear versus nonlinear (Chapters 15 and 16).
Nonlinear stability (Sections 11.1 and 12.1, Chapter 16).
This chapter describes the basic principles of stencil selection. To keep the discussion to a reasonable length, the focus will be on explicit finite-difference methods, except for the last section, which concerns explicit finite-volume methods. Some methods blindly choose the same stencil regardless of circumstances, including the nine simple methods seen in Chapter 11. However, this naive simplicity exacts a toll on accuracy, stability, or both. This chapter introduces methods with adjustable stencils, also called adaptive or solution-sensitive stencils. This chapter provides only an introduction; a full account will have to wait until later, especially Chapter 18 and Part V.
The governing principles of adjustable stencil selection are as follows:
The numerical domain of dependence should model the physical domain of dependence. For example, the physical domain of dependence always lies entirely upwind; in other words, the physical domain of dependence lies to the right for left-running waves and to the left for right-running waves. Upwind stencils model this physical behavior by using only upwind points or, at least, more upwind than downwind points. However, in some cases, centered methods using equal numbers of upwind and downwind points actually model the physical domain of dependence better than upwind methods, as discussed below. Even downwind-biased stencils may provide good enough modeling, providing that they contain at least one upwind point; as seen in the last chapter, the CFL condition requires that every stencil contain at least one upwind point.
The numerical domain of dependence should avoid shocks and contacts whenever possible. As seen in Part II, jump discontinuities can severely disrupt the component approximations, and the combinations used in computational gasdynamics sometimes further magnify the disruption.
This chapter concerns linear stability, while Chapter 16 will treat nonlinear stability. We begin with a general introduction to linear and nonlinear stability. Unfortunately, there are many different definitions for numerical stability, most of which differ from the definition of physical stability seen in Section 14.1. In particular, unlike physical instability, numerical instability does not necessarily imply sensitivity to small disturbances. Four common definitions of numerical stability are as follows:
Unbounded Growth A method is unstable if the error grows to infinity as time goes to infinity. In some definitions, the error is required to grow at a certain minimum rate (e.g., exponentially or algebraically). A method that is not unstable is stable.
Convergence A method is stable if it converges as Δx → 0 and Δt → 0, assuming only a few basic conditions such as consistency, conservation, and well-posed initial and boundary conditions. Otherwise, a method is unstable. In some definitions, the solution is required not only to converge but also to converge to the solution that satisfies the entropy condition. Somewhat surprisingly, the “unbounded growth” definition and the “convergence” definition are closely related, as discussed in Sections 15.4 and 16.11.
Physical A method is unstable if it exhibits significant errors created by interactions between various time and space approximations and, in particular, any errors that start small and grow with time. In other words, instability is any significant error beyond that found in the individual component approximations such as the forward-time approximation or the central-space approximation. Conversely, a method is stable when it exhibits only small errors beyond those caused by flaws in the individual component approximations.