Вы находитесь на странице: 1из 235

I do like CFD, VOL.

1
Governing Equations and Exact Solutions

Katate Masatsuka

ii
I do like CFD, VOL.1
c
Copyright 2009
by Katate Masatsuka

All rights reserved. No part of this book may be


reproduced in any form by any means without a
written permission of the author.

Author:
Katate Masatsuka
e-mail: info@cfdbooks.com
URL: http://www.cfdbooks.com
Comments and suggestions are appreciated.
Please feel free to send messages to the author.

Published by Katate Masatsuka.


Printed and bound in the United States of America by Lulu.com.

iii

To Hiroaki Nishikawa
and his family

Contents
Preface

xi

1 Basics
1.1 Dierential Notations . . . . . . . . . . . . . . . .
1.2 Vectors and Operators . . . . . . . . . . . . . . . .
1.2.1 Vectors and Tensors . . . . . . . . . . . . .
1.2.2 Dot/Inner Product . . . . . . . . . . . . .
1.2.3 Vector/Outer Product . . . . . . . . . . . .
1.2.4 Dyadic Tensor . . . . . . . . . . . . . . . .
1.2.5 Identity Matrix . . . . . . . . . . . . . . .
1.3 Orthogonal Vectors . . . . . . . . . . . . . . . . .
1.4 Index Notations . . . . . . . . . . . . . . . . . . .
1.4.1 Einsteins Summation Convention . . . . .
1.4.2 Kroneckers Delta . . . . . . . . . . . . . .
1.4.3 Eddingtons Epsilon . . . . . . . . . . . . .
1.4.4 Some Related Formulas . . . . . . . . . . .
1.5 Div, Grad, Curl . . . . . . . . . . . . . . . . . . .
1.5.1 Coordinate Systems . . . . . . . . . . . . .
1.5.2 Gradient of Scalar Functions . . . . . . . .
1.5.3 Divergence of Vector Functions . . . . . . .
1.5.4 Curl of Vector Functions . . . . . . . . . .
1.5.5 Gradient of Vector Functions . . . . . . . .
1.5.6 Divergence of Tensor Functions . . . . . . .
1.5.7 Laplacian of Scalar Functions . . . . . . . .
1.5.8 Laplacian of Vector Functions . . . . . . .
1.5.9 Material/Substantial/Lagrangian Derivative
1.5.10 Complex Lamellar and Beltrami Flows . . .
1.6 Del Operator . . . . . . . . . . . . . . . . . . . . .
1.7 Vector Identities . . . . . . . . . . . . . . . . . . .
1.8 Eigenvalues and Eigenvectors . . . . . . . . . . . .
1.9 Similar Matrices . . . . . . . . . . . . . . . . . . .
1.10 Divergence Theorem . . . . . . . . . . . . . . . . .
1.11 Conservation Laws . . . . . . . . . . . . . . . . . .
1.12 Conservation Laws in Generalized Coordinates . . .
1.13 Classication of Systems of Dierential Equations .
1.13.1 General System of Equations . . . . . . . .
1.13.2 One-Dimensional Equations . . . . . . . . .
1.13.3 Two-Dimensional Steady Equations . . . . .
1.14 Classication of Scalar Dierential Equations . . .
1.15 Rotational Invariance . . . . . . . . . . . . . . . .
1.16 Plane Waves of Hyperbolic Equations . . . . . . .
1.17 Rankine-Hugoniot Relation . . . . . . . . . . . . .
1.18 Linearly Degenerate and Genuinely Nonlinear Fields
v

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
1
2
2
2
2
2
3
3
4
4
4
5
5
5
5
6
7
7
8
9
10
10
11
12
12
13
13
14
15
15
16
17
17
19
20
21
22
23
24
25

vi
2 Model Equations
2.1 Linear Advection . . . . . . . . . . . . . . . . .
2.2 Circular Advection . . . . . . . . . . . . . . . .
2.3 Diusion Equation . . . . . . . . . . . . . . . .
2.4 Advection-Diusion Equation . . . . . . . . . .
2.5 Advection-Reaction Equation . . . . . . . . . .
2.6 Poisson/Laplace Equations . . . . . . . . . . .
2.7 Cauchy-Riemann Equations . . . . . . . . . . .
2.7.1 Velocity Components . . . . . . . . . .
2.7.2 Stream Function and Velocity Potential
2.7.3 Time-Dependent System . . . . . . . .
2.8 Relaxation Model . . . . . . . . . . . . . . . .
2.9 Burgers Equation . . . . . . . . . . . . . . . .
2.10 Trac Equations . . . . . . . . . . . . . . . .
2.11 Viscous Burgers Equations . . . . . . . . . . .

CONTENTS

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

27
27
28
29
29
31
31
32
32
32
33
34
34
35
36

3 Euler Equations
3.1 Thermodynamic Relations . . . . . . . . . . . . . . . . .
3.2 Speed of Sound . . . . . . . . . . . . . . . . . . . . . .
3.3 Euler Equations . . . . . . . . . . . . . . . . . . . . . .
3.4 1D Euler Equations . . . . . . . . . . . . . . . . . . . .
3.4.1 Conservative Form . . . . . . . . . . . . . . . . .
3.4.2 Primitive Form . . . . . . . . . . . . . . . . . .
3.4.3 Characteristic Variables . . . . . . . . . . . . . .
3.4.4 Parameter Vector . . . . . . . . . . . . . . . . .
3.5 2D Euler Equations . . . . . . . . . . . . . . . . . . . .
3.5.1 Conservative Form . . . . . . . . . . . . . . . . .
3.5.2 Primitive Form . . . . . . . . . . . . . . . . . .
3.5.3 Symmetric Form . . . . . . . . . . . . . . . . . .
3.5.4 Parameter Vector . . . . . . . . . . . . . . . . .
3.6 3D Euler Equations . . . . . . . . . . . . . . . . . . . .
3.6.1 Conservative Form . . . . . . . . . . . . . . . . .
3.6.2 Primitive Form . . . . . . . . . . . . . . . . . .
3.6.3 Symmetric Form . . . . . . . . . . . . . . . . . .
3.6.4 Parameter Vector . . . . . . . . . . . . . . . . .
3.7 Rotational Invariance . . . . . . . . . . . . . . . . . . .
3.8 Convenient Ordering . . . . . . . . . . . . . . . . . . . .
3.9 Homogeneity Property of the Euler Fluxes . . . . . . . .
3.10 Nondimensionalization . . . . . . . . . . . . . . . . . . .
3.10.1 Nondimensionalized Euler Equations . . . . . . .
3.10.2 Free Stream Values . . . . . . . . . . . . . . . .
3.10.3 Speed of Sound . . . . . . . . . . . . . . . . . .
3.10.4 Stagnation Values . . . . . . . . . . . . . . . . .
3.11 Change of Variables . . . . . . . . . . . . . . . . . . . .
3.11.1 One Dimension . . . . . . . . . . . . . . . . . .
3.11.2 Two Dimensions . . . . . . . . . . . . . . . . .
3.11.3 Three Dimensions . . . . . . . . . . . . . . . . .
3.12 Incompressible/Pseudo-Compressible Euler Equations . .
3.13 Homentropic/Isothermal Euler Equations . . . . . . . .
3.13.1 1D Homentropic/Isothermal Euler Equations . .
3.13.2 2D Homentropic/Isothermal Euler Equations . .
3.13.3 3D Homentropic/Isothermal Euler Equations . .
3.14 Linear Acoustics Equations (Linearized Euler Equations)
3.14.1 1D Linear Acoustics Equations . . . . . . . . . .
3.14.2 2D Linear Acoustics Equations . . . . . . . . . .
3.14.3 3D Linear Acoustics Equations . . . . . . . . . .
3.15 Quasi-1D Euler Equations . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

37
37
40
41
42
42
43
44
46
46
46
48
49
52
54
54
58
59
63
65
66
67
68
68
69
69
69
70
70
71
72
73
76
76
77
78
79
79
80
81
82

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

CONTENTS
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23

vii

2D Steady Euler Equations . . . . . . . . . . . . . . .


Bernoullis Equation . . . . . . . . . . . . . . . . . . .
Gas Dynamics Equation (Nonlinear Potential Equation)
Linear Potential Equation . . . . . . . . . . . . . . . .
Small Perturbation Equations . . . . . . . . . . . . . .
Croccos Equation . . . . . . . . . . . . . . . . . . . .
Kelvins Circulation Theorem . . . . . . . . . . . . . .
Shallow-Water (or Saint Venant) Equations . . . . . .
3.23.1 1D Shallow-Water Equations . . . . . . . . . .
3.23.2 2D Shallow-Water Equations . . . . . . . . . .
3.23.3 3D Shallow-Water Equations . . . . . . . . . .

4 Navier-Stokes Equations
4.1 Navier-Stokes Equations . . . . . . . . . . . . . . . .
4.2 Viscous Stress and Heat Fluxes . . . . . . . . . . . .
4.3 Viscosity and Heat Conductivity . . . . . . . . . . .
4.4 Other Energy Equations . . . . . . . . . . . . . . . .
4.5 1D Navier-Stokes Equations . . . . . . . . . . . . . .
4.6 2D Navier-Stokes Equations . . . . . . . . . . . . . .
4.7 3D Navier-Stokes Equations . . . . . . . . . . . . . .
4.8 Nondimensionalization . . . . . . . . . . . . . . . . .
4.8.1 Nondimensionalized Navier-Stokes Equations
4.8.2 Free Stream Values . . . . . . . . . . . . . .
4.8.3 Speed of Sound . . . . . . . . . . . . . . . .
4.8.4 Stagnation Values . . . . . . . . . . . . . . .
4.9 Reduced Navier-Stokes Equations . . . . . . . . . . .
4.10 Quasi-Linear Form of the Navier-Stokes Equations . .
4.10.1 1D Quasi-Linear Navier-Stokes Equations . .
4.10.2 2D Quasi-Linear Navier-Stokes Equations . .
4.10.3 3D Quasi-Linear Navier-Stokes Equations . .
4.11 Incompressible Navier-Stokes Equations . . . . . . .
4.12 2D Incompressible Navier-Stokes Equations . . . . .
4.13 3D Incompressible Navier-Stokes Equations . . . . .
4.14 Pseudo-Compressible Navier-Stokes Equations . . . .
4.15 Vorticity Transport Equation and Stream Function .
4.16 Vorticity Transport Equation and Vector Potential . .
4.17 Stokes Equations . . . . . . . . . . . . . . . . . . .
4.18 2D Stokes Equations . . . . . . . . . . . . . . . . .
4.19 3D Stokes Equations . . . . . . . . . . . . . . . . .
4.20 Boundary Layer Equations . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

82
84
86
87
88
89
90
91
92
92
93

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

95
95
96
96
97
98
99
100
101
101
102
103
103
104
104
105
107
108
111
112
113
114
115
116
117
118
118
119

.
.
.
.
.
.
.
.
.

121
121
121
122
123
124
125
126
126
127

5 Turbulence Equations
5.1 Averages and Filters . . . . . . . . . . . . . . . . . . . . .
5.1.1 Reynolds Averaging . . . . . . . . . . . . . . . . .
5.1.2 Favre Averaging . . . . . . . . . . . . . . . . . . .
5.1.3 Spatial Filter . . . . . . . . . . . . . . . . . . . . .
5.2 Reynolds-Averaged Incompressible Navier-Stokes Equations
5.3 Favre-Averaged Compressible Navier-Stokes Equations . .
5.4 Filtered Incompressible Navier-Stokes Equations . . . . . .
5.5 Filtered Compressible Navier-Stokes Equations . . . . . . .
5.6 Turbulence Models . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

viii

CONTENTS

6 Exact Solutions I
6.1 Exact Solutions with Separation of Variables . . . . . . . . . . . . .
6.1.1 Laplace Equation . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 Diusion Equation . . . . . . . . . . . . . . . . . . . . . . .
6.1.3 Advection-Diusion Equation . . . . . . . . . . . . . . . . .
6.1.4 Oscillating Solutions with Complex Variables . . . . . . . . .
6.2 Exact Solutions with Complex Variables . . . . . . . . . . . . . . .
6.3 Superposition for Nonlinear Equations . . . . . . . . . . . . . . . .
6.4 Exact Solutions with Transformations . . . . . . . . . . . . . . . .
6.4.1 Cole-Hopf Transformations . . . . . . . . . . . . . . . . . .
6.4.2 Hodograph Transformation . . . . . . . . . . . . . . . . . .
6.5 Exact Solutions for Linear Systems of Conservation Laws . . . . . .
6.6 Simple Wave Solutions for Nonlinear Systems of Conservation Laws
6.7 Some Exact Simple Wave Solutions . . . . . . . . . . . . . . . . .
6.7.1 Case 1: rj = constant . . . . . . . . . . . . . . . . . . . .
6.7.2 Case 2: rj U . . . . . . . . . . . . . . . . . . . . . . . .
6.7.3 Case 3: Other cases . . . . . . . . . . . . . . . . . . . . . .
6.8 Manufactured Solutions . . . . . . . . . . . . . . . . . . . . . . . .
6.9 Fine Grid Solutions . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

129
129
129
130
131
132
133
134
136
136
139
140
141
142
142
143
144
146
147

7 Exact Solutions II
7.1 Linear Advection . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1 1D Linear Advection . . . . . . . . . . . . . . . . . . . . .
7.1.2 2D Linear Advection . . . . . . . . . . . . . . . . . . . . .
7.1.3 2D Circular Advection . . . . . . . . . . . . . . . . . . . .
7.1.4 3D Circular (Helicoidal) Advection . . . . . . . . . . . . .
7.2 Diusion Equation . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 1D Diusion Equation . . . . . . . . . . . . . . . . . . . .
7.2.2 2D Diusion Equation . . . . . . . . . . . . . . . . . . . .
7.2.3 3D Diusion Equation . . . . . . . . . . . . . . . . . . . .
7.3 Advection-Diusion Equation . . . . . . . . . . . . . . . . . . . .
7.3.1 1D Advection-Diusion Equation . . . . . . . . . . . . . .
7.3.2 2D Advection-Diusion Equation . . . . . . . . . . . . . .
7.4 Advection-Reaction Equation(3D) . . . . . . . . . . . . . . . . .
7.5 Spherical Advection Equation (3D) . . . . . . . . . . . . . . . . .
7.6 Burgers Equation . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.1 1D Burgers Equation . . . . . . . . . . . . . . . . . . . .
7.6.2 1D Burgers Equation: Riemann Problems . . . . . . . . .
7.6.3 2D Burgers Equation . . . . . . . . . . . . . . . . . . . .
7.7 Viscous Burgers Equation . . . . . . . . . . . . . . . . . . . . . .
7.7.1 1D Viscous Burgers Equation . . . . . . . . . . . . . . . .
7.7.2 1D Viscous Burgers Equation with Source Terms . . . . .
7.7.3 2D Viscous Burgers Equations . . . . . . . . . . . . . . .
7.8 Laplace Equation . . . . . . . . . . . . . . . . . . . . . . . . . .
7.8.1 2D Laplace Equation . . . . . . . . . . . . . . . . . . . .
7.8.2 3D Laplace Equation . . . . . . . . . . . . . . . . . . . .
7.9 Poisson Equations . . . . . . . . . . . . . . . . . . . . . . . . . .
7.9.1 2D Poisson Equations . . . . . . . . . . . . . . . . . . . .
7.9.2 3D Poisson Equations . . . . . . . . . . . . . . . . . . . .
7.10 Incompressible Inviscid Flows: Laplace/Cauchy-Riemann equations
7.10.1 Cavity Flow . . . . . . . . . . . . . . . . . . . . . . . . .
7.10.2 Flow over a Circular Cylinder . . . . . . . . . . . . . . . .
7.10.3 Flow over an Elliptic Cylinder . . . . . . . . . . . . . . . .
7.10.4 Flow over an Airfoil . . . . . . . . . . . . . . . . . . . . .
7.10.5 Flow over Airfoils . . . . . . . . . . . . . . . . . . . . . .
7.10.6 Flow over a Sphere (3D) . . . . . . . . . . . . . . . . . .
7.10.7 Fraenkels Flow: Constant Vorticity Flow over a Cylinder .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

149
149
149
150
151
152
153
153
153
154
154
154
155
157
158
158
158
161
162
163
163
164
165
166
166
166
167
167
167
168
168
169
171
173
177
177
178

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

CONTENTS
7.11 Euler Equations . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.1 One-Dimensional Simple Acoustic Waves . . . . . . . . .
7.11.2 Entropy Waves . . . . . . . . . . . . . . . . . . . . . .
7.11.3 Two-Dimensional Unsteady Isentropic Vortex Convection
7.11.4 Linearized Potential Equations . . . . . . . . . . . . . .
7.11.5 Nozzle Flows . . . . . . . . . . . . . . . . . . . . . . . .
7.11.6 Ringlebs Flow . . . . . . . . . . . . . . . . . . . . . . .
7.11.7 Supersonic Flow over a Cylinder (Stagnation Pressure) .
7.11.8 Normal/Oblique Shock Waves . . . . . . . . . . . . . .
7.12 Riemann Problems for the Euler Equations . . . . . . . . . . . .
7.12.1 Basic Equations . . . . . . . . . . . . . . . . . . . . . .
7.12.2 Construction of a Riemann Problem . . . . . . . . . . .
7.12.3 Exact Riemann Solver . . . . . . . . . . . . . . . . . . .
7.13 Incompressible Navier-Stokes Equations . . . . . . . . . . . . .
7.13.1 Smooth 2D Time-Dependent Solution . . . . . . . . . .
7.13.2 Smooth 3D Time-Dependent Solution . . . . . . . . . .
7.13.3 Couette Flow . . . . . . . . . . . . . . . . . . . . . . .
7.13.4 Unsteady Couette Flow . . . . . . . . . . . . . . . . . .
7.13.5 Couette-Poiseuille Flow . . . . . . . . . . . . . . . . . .
7.13.6 Hagen-Poiseuille Flow . . . . . . . . . . . . . . . . . . .
7.13.7 Axially Moving Co-centric Cylinders . . . . . . . . . . .
7.13.8 Rotating Co-centric Cylinders . . . . . . . . . . . . . . .
7.13.9 Flat Plate Boundary Layer . . . . . . . . . . . . . . . .
7.13.10 Stokes Flow over a Sphere . . . . . . . . . . . . . . . .
7.14 Compressible Navier-Stokes Equations . . . . . . . . . . . . . .
7.14.1 Compressible Couette Flow . . . . . . . . . . . . . . . .
7.14.2 Manufactured Solutions . . . . . . . . . . . . . . . . . .
References

ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

180
180
180
181
181
184
188
192
192
194
194
195
197
204
204
205
205
206
206
207
207
208
209
211
212
212
215
215

Preface
CFD: Computational Fluid Dynamics.
I like CFD. I like it so much that I decided to write how much I like CFD. Here, in this volume, I focus on basic
notations and formulas, governing equations, and exact solutions used in CFD. I hope that you like them too.
Basics:
Some basic stu such as notations, formulas, and theorems.
Model Equations:
Model equations commonly used in the algorithm development.
Euler Equations:
The Euler equations and related equations for inviscid ows.
Navier-Stokes Equations:
The Navier-Stokes equations and related equations for viscous ows.
Turbulence Equations:
Averaged Navier-Stokes equations and a little about turbulence models.
Exact Solutions I:
General solutions and techniques for deriving exact solutions.
Exact Solutions II:
Exact solutions for selected equations which can be used for accuracy study.
Naturally, the content is highly biased. This is everything about what I like in CFD. It does not contain any topics
that I dont like. So, this is certainly not a textbook, but can still be a good reference book. In particular, this volume
may be useful for students studying basics of CFD and researchers developing fundamental CFD algorithms (I hope
that they like CFD too).
Katate Masatsuka
Yorktown, February 2009

xi

Chapter 1

Basics

1.1

Differential Notations

The following notations for derivatives are widely used:


First derivatives:
u
= x u = ux .
x

(1.1.1)

2u
= xx u = uxx .
x2

(1.1.2)

Second derivatives:

n-th derivative:
nu
= xx u = uxx .
|{z}
|{z}
xn
n
n

(1.1.3)

It is nice to have more than one way to express the same thing. In particular, I like the subscript notation such as
ux because it is very easy to write and also takes much less vertical space than others. Of course, it will be very
inconvenient for very high-order derivatives (because the expression will be too long), but such high-order derivatives
do not usually arise in CFD books.
Material/Substantial/Lagrangian derivative:
D

=
+u
+v
+w .
Dt
t
x
y
z

(1.1.4)

I like this derivative. It is very interesting. It represents the time rate of change of the quantity when it is being
convected in a ow with the velocity (u, v, w). So, when this derivative is zero, D/Dt = 0, the distribution (e.g., a
contour plot) of (x, y, z) in space moves with the velocity (u, v, w), preserving its initial shape. On the other hand,
when the time derivative is zero, t = 0, the distribution of (x, y, z) does not move and stays xed in space for all
times.

1.2
1.2.1

CHAPTER 1. BASICS

Vectors and Operators


Vectors and Tensors

Vectors and tensors are usually denoted by boldface letters, rather than by arrows put on top of them. Its simple and
very eective. I like it. By the way, in this book, the vector is almost always a column vector and a row vector is
expressed as a transpose of a column vector indicated by the superscript t.

a1
b1
a = a2 , b = b2 , at = [a1 , a2 , a3 ], bt = [b1 , b2 , b3 ].
(1.2.1)
a3
b3

Examples of the second-rank tensors:

A11
A = A21
A31

A13
A23 ,
A33

A12
A22
A32

A11
At = A12
A13

A21
A22
A23

A31
A32 ,
A33

(1.2.2)

where At is a transpose of A that is dened as a matrix with rows and columns interchanged.

1.2.2

Dot/Inner Product

The dot/inner product yields a scalar quantity by combining a pair of vectors,


= at b = a1 b1 + a2 b2 + a3 b3 ,
= a a = at a,

ab
a2

(1.2.3)
(1.2.4)

or a pair of tensors,
AB =

Aij Bij ,

(1.2.5)

all i,j

= A11 B11 + A12 B12 + A13 B13 + A21 B21 + A22 B22
+A23 B23 + A31 B31 + A32 B32 + A33 B33 .

(1.2.6)

Hence, in any case, it produces a single real number from vectors/tensors no matter how many components they have.
This is very nice.

1.2.3

Vector/Outer Product

The vector/outer product produces a vector:



e1


a b = a1

b1

e2
a2
b2

e3
a2 b3 a3 b2

a3 = a3 b1 a1 b3 ,

a1 b2 a2 b1
b3

(1.2.7)

where e1 , e2 , e3 are the unit vectors, i.e., a = a1 e1 + a2 e2 + a3 e3 and b = b1 e1 + b2 e2 + b3 e3 . I like the fact
that a b and b a result in two dierent vectors, pointing opposite directions with the same magnitude. It is very
geometrical and easy to visualize.

1.2.4

Dyadic Tensor

The dyadic tensor, denoted by , is a second-rank tensor made out of

a1
a1 b1
ab = abt = a2 [b1 , b2 , b3 ] = a2 b1
a3
a3 b1

two vectors: e.g.,

a1 b2 a1 b3
a2 b2 a2 b3 ,
a3 b2 a3 b3

(1.2.8)

1.3. ORTHOGONAL VECTORS

3
n

Figure 1.2.1: Three mutually orthogonal vectors.

so, the ij component is given by


(ab)ij = ai bj .

(1.2.9)

ab 6= ba.

(1.2.10)

Of course, we have in general,

Unlike the vector product, the geometrical meaning of this is not immediately clear. But I like it. It is simple enough.

1.2.5

Identity Matrix

This is a matrix whose diagonal entries are all 1 and other


given by

1 0
I= 0 1
0 0

entries are zero. For example, the 3 3 identity matrix is

0
0 .
1

(1.2.11)

Note that the n n identity matrix has n2 n zeroes. This means that the number of zeroes increases quadratically
with n. Of course, I like the identity matrix. In particular, I like its alternative notation which is very compact. For
example, the 3 3 identity matrix above is denoted by
I = diag(1, 1, 1).

(1.2.12)

This is very useful when we write the identity matrix of a very large size.

1.3

Orthogonal Vectors

Consider three orthogonal unit vectors, n, , m (see Figure 1.2.1):


nn

nn + + mm

n =
n =

= m m = 1,

m = m n = 0,
m,

I.

(1.3.1)
(1.3.2)
(1.3.3)
(1.3.4)

CHAPTER 1. BASICS

Introduce an arbitrary vector v, and dene the following quantities,


qn = v n,

q = v ,

qm = v m,

(1.3.5)

then we have
qn n + q + qm m
2
qn2 + q2 + qm

= v,

(1.3.6)

= v2 .

(1.3.7)

Suppose that n = [nx , ny , nz ]t , = [x , y , z ]t , m = [mx , my , mz ]t , v = [u, v, w]t , then (1.3.6) are expanded as
follows:
qn nx + q x + qm mx

u,

(1.3.8)

qn ny + q y + qm my

v,

(1.3.9)

qn nz + q z + qm mz

w,

(1.3.10)

= u du + v dv + w dw,

(1.3.11)

and (1.3.7) can be dierentiated as follows:


qn dqn + q dq + qm dqm
and (1.3.4) can be expanded as follows:
n2x + 2x + m2x

1,

(1.3.12)

n2y + 2y + m2y

1,

(1.3.13)

n2z + 2z + m2z

1,

(1.3.14)

nx ny + x y + mx my

0,

(1.3.15)

nx nz + x z + mx mz

0,

(1.3.16)

ny nz + y z + my mz

0.

(1.3.17)

I like these relations because they can be very useful when I write a three-dimensional CFD code with v as a velocity
vector, and n, , m as a normal vector of a cell face and two tangent vectors respectively. In particular, these relations
can be used to eliminate tangent vectors from expressions such as the absolute value of a Jacobian matrix projected
along a normal vector which arises, for example, in the Roe solver [84]. See Subsection 3.6.1.

1.4
1.4.1

Index Notations
Einsteins Summation Convention

Einsteins summation convention means that whenever two indices are repeated, summation is taken over that index:
for example,
Aij Bki = A1j Bk1 + A2j Bk2 + A3j Bk3 .

(1.4.1)

I like it because I can avoid writing for summations, thus saving my time and money.

1.4.2

Kroneckers Delta

Of course, I like the second-rank tensor called Kroneckers delta:



1
if i = j,
ij =
0
if i 6= j.
This is nothing but the components of the identity matrix.

(1.4.2)

1.5. DIV, GRAD, CURL

1.4.3

Eddingtons Epsilon

The third-rank tensor called Eddingtons epsilon:

if any two of i, j, k are the same,


0
1
for even permutation,
ijk =

1
for odd permutation,

(1.4.3)

reminds me of the Rubik cube that I like.

1.4.4

Some Related Formulas

I think that I like memorizing formulas such as


ii

=
=

ij ijk

3,
0,

(1.4.4)
(1.4.5)

detA = ijk A1i A2j A3k ,


imn jmn = 2ij ,
ijk ijk = 6,
ijk klm

= il jm im jl .

(1.4.6)
(1.4.7)
(1.4.8)
(1.4.9)

How about you?

1.5
1.5.1

Div, Grad, Curl


Coordinate Systems

I like vector dierential operators, especially in Cartesian coordinates (x, y, z). In cylindrical (r, , z) or spherical
coordinates (r, , ) (see Figures 1.5.1 and 1.5.2), I dont like them so much because they can be quite complicated.
Note that these coordinates are related: in the cylindrical coordinates,
x = r cos ,
y = r sin ,

(1.5.1)
(1.5.2)

z = z,

(1.5.3)

while in the spherical coordinates,


x = (r sin ) cos ,
y = (r sin ) sin ,
z = r cos .

(1.5.4)
(1.5.5)
(1.5.6)

Now, denote the unit vectors for these coordinates by


ex , ey , ez ,
er , e , ez ,

in Cartesian coordinates,
in cylindrical coordinates,

(1.5.7)
(1.5.8)

er , e , e ,

in spherical coordinates,

(1.5.9)

and vector components as in


a = a1 ex + a2 ey + a3 ez ,

in Cartesian coordinates,

(1.5.10)

a = ar er + a e + az ez ,
a = ar er + a e + a e ,

in cylindrical coordinates,
in spherical coordinates,

(1.5.11)
(1.5.12)

then we can write vector dierential operators as follows.

CHAPTER 1. BASICS

z
z

(r, , z)

O
y

Figure 1.5.1: Cylindrical coordinates.

1.5.2

Gradient of Scalar Functions

The gradient of a scalar function (x, y, z) is dened by


1
grad = lim
V 0 V

n dS,

(1.5.13)

or simply by
d = grad dx,

(1.5.14)

where
dx = dx ex + dy ey + dz ez ,

in Cartesian coordinates,

(1.5.15)

dx = dr er + rd e + dz ez ,
dx = dr er + r sin d e + r d e ,

in cylindrical coordinates,
in spherical coordinates.

(1.5.16)
(1.5.17)

The gradient in all three coordinate systems:


grad =

ex +
ey +
ez ,
x
y
z

in Cartesian coordinates,

(1.5.18)

grad =

er +
e +
ez ,
r
r
z

in cylindrical coordinates,

(1.5.19)

grad =

1
1
er +
e +
e ,
r
r sin
r

in spherical coordinates.

(1.5.20)

These are relatively intuitive and easy to understand. I like them. By the way, if you want to derive these formulas (and
all formulas hereafter), simply apply the denition (1.5.13) to a small volume element, e.g., a small cube in Cartesian
coordinates, or simply expand the dierential denition (1.5.14).

1.5. DIV, GRAD, CURL

z
z

(r, , )

r
O
y

Figure 1.5.2: Spherical coordinates.

1.5.3

Divergence of Vector Functions

The divergence of a vector function a(x, y, z) is dened by


1
V 0 V

div a = lim

a n dS,

(1.5.21)

and yields

1.5.4

div a =

a2
a3
a1
+
+
x
y
z

in Cartesian coordinates,

(1.5.22)

div a =

1 (rar ) 1 a
az
+
+
r r
r
z

in cylindrical coordinates,

(1.5.23)

div a =

1 (r2 ar )
1 a
1 (a sin )
+
+
2
r
r
r sin
r sin

in spherical coordinates.

(1.5.24)

Curl of Vector Functions

The curl of a vector function a(x, y, z) is dened by


1
V 0 V

curl a = lim

a n dS,

(1.5.25)

CHAPTER 1. BASICS

and yields





curl a =


ex

ey

x
a1

y
a2





1
curl a =
r

or

er


ez



z

az

r
ar

ra

er

re

r
ar

ra






1

curl a = 2
r sin


curl a =

1
curl a =
r



+r

1.5.5

1
r


r sin e



sin a
ex +

(ra )
az



ey +

az
ar

z
r

a1
a3

z
x

er + r

(ra sin ) (ra )

ar
(ra sin )

1
r sin
+

re

a2
a3

y
z

1
curl a = 2
r sin


ez



z

a3

(a sin ) a

1 ar
(ra )

sin
r

in Cartesian coordinates,

(1.5.26)

in cylindrical coordinates,

(1.5.27)

in spherical coordinates,

(1.5.28)

a2
a1

x
y

e +

er + r sin

ez ,

(1.5.29)

(ra ) ar

(ra ) ar

ez ,

(1.5.30)

(1.5.31)

er +

1
r

(ra ) ar

e .

(1.5.32)

Gradient of Vector Functions

The gradient of a vector function a(x, y, z) is dened, as in the scalar case, by


I
1
grad a = lim
an dS,
V 0 V

(1.5.33)

or simply by
da = (grad a) dx.

(1.5.34)

In Cartesian coordinates:

grad a =

a1
x
a2
x
a3
x

a1
y
a2
y
a3
y

a1
z
a2
z
a3
z

(1.5.35)

1.5. DIV, GRAD, CURL

In cylindrical coordinates:

In spherical coordinates:

a
r
r

a
grad a =
r

az
r

ar
r

a
grad a =
r

a
r

a
1 ar

r
r
1 a
ar
+
r
r
1 az
r

1 ar
a

r
r
1 a
ar
a
+
+
r
r
r tan
a
1 a

r
r tan

ar
z

a
.
z

az
z

(1.5.36)

1 ar
a

r sin
r

1 a
.

r sin

ar
1 a
+
r sin
r

(1.5.37)

Basically I like the gradient of a vector, but not so much in cylindrical and spherical coordinates because additional
terms make it look a bit more complicated. Note that the reason that formulas are complicated in cylindrical and
spherical coordinates is that some derivatives of the unit vectors with respect to the independent variables are non-zero:
in cylindrical coordinates,
er
= e ,

e
= er ,

(1.5.38)

and in spherical coordinates,


er
= sin e ,

e
= cos e sin er ,

e
= cos e ,

er
= e ,

e
= er .

(1.5.39)

The divergence of a tensor will also be complicated and the Laplacian of a vector will be very very complicated in these
coordinates as we will see below.

1.5.6

Divergence of Tensor Functions

The divergence of a tensor function A(x, y, z) is dened, in the same way as in the scalar case, by
I
1
An dS.
div A = lim
V 0 V
In Cartesian coordinates:

In cylindrical coordinates:

A12
A13
A11
x + y + z

A21
A22
A23
div A =
x + y + z

A31
A32
A33
+
+
x
y
z

Arr
A = Ar
Azr

Ar
A
Az

(1.5.40)

Arz
Az ,
Azz

Arz
A
1 (rArr ) 1 Ar
+
+

r r
r
z
r

1 (rAr ) 1 A
Az
Ar
div A =
+
+
+
r r
r

z
r

1 (rA ) 1 A
Azz
zr
z
+
+
r r
r
z

(1.5.41)

(1.5.42)

(1.5.43)

10

CHAPTER 1. BASICS
In spherical coordinates:

Arr
A = Ar
Ar

Ar
A
A

Ar
A ,
A

(1.5.44)

1 (r2 Arr )
1 Ar
1 (Ar sin ) A
A
+
+

r2
r
r sin
r sin

r
r

1 (r2 Ar )
1 A
1 (A sin ) Ar
A
div A =
+
+
+
+
r2
r
r sin
r sin

r
r tan

1 (r2 A )
1 A
1 (A sin )
A
Ar
r
+
+
+
+
2
r
r
r sin
r sin

r tan
r

1.5.7

(1.5.45)

Laplacian of Scalar Functions

The Laplacian of a scalar function (x, y, z) is dened as the divergence of the gradient:
div grad =

2 2 2
+
+
,
x2
y 2
z 2

div grad =

1
r r

(1.5.46)




1 2 2
r
+ 2 2 +
,
r
r
z 2

1
div grad = 2
r r

(1.5.47)





1

1
2
2
r
+ 2 2
sin
,
+ 2
r
r sin

r sin 2

(1.5.48)

in Cartesian, cylindrical, and spherical coordinates respectively. Incidentally, the Laplacian operator is often denoted
by :
= div grad .

(1.5.49)

This is very simple and economical. I like it.

1.5.8

Laplacian of Vector Functions

The Laplacian of a vector function is dened as the divergence of the gradient just like in the scalar case. But it is
much more complicated than the scalar case in cylindrical and spherical coordinates.
In Cartesian coordinates:

2
2 a1
2 a1
a1
+
+
x2
y 2
z 2

2
2
2
a2
a2
a2
.

div grad a =
(1.5.50)
+
+
y 2
z 2

x2

2a
2 a3
2 a3
3
+
+
x2
y 2
z 2
In cylindrical coordinates:

div grad a =

2 a
ar
2
r
r
a
2 ar
2
div grad a + 2
r
r
div grad az
div grad ar

where the Laplacian for each scalar component is given by (1.5.47).

(1.5.51)

1.5. DIV, GRAD, CURL

11

In spherical coordinates:

div grad a =

2ar
a
2 a
2a
2

r2
r2
r2 tan r2 sin

a
a
2
2 ar
,
2 2 2
div grad a + 2

r
r sin r sin

a
2
ar
2 cos a
div grad a 2 2 + 2 2
+ 2 2
r sin r sin
r sin
div grad ar

(1.5.52)

where the Laplacian for each scalar component is given by (1.5.48).

1.5.9

Material/Substantial/Lagrangian Derivative

The material derivative of a scalar function: in Cartesian coordinates,

d
d
d
d
D
=
+ (grad ) v =
+u
+v
+w ,
Dt
t
dt
dx
dy
dz

(1.5.53)

in cylindrical coordinates with the velocity (vr , v , vz ),

d
v

D
=
+ (grad ) v =
+ vr
+
+ vz
,
Dt
t
dt
r
r
z

(1.5.54)

and in spherical coordinates with the velocity (vr , v , v ),


D

d
v v
=
+ (grad ) v =
+ vr
+
+
.
Dt
t
dt
r
r sin
r
The material derivative of a vector function a(x, y, z) is more complicated. In Cartesian coordinates,

Da1
Dt

a
Da
Da2
=
+ (grad a)v =
,
Dt
Dt
t

Da

(1.5.55)

(1.5.56)

Dt

in cylindrical coordinates,

a
Da

=
+ (grad a)v =

Dt
t

v2
Dar

Dt
r
vr v
Da
+
Dt
r
Daz
Dt

(1.5.57)

where the material derivative for each scalar component is given by (1.5.54), and in spherical coordinates,

a
Da

=
+ (grad a)v =

Dt
t

v2 + v2
Dar

Dt
r
vr v + v v cot
Da
+
Dt
r
vr v v2 cot
Da
+
Dt
r

where the material derivative for each scalar component is given by (1.5.55).

(1.5.58)

12

1.5.10

CHAPTER 1. BASICS

Complex Lamellar and Beltrami Flows

A vector eld dened by a(x, y, z) which satises


a (curl a) = 0,

(1.5.59)

is called a complex lamellar eld. If a is a uid velocity, this corresponds to a ow where the velocity and the vorticity
(the curl of the velocity) are orthogonal to each other. It is then called a complex lamellar ow. I like it because it
sounds like a ow over a lifting wing section. On the other hand, a vector eld that satises
a (curl a) = 0,

(1.5.60)

is called a Beltrami eld. If a is a velocity, this corresponds to a ow where the velocity and vorticity are parallel to
each other. This is called a Beltrami ow. I like this one also. It reminds me of trailing vortices of an aircraft.

Consult other books such as [48] to nd out more details on the vector dierential operators.

1.6

Del Operator

The del operator (which is called nabla as a symbol) in Cartesian coordinates is dened by



.
,
,
=
x y z

(1.6.1)

I like the del operator. But some people dont like it because they say it doesnt carry much physical meaning while
div, grad, and curl do carry clear physical meanings. I know what they mean, though. Well, anyway, I am not going
to write a lot about the del operator here. In particular, I assume Cartesian coordinates only. Div, grad, and curl can
be expressed by using the del operator as follows:
grad

= ,

(1.6.2)

div a

= a,

(1.6.3)

curl a

= a,

(1.6.4)

grad a

= a,

(1.6.5)

div A = A.

(1.6.6)

What is nice about the del operator is that it can be treated as a vector and thus can be used as follows.
div grad

= = 2 = ,

(1.6.7)

curl(grad ) =

(1.6.8)

grad(div a) =

( a),

(1.6.9)

div(curl a) =

a,

(1.6.10)

curl(curl a) =

a,

(1.6.11)

(grad a)b

= (b ) a.

(1.6.12)

This is a great advantage of . But it must be kept in mind that it is actually an operator. That is, a b = b a, but
a 6= a.

1.7. VECTOR IDENTITIES

1.7

13

Vector Identities

Do you like to memorize the following vector identities?


div curl a
curl grad
grad ()
grad (a)
(grad a)a
a (grad a)a
(ab) grad a
grad (a b)

div (a)
div grad a
div (a b)

div(ab)
a div(bc)

div (A)
div (Ab)
curl (a)

curl (a b)
a (Ab)
a (Ab)

= 0,

(1.7.1)

= 0,
= grad + grad ,

(1.7.2)
(1.7.3)

= agrad + grad a,
aa
a curl a,
= grad
2
aa
= a grad
,
2
aa
= b grad
,
2
= (grad a)b + (grad b)a + a curl b + b curl a,

(1.7.4)

= div a + grad a,
= grad(div a) curl(curl a),
= b curl a a curl b,

= (grad a)b + a div b,


= (a b) div c + (ac) grad b,

(1.7.5)
(1.7.6)
(1.7.7)
(1.7.8)
(1.7.9)
(1.7.10)
(1.7.11)
(1.7.12)
(1.7.13)

= A grad + div A,
= (div At ) b + At grad b,
= curl a + grad a,

(1.7.14)
(1.7.15)
(1.7.16)

= (Aa) b

(1.7.19)

= a div b + (grad a)b (div a)b (grad b)a,


= A (ab),
if A is symmetric,

(1.7.17)
(1.7.18)

where and are scalar functions; a, b, and c, are vector functions; and A is a second-rank tensor function. To me,
it is more interesting to prove these identities than to memorize them. In doing so, the component notation is very
useful. For example, the (i, j)-component of div (a) can be written and expanded as
[div (a)]ij =

(aj )
xj

(1.7.20)

aj
+
aj ,
xj
xj

(1.7.21)

div (a) = div a + grad a.

(1.7.22)

=
and so, we have just proved

1.8

Eigenvalues and Eigenvectors

A scalar quantity is called an eigenvalue of A if it satises


(A I)r = 0,

(1.8.1)

for a square matrix A and a non-zero vector r. This vector r is called the right eigenvector of A associated with this
particular eigenvalue . A row vector t that satises,
t (A I) = 0,

(1.8.2)

is called the left eigenvector of A, again associated with this particular eigenvalue . I like these right and left
eigenvectors because they are not uniquely determined and any scalar multiple of an eigenvector is also an eigenvector,
i.e., still satises the above equation. So, I can scale the eigenvectors in any way I want. This is nice.

14

CHAPTER 1. BASICS
Note that there exist n eigenvalues (together with associated eigenvectors) for an n n matrix A:
1 , 2 , 3 , , n .

(1.8.3)

If these values are distinct, their associated eigenvectors are linearly independent. (But even if there are some repeated
eigenvalues, their eigenvectors may still be linearly independent.) If the eigenvectors are linearly independent, then we
can diagonalize the matrix A:
= R1 AR,

(1.8.4)

where R is the right eigenvector matrix,

R=
r1

r2

r3

rn

is a diagonal matrix with the eigenvalues of A placed along its diagonal,

1 0
0
0 0

0 2 0
0 0

0
0

0
3
,

.
.
.
.
0
.
.
0
0 4

.
..
..
..
..
..
.
.
0
.
.
0
0
0
0 n

and L = R1 is in fact the left eigenvector matrix (whose rows are the left eigenvectors),

t1

t2

.
L=
3

..

tn

(1.8.5)

(1.8.6)

(1.8.7)

Although R is not unique (since the eigenvectors cannot be uniquely dened), L is uniquely dened this way for a
given R. By the way, if the matrix A is symmetric, its eigenvalues are all real and the eigenvectors corresponding to
dierent eigenvalues are orthogonal to one another. This is nice. I like symmetric matrices.

1.9

Similar Matrices

Consider square matrices, A, B, and M of the same size. If A and B are related through M in the form:
B = M1 AM,

(1.9.1)

then A and B are said to be similar and (1.9.1) is called a similarity transformation. If A and B are similar, they have
the same eigenvalues. Moreover, their eigenvectors, say rA and rB for a particular eigenvalue, are related by
rB = M1 rA .

(1.9.2)

So, once I know the eigenvectors of A, I can nd eigenvectors of any matrices similar to A simply by using this relation.
In particular, this is very useful when we analyze conservation laws in various forms because change of variables always
results in a similarity transformation of the Jacobian matrices and so it suces to analyze just one form of the equation.
This is very nice. I like the similarity transformation.

1.10. DIVERGENCE THEOREM

1.10

15

Divergence Theorem

The divergence theorem is dened by


Z

div a dV

a n dS,

(1.10.1)

where n is the normal vector to the surface of the volume V . I like it, but sometimes I get confused because it is called
the Stokes theorem in the dierential geometry, the Green theorem in two dimensions,

I
Z 
ay
ax
(ax dy ay dx),
(1.10.2)
dxdy =
+
x
y
S
V
where the line integral on the right is taken counter-clockwise direction, or even called the Gauss theorem or the
Green-Gauss theorem. Sometimes, the following is also called the divergence theorem,
I
Z
n dS.
(1.10.3)
grad dV =
S

This is probably because each component of this can be considered as a part of the divergence theorem above. For
example, in two dimensions, we have
Z
I

dy,
(1.10.4)
dxdy =
V x
S
which is basically the rst term in (1.10.2). Incidentally, the divergence theorem may be thought of as an integration
by parts. Look at this. We obtain from (1.7.9),
Z
Z
Z
grad a dV
(1.10.5)
div (a) dV
div a dV =
V

a n dS

grad a dV.

Of course, the divergence theorem applies to second-rank tensors (denoted by A):


I
Z
An dS.
div A dV =
V

(1.10.6)

(1.10.7)

Anyway, these formulas are often used in CFD, for example, to evaluate derivatives, to reduce the order of dierential
equations (e.g., the Galerkin formulation of the Laplace equation), or to simply compute the volume of a computational
cell.

1.11

Conservation Laws

Many ow equations come in the form of conservation laws. That is, the time rate of change of a quantity within
a control volume is balanced by the net change per unit time brought by the local ow. A typical example of such
a quantity is the uid mass. To express the conservation law mathematically, consider a control volume V with the
boundary S. Let U be a vector of conservative variables (quantities which are conserved), and Fn be the ux vector
normal to the control volume boundary (mass ow per unit time). Then, we can write the conservation laws in the
form:
I
Z
d
Fn dS = 0.
(1.11.1)
U dV +
dt V
S
This is called the integral form of conservation laws. It simply states that the integral value of U changes in time only
due to the net eect of the ux across the control volume boundary. In Cartesian coordinates, the normal ux vector
can be written as
Fn = Fnx + Gny + Hnz ,

(1.11.2)

16

CHAPTER 1. BASICS

where n = (nx , ny , nz ), and F, G, H are the ux vectors in the directions of x, y, z respectively. Also, we may write
I
Z
d
F n dS = 0,
(1.11.3)
U dV +
dt V
S
where F is a second-rank ux tensor dened by F = [F, G, H]. I like this form because the surface integral can now
be written as a volume integral by the divergence theorem:
Z
Z
d
div F dV = 0,
(1.11.4)
U dV +
dt V
V
where, of course, every component of F must be dierentiable within the control volume. A nice thing about this is
that as long as the control volume is xed in space, we can write this as a single integral,

Z 
U
+ div F dV = 0,
(1.11.5)
t
V
and since this is valid for arbitrary control volumes, we can write
U
+ div F = 0.
t

(1.11.6)

This is called the dierential form of conservation laws. In Cartesian coordinates, it is written as
U F G H
+
+
+
= 0.
t
x
y
z

(1.11.7)

Well, to be honest, I prefer the integral form because the integral form allows discontinuous solutions (or weak solutions,
more generally) while the dierential form does not. The integral form is more fundamental, more general, and thus
more useful especially in developing shock-capturing methods. It is also useful even when the control volume deforms
in time, i.e., for moving mesh methods [38]. Moreover, the integral form is applicable to control volumes of any shape;
it is the basis of the nite-volume method. So, it is indeed very nice.

1.12

Conservation Laws in Generalized Coordinates

Consider the coordinate transformation:


= (x, y, z),

= (x, y, z)

= (x, y, z),

(1.12.1)

which denes a map between the physical coordinates (x, y, z) and the computational (or generalized) coordinates
(, , ). It maps a curvilinear grid in the physical space to a Cartesian grid in the computational space. Then, partial
derivatives are transformed by the chain-rule,

= x

+ x
+ x ,

(1.12.2)

= y

+ y
+ y ,

(1.12.3)

= z

+ z
+ z .

(1.12.4)

Metric coecients such as x , x , x , are given by


x

= J(y z y z ),

y = J(x z x z ),

z = J(x y x y ),

(1.12.5)

= J(y z y z ),

y = J(x z x z ),

z = J(x y x y ),

(1.12.6)

= J(y z y z ),

y = J(x z x z ),

z = J(x y x y ),

(1.12.7)

1
,
x (y z y z ) x (y z y z ) x (y z y z )

(1.12.8)

1.13. CLASSIFICATION OF SYSTEMS OF DIFFERENTIAL EQUATIONS

17

which can be readily computed once the transformation is given in the following form,
x = x(, , ),

y = y(, , ),

z = z(, , ).

(1.12.9)

For more details, see [29, 42, 103]. For example, the dierential form of the conservation law (1.11.7) can be written
as
U
F
G
H
+
+
+
= 0,
t

(1.12.10)

where
U

U
,
J

(1.12.11)

1
(Fx + Gy + Hz ) ,
J

(1.12.12)

1
(Fx + Gy + Hz ) ,
J

(1.12.13)

1
(Fx + Gy + Hz ) .
J

(1.12.14)

If F, G, H depend on the derivatives of U, these derivatives are transformed by (1.12.2), (1.12.3), and (1.12.4). I
like this form because now I can work with a regular Cartesian grid in the space (, , ), and apply the straightforward
nite-dierence formulas.

1.13

Classification of Systems of Differential Equations

1.13.1

General System of Equations

Consider the system of n quasi-linear partial dierential equations in the form,


Ut + AUx + BUy + CUz = 0,

(1.13.1)

where U is a set of n solution variables, and A, B, and C are nn square matrices. I like such a system because it
may have a plane wave solution,
U = f (x n n t) U0 ,

(1.13.2)

where f is a scalar function, n = (nx , ny , nz ) is a unit vector normal to the plane wave, n is the plane wave speed
in the direction of n, and U0 is a constant vector. In one dimension, this becomes
U = f (x t) U0 ,

(1.13.3)

and the wave travels to the left if < 0 or to the right if > 0. In the space with (x, t) coordinates, the wave
is represented by a curve dened by a local slope dx/dt = , along which f is constant. Such a curve is called a
characteristic curve, and f is called the Riemann invariant. In two dimensions, we may use the polar angle to indicate
the normal direction n = (cos , sin ), and write the solution (1.13.2) as
U = f (x cos + y sin ()t) U0 ,

(1.13.4)

where () denotes the wave speed in the direction of . Once () is known, we can determine the wave front by
constructing an envelope of plane waves. This is discussed in Section 1.16. In two dimensions, the wave may propagate
not only in a particular direction as in one dimension but also in all directions at varying speeds. In the space with
(x, y, t) coordinates, such a wave is generally represented by a surface. Such a surface is called characteristic surface,
and again f is the Riemann invariant.
In order to see if the system (1.13.1) has a plane wave solution, we substitute (1.13.2) into the system to get
(Anx + Bny + Cnz n I) U0 = 0.

(1.13.5)

18

CHAPTER 1. BASICS
t

Figure 1.13.1: Domain of dependence (lower triangle) and range of inuence (upper triangle)
of a point P , for a linear 22 hyperbolic system. They are bounded by the characteristic lines
(wave paths) of right- and left-running waves. Domain of dependence of a point P includes
the right boundary.

This means that the speed of the plane wave n corresponds to an eigenvalue of the projected Jacobian,
An = Anx + Bny + Cnz ,

(1.13.6)

and U0 is the corresponding eigenvector, and that there may be n such plane wave solutions. Therefore, if all eigenvalues
of An are real and the corresponding eigenvectors are linearly independent, there will be n independent characteristic
surfaces and n Riemann invariants, and thus a solution at a point in space can be completely determined, in principle
by solving a set of n equations of constant Riemann invariants. In this case, the system (1.13.1) is called hyperbolic
in time. Moreover, if the eigenvalues are distinct, it is called strictly hyperbolic. In that case, the eigenvectors are
automatically linearly independent. If all eigenvalues are complex, then the system is called elliptic. Of course, the
system will be mixed if it has both real and complex eigenvalues. Also, if there are less than n real eigenvalues (i.e.,
An is not full rank), then the system is said to be parabolic.
An important implication of the existence of the plane wave solution is that a solution at a point in space depends
only on the solution values in the region where the plane wave has traveled before reaching that point. Such a region
is called the domain of dependence. In one dimension, a typical 22 hyperbolic system has two plane wave solutions:
one running to the left and the other to the right. Then, the domain of dependence of a certain point is the union of
the left and right intervals where the right- and left-running waves pass through until they reach that point. This grows
in time, and will look like a triangle bounded by characteristic lines (or curves for nonlinear waves) in (x, t)-space (see
Figure 1.13.1). Note that for a scalar hyperbolic equation the domain of dependence becomes a single point, such as
the point A in Figure 1.13.1 for a right-running wave. Also, it is interesting to note that it will take a nite time for
a solution at a point P to inuence other points in the domain. Of course, it cannot propagate faster than the plane
waves (characteristics), and therefore the range of inuence (the region inuenced by the solution at P ) is bounded
by the characteristics passing through the point P (see Figure 1.13.1). Since the domain of dependence is bounded,
a hyperbolic problem can be solved for a given initial solution if the domain is innite or periodic (i.e., no boundary).
This type of problem is often called an initial-value problem. If the domain is bounded as in Figure 1.13.1, then a
part of the solution needs to be specied on the boundary because there might be a characteristic which cannot be
traced back to the initial solution (see P in Figure 1.13.1). Such a problem may be called an initial-boundary value
problem. On the other hand, there are no plane wave solutions for elliptic systems. These systems typically arise in
steady state problems, i.e., Ut = 0. Since there are no waves whatsoever, the domain of dependence must be the
entire domain. In other words, since there are no reasons that a solution at any point depends on a certain bounded
region in the domain, it must depend on the entire domain. Elliptic problems, therefore, require solution values to be
specied everywhere on the boundary. This type of problem is called a boundary-value problem. A parabolic problem
typically requires both initial and boundary values. A solution at a point P depends not only on all solutions at all
previous time, but also on the solution at the current time (see Figure 1.13.2). This is another initial-boundary value
problem.
By the way, if A, B, C can be simultaneously symmetrized, e.g., by way of change of variables, the system is
guaranteed to be hyperbolic. Of course, symmetrization is not always possible. But usually, physically meaningful
systems are symmetrizable: e.g., the system of the Euler equations is symmetrizable [7, 31]. It would be even nicer
if the whole system were diagonalizable, i.e., if A, B, C could be simultaneously diagonalized. This means that the
system is transformed into a set of independent scalar advection equations. This is nice. It is certainly possible in one
dimension with only one matrix, but it is generally very dicult to achieve in two and three dimensions.

1.13. CLASSIFICATION OF SYSTEMS OF DIFFERENTIAL EQUATIONS

19

Figure 1.13.2: Domain of dependence of a point P for a parabolic problem.

1.13.2

One-Dimensional Equations

Consider the one-dimensional hyperbolic system of the form,


Ut + AUx = 0.

(1.13.7)

This can be diagonalized by multiplying it by the left-eigenvector matrix L from the left,
LUt + LARLUx

= 0,

(1.13.8)

LUt + LUx

= 0.

(1.13.9)

For linear hyperbolic systems (i.e., A is constant, and so L is constant) we can write
(LU)t + (LU)x

= 0.

(1.13.10)

The quantity LU is the Riemann invariant or characteristic variable. I like this diagonalized system very much because
it is now a set of scalar equations. The k-th component is given by
vk
vk
+ k
= 0,
t
x

(1.13.11)

where vk is the k-th component of the Riemann invariant,


vk = tk U = (LU)k ,

(1.13.12)

which is simply convected at the speed given by the k-th eigenvalue k of A. This is very nice. A scalar advection
equation is so much easier to deal with than the system of equations. On the other hand, for nonlinear systems, the
Riemann invariant can be expressed only in the dierential form LU (dicult to integrate it analytically). Namely,
there must be some quantity (i.e., the characteristic variables) V such that LU = V, but it is dicult to nd it.
Suppose that the system (1.13.7) involves n equations for n variables. Then, note that we can write
U = RV = r1 V1 + r2 V2 + r3 V3 + + rn Vn ,

(1.13.13)

where V = [V1 , V2 , V3 , . . . , Vn ] , which means that any change in the solution U can be decomposed into the sum of the
changes in the characteristic variables and each contribution is proportional to the corresponding right eigenvector. This
means that the k-th right eigenvector indicates what variables can change due to the change in the k-th characteristic
variables (or the k-th wave): for example, one of the eigenvectors of the one-dimensional Euler equations, with the
primitive variables U = [, u, p]t , is given by
r = [1, 0, 0]t ,

(1.13.14)

which indicates that only the density can change due to this wave. Incidentally, this is called the entropy wave because
the corresponding characteristic variable is associated with the entropy. See Subsection 3.4.2.
It is also interesting to write the conservation law (1.13.7) as follows,
Ut + RLARLUx = 0,
Ut + RVx = 0,
n
X
vk
rk = 0.
k
Ut +
x
k=1

(1.13.15)
(1.13.16)
(1.13.17)

20

CHAPTER 1. BASICS

This shows how each subproblem (advection term) aects the time rate of conservative variables, and again, each
contribution is proportional to the right eigenvector. It is also very clear from this that each subproblem, i.e., (1.13.11),
is obtained simply by multiplying the system by the left eigenvector tk from the left.

1.13.3

Two-Dimensional Steady Equations

The classication discussed in Subsection 1.13.1 can be extended to steady equations. Consider the steady twodimensional system,
AUx + BUy = 0.

(1.13.18)

This admits a steady plane wave solution of the form,


U = f (xnx + yny ) U0 ,

(1.13.19)

(Anx + Bny ) U0 = 0.

(1.13.20)

provided

That is, if the generalized eigenvalue problem,


det (B A) = 0,

(1.13.21)

has a real solution = nx /ny . For a system of n equations, there will be n eigenvalues. If all n eigenvalues are real
and the corresponding eigenvectors are linearly independent, the steady system is called hyperbolic. If all are complex,
it is called elliptic. It can, of course, be mixed if there are both real and complex eigenvalues. Again, if there are less
than n real eigenvalues, the system will be parabolic.
As an example, convert the linear scalar second-order partial dierential equation,
a xx + b xy + c yy + d x + e y + f = 0,

(1.13.22)

where a, b, c, d, e, f are functions of (x, y, z), into a system of the form (1.13.18), by introducing new variables,
u = x ,

v = y ,

(1.13.23)

AUx + BUy = S,

(1.13.24)

leading to

where
U=

u
v

A=

a
0

b/2
1

B=

b/2 c
1 0

S=

du ev f
0

(1.13.25)

and the second equation (vx uy = 0) is a necessary condition that comes from the denition of the new variables
(1.13.23). Note also that we split b xy into two: 2b xy + 2b xy = 2b uy + 2b vx . Now, we have
det (B A) = 0,

(1.13.26)

i.e.,
det

b/2 a c b/2
1

(1.13.27)

or
a2 b + c = 0,

(1.13.28)

and therefore we see that the system is hyperbolic if b2 4ac > 0 (and the eigenvectors are linearly independent),
and elliptic if b2 4ac < 0. Of course, it is called parabolic if b2 4ac = 0. In this case, there exists only a single
(degenerate) characteristic, and it is not sucient to describe the solution behavior. This type of equation requires
low-order terms in S to describe the solution. For example, the parabolic equation uy = uxx is basically the heat
equation with y interpreted as time. Obviously, its character cannot be described without the rst-order term, uy .

1.14. CLASSIFICATION OF SCALAR DIFFERENTIAL EQUATIONS

21

It is interesting to note that if A1 exists, we can write the two-dimensional system (1.13.18) in the form,
Ux + A1 BUy = 0.

(1.13.29)

This looks like a one-dimensional system with x taken as time. It will really behave like a time-dependent system if
x-axis is contained entirely in the range of inuence of any point (no backward characteristics). If this is true, then, x
is called time-like and y is called space-like. The two-dimensional steady Euler system is a good example. See Section
3.16 for details.
By the way, I like adding a time-derivative term to the steady system because then the whole system can be
hyperbolic in time: a real eigenvalue indicates a wave traveling in a particular direction while a complex eigenvalue
indicates a wave traveling isotropically (all directions). Finally, it is interesting to know that the eigenvalues and
eigenvectors of the steady system can be used to decompose the system into hyperbolic and elliptic parts. See [75] for
details.

1.14

Classification of Scalar Differential Equations

Consider, again, the second-order partial dierential equation,


a xx + b xy + c yy + d x + e y + f = 0,

(1.14.1)

where a, b, c, d, e, f are functions of (x, y, z). It is really nice that we can easily identify the type of the equation,
before attempting to solve it, by
b2 4ac < 0, Elliptic,
b2 4ac = 0, Parabolic,

(1.14.2)

b2 4ac > 0, Hyperbolic,


as shown in the previous subsection. This is very important because the strategy for numerically solving the equation
can be quite dierent for dierent types. A typical elliptic equation is the Laplace equation,
uxx + uyy = 0.

(1.14.3)

This equation requires a boundary condition everywhere on the domain boundary: specify the solution (Dirichlet
condition), specify the solution derivative normal to the boundary (Neumann condition), or specify the combination of
the solution and the normal derivative (Robin condition) [103]. The solution inside the domain is smooth. In particular,
its maximum/minimum occurs only on the boundary; this is often called the maximum principle.
A typical parabolic equation is the heat equation,
uy uxx = 0,

(1.14.4)

where y-axis acts like time. See Figure 1.13.2 with t replaced by y. An initial distribution of u (temperature) along
x-axis (y = 0) will continue to diuse along x-direction as y increases. This equation requires boundary conditions
at y = 0 (initial temperature distribution specied) and along the left and right boundaries (temperature at two end
points on x-axis). The solution is again smooth. Even if an initial solution is not smooth, it will be smeared out as
time goes on. This is very nice.
A typical hyperbolic equation is the wave equation,
uxx uyy = 0,

(1.14.5)

where again y may be considered as time. This describes a solution traveling in x with time y (recall that characteristic
surfaces exist for hyperbolic systems). It requires an initial solution to be specied at y = 0, but the solution at each
(x, y) depends only on a part of the initial data. Basically, it only needs to know where it comes from in the initial
data. Also, by taking a domain to be periodic, i.e., u(xmin ) = u(xmax ), we can avoid boundary conditions, thus
leading to a pure initial-value problem. The solution does not have to be smooth and can be even discontinuous. But
such a solution is not dierentiable and will not satisfy the wave equation above. In fact, there is an integral equation
associated with the wave equation which allows discontinuous solutions. See Section 2.1 for details.
I like the fact that only the rst three terms, i.e., the second derivative terms, determine the character of the
equation; we do not need to take into account all the terms to analyze the equations. In fact, generally, many

22

CHAPTER 1. BASICS

important features of solutions of partial dierential equations depend only on the highest-order terms (called the
principal part) of the equation [117]. This is really nice. Suppose that you have a partial dierential equation in the
form (1.13.22) with an extremely complicated source term f (x, y), e.g., those involving terms like x y or 2x . Then,
just look at the three second-order terms only, a xx + b xy + c yy , and you will nd the type of your equation by
(1.14.2), which then guides you to an appropriate numerical method for solving it.

1.15

Rotational Invariance

Let T be a matrix of rotation. Then, for the conservation law,


U F G H
+
+
+
= 0,
t
x
y
z

(1.15.1)

in which we often denote F(U) to indicate that F is a function of U, if we have


Fn = nx F + ny G + nz H = T1 F(TU),

(1.15.2)

for any non-zero vector n = [nx , ny , nz ]t , then, the conservation law is said to satisfy the rotational invariance property.
For example, the Euler equations satisfy the rotational invariance property, with the rotation matrix dened by

T=

1 0
0 nx
0 x
0 mx
0 0

=T =

0
ny
y
my
0

1 0
0 nx
0 ny
0 nz
0 0

0
nz
z
mz
0

0
x
y
z
0

0
0
0
0
1

0
mx
my
mz
0

0
0
0
0
1

(1.15.3)

(1.15.4)

where n, , m are three orthogonal unit vectors. Using this property, we can nd a ux vector projected in any direction
by using F only. In particular, by setting n = [0, 1, 0]t , = [1, 0, 0]t , m = [0, 0, 1]t , we get

G=T

F(TU),

T=T

1
0
0
0
0

0
0
1
0
0

0
1
0
0
0

0
0
0
1
0

0
0
0
0
1

1
0
0
0
0

0
0
0
1
0

0
0
1
0
0

0
1
0
0
0

0
0
0
0
1

(1.15.5)

(1.15.6)

also by setting n = [0, 0, 1]t , = [0, 1, 0]t , m = [1, 0, 0]t , we get

H=T

F(TU),

T=T

I like this; it says we dont need G and H. See Section 3.7 for more details on the rotational invariance of the Euler
system.
The rotational invariance is very useful. Many people like it. For example, in a nite-volume code, some people
write just a subroutine to compute an interface ux based on F only, and then use the same subroutine to compute a
ux in the face-normal direction by rotating it by (1.15.2). It is nice and useful.

1.16. PLANE WAVES OF HYPERBOLIC EQUATIONS

23

y
F (x, y, ) = x cos + y sin () = 0

()

Figure 1.15.1: Envelope of plane waves dened by the equation of the plane wave (the tangent to the
envelope) F (x, y, ) = 0 and the equation of vanishing derivative F/ = 0.

1.16

Plane Waves of Hyperbolic Equations

The wave front of a wave in hyperbolic equations can be determined by Huygens principle, i.e., the wave front by a
point disturbance is the envelope of all plane wave fronts that pass simultaneously through that point, leading to the
formula [57]:

 


X()
cos sin
()
=
,
(1.16.1)
Y ()
sin
cos
()
where () is the plane wave speed in the direction of (0 < 2). See Figure 1.15.1. In particular, I like the
following examples.
(a) Linear Advection:
Consider the linear scalar hyperbolic equation,
ut + aux + buy = 0,

(1.16.2)

where a and b are constants. To see if this has a plane wave solution, we substitute a general plane wave solution,
u = f (x cos + y sin ()t),

(1.16.3)

into (1.16.3) and solve the resulting equation for (). The solution is
() = a cos + b sin ,
which is real, meaning that it has a plane wave solution. We then proceed to nd the wave front by

 

 

X()
cos sin
a cos + b sin
a
=
=
.
Y ()
sin
cos
a sin + b cos
b

(1.16.4)

(1.16.5)

Therefore, a point disturbance simply propagates in the direction (a, b).


(b) Isotropic Advection:
Consider the following equation,
ut + (R cos )ux + (R sin )uy = 0,

(1.16.6)

24

CHAPTER 1. BASICS
In this case, we nd () = R and () = 0, and so

 

 

X()
cos sin
R
R cos
=
=
.
Y ()
sin
cos
0
R sin

(1.16.7)

Therefore, we nd that the envelope is a circle dened by


X 2 + Y 2 = R2 ,

(1.16.8)

i.e., a disturbance propagates in every direction at the same speed.


(c) System of Equations:
Consider a system of hyperbolic equations,
Ut + AUx + BUy = 0.

(1.16.9)

This has a plane wave solution of the form


U = f (x cos + y sin ()t)U0 ,

(1.16.10)

if () is an eigenvalue of the matrix,


An = A cos + B sin .

(1.16.11)

As an example, consider the two-dimensional Euler equations, for which we nd


() = qn a, qn , qn

(1.16.12)

where qn = (u, v) (cos , sin ) is the ow speed in the direction of and a is the speed of sound. So, two
waves,
corresponding to those with the speed qn , simply propagate in the ow direction at the ow speed q = u2 + v 2 ;
and the other two, corresponding to those with the speeds qn a, have the envelopes given by

 

 

X()
cos sin
u cos + v sin a
u a cos
=
=
,
(1.16.13)
Y ()
sin
cos
u sin + v cos
v a sin
i.e., the envelope is a circle centered at (u, v),
(X u)2 + (Y v)2 = a2 .

(1.16.14)

In general, I like wave fronts because they can be in quite interesting shapes; see [43, 75], for example, for intriguing
magnetohydrodynamic waves.

1.17

Rankine-Hugoniot Relation

Let n be the unit normal vector of a discontinuous surface (a shock wave), and VD be the normal speed of the
discontinuity. Then, apply the integral form of conservation laws (1.11.1) across the discontinuity, and let V 0 to
obtain the Rankine-Hugoniot relation,
[Fn ] = VD [U],

(1.17.1)

where [ ] denotes the jump across the discontinuity. Derive this by yourself or see [36, 37, 43] for derivations. Suppose
that the jump is small, so that we can write
dFn

= VD dU,

(1.17.2)

and hence
Fn
dU = VD dU.
U

(1.17.3)

1.18. LINEARLY DEGENERATE AND GENUINELY NONLINEAR FIELDS

25

Fn
This shows that the shock speed VD is an eigenvalue of
and the jump dU is the corresponding eigenvector. Note
U
that this is always true for linear equations, but not for nonlinear equations. For nonlinear equations, this is true only
for small jumps. I emphasize that the shock speed is NOT an eigenvalue of the Jacobian matrix for large jumps. But
I like it anyway because it is a fairly good approximation as long as the jump is small.
The one-dimensional Euler equations is a good example: the shock speed associated with one of the acoustic waves
is given by (derived from the Rankine-Hugoniot relation)
VD = uL + aL

+1
1+
2


pR pL
,
pL

(1.17.4)

where = 1.4; uL , pL , and aL are the velocity, pressure, and the speed of sound on one side of the shock; and pR is
the pressure on the other side of the shock. For small change, i.e., pR pL 0, it reduces to
VD uL + aL ,

(1.17.5)

which is nothing but the eigenvalue of the Jacobian, i.e., the one associated with the same acoustic wave (see Subsection
3.4.2).

1.18

Linearly Degenerate and Genuinely Nonlinear Fields

Consider a hyperbolic system of the form,


Ut + AUx = 0.

(1.18.1)

The k-th eigenvalue of the coecient matrix A, k (U) (or the eigenvector rk (U)) denes a characteristic eld called
the k -th eld (or rk -th eld), or simply k-th characteristic eld.
A k-th characteristic eld is said to be linearly degenerate if
k (U)
rk (U) = 0,
U

for all U.

(1.18.2)

In the case of linear hyperbolic systems, all eigenvalues are constant and therefore all elds are linearly degenerate. The
contact discontinuity is a discontinuity in a linearly degenerate eld: the characteristics are all parallel across such a
discontinuity just like the scalar linear advection. On the other hand, a k-th characteristic eld is said to be genuinely
nonlinear if
k (U)
rk (U) 6= 0,
U

for all U.

(1.18.3)

I like this genuinely nonlinear one because the characteristic speed can now change across waves, thus creating much
more sophisticated waves than the linearly degenerate eld. Specically, there can be nonlinear shocks (converging
characteristics) and nonlinear expansions (diverging characteristics) in this case. Note that any nonlinear scalar conservation laws with non-zero characteristic speed is genuinely nonlinear and such scalar conservations laws are said to
have a convex ux. See [58, 106] for details.
The one-dimensional Euler equations in the primitive variables U = [, u, p]t can be a good example: the eigenvalues
and eigenvectors are given by (see Subsection 3.4.2)
1 = u a,

r1 =

a
1

2 = u,

3 = u + a,

r2 = 0 ,
0

(1.18.4)


a
r3 =
1

(1.18.5)

26
where a =

CHAPTER 1. BASICS
p
p/, from which we nd

(u a)/

a
1


1
=

r1 =

(u a)/u
U

(u a)/p
a

u/

a
2
1
a

2p
1


a +1

1
= 2 6= 0,

=
= 0,
r2 =
u/u
0
1

0
U
u/p
0
0
0

a
3

r3 =
(u + a)/u 1
U
(u + a)/p
a
(u + a)/

a
2
1
a
2p

(1.18.6)

(1.18.7)

a

1

+1
=
6= 0,

(1.18.8)

so that the 1 -eld and 3 -eld (acoustic waves) are genuinely nonlinear but the 2 -eld (entropy wave) is linearly
degenerate.

Chapter 2

Model Equations
2.1

Linear Advection

I like the linear advection equation:


ut + (grad u)

= 0,

(2.1.1)

or
ut + div (u)

= 0,

(2.1.2)

or simply
Du
Dt

= 0,

(2.1.3)

where is a constant advection velocity at which the solution u travels. In Cartesian coordinates, the advection
equation becomes, with = (a, b, c),
1D:

ut + aux = 0,

(2.1.4)

2D:
3D:

ut + aux + buy = 0,
ut + aux + buy + cuz = 0.

(2.1.5)
(2.1.6)

The linear advection equation is a model equation for a general quasi-linear system of equations, e.g., in one dimension,
Ut + AUx = 0,

(2.1.7)

where U is a vector of solutions and A is a coecient matrix having real eigenvalues. This includes the Euler equations
of gas dynamics. To develop a method for solving such a system, it is a good idea to rst study the model equation
which is simpler but retains important features of the general system. Once we develop and study a method for the
model equation, we may move on to extend it to the system of equations. For example, since the system (2.1.7) can
be diagonalized, i.e., decomposed into a set of linear advection equations (see Subsection 1.13.2), a method developed
for the linear advection equation can be directly applied to each component.
In studying the model equation, I like its integral form,
I
Z
d
u n dS = 0,
(2.1.8)
u dV +
dt V
S
because this allows discontinuous solutions: any initial solutions, whether continuous or discontinuous, will be simply
advected at the velocity . This is, in fact, a good model for developing a method for computing ows with shock
waves. Many techniques for accurately and stably computing discontinuous solutions have been successfully extended
to more general equations such as the Euler equations.
Note that the linear advection equation is closely related to the wave equation in one dimension, but not so much
in higher dimensions. In one dimension, the wave equation is
utt a2 uxx = 0,
27

(2.1.9)

28

CHAPTER 2. MODEL EQUATIONS

which can be written as


(t ax ) (t u + ax u) = 0.

(2.1.10)

Therefore, the wave equation has two general solutions: one traveling at the speed a and the other at the speed a.
The linear advection equation governs only the one traveling at the speed a. On the other hand, in two dimensions,
the wave equation is dened by
utt a2 (uxx + uyy ) = 0,

(2.1.11)

where a > 0. This has a plane wave solution in all directions at the same speed a (substituting a function of the
form f (x cos + y sin t) into the wave equation, and solving the resulting equation for the wave speed , we
obtain = a which is independent of the direction ). In contrast, the linear advection equation has a plane wave
solution only in a particular direction, i.e., specied by the constant advection vector (a, b). To describe an isotropic
wave propagation, the advection vector needs to be a function of space:
(a, b) = a(cos , sin ).

(2.1.12)

This describes a wave traveling isotropically at speed a (see Section 1.16). The advection equation is then still linear,
but it might be nice to stay with constant coecients. Then, we may use a system description of the isotropic wave:
ut
pt

= a (px + qy ) ,
= aux ,

(2.1.13)
(2.1.14)

qt

= auy .

(2.1.15)

It is easy to show by straightforward dierentiations that this system is equivalent to the wave equation (2.1.11). Note
however that this system representation has introduced an additional constraint, (py qx )t = 0, to the wave equation.
This condition implies that any zero or nonzero vorticity is preserved at all later times. This type of model system
was used in [69] for developing vorticity-preserving schemes. In three dimensions, basically the same is true, except
that the number of constraints now becomes three; the vorticity has three components in three dimensions.
Incidentally, some people use the term convection instead of advection. Personally, I like advection better simply
because Im used to it. I dont like to discuss which is better.

2.2

Circular Advection

The advection equation will still be linear even if = (a, b, c) is a function of space. For example, the two-dimensional
advection equation,
ut + aux + buy = 0,

(2.2.1)

(a, b) = (y, x),

(2.2.2)

with the advection velocity,

represents a ow eld that rotates clockwise around the origin. This is called the circular advection equation. A
three-dimensional circular advection equation would be
ut + aux + buy + cuz = 0,

(2.2.3)

(a, b, c) = (y, x, 0).

(2.2.4)

with

This represents a circular ow eld around z-axis. Alternatively, we can take = (0, z, y) to create a ow around
x-axis, or = (z, 0, x) to create a ow around y-axis. Yet, we may take = (y, x, V ) where V is a constant. I
like this one because it describes a more 3D ow: rotating around z-axis and simultaneously moving in the z direction
at a constant speed V . Note that the circular advection equation can be written also in the conservative form,
ut + div (u)

= 0,

= (y, x) in two dimensions, and = (y, x, 0), (z, 0, x), (z, 0, x) or (y, x, V ) in three dimensions.

(2.2.5)

2.3. DIFFUSION EQUATION

2.3

29

Diffusion Equation

I like the diusion equation:


ut = div ( grad u) ,

(2.3.1)

where is a positive diusion coecient. As long as does not depend on the solution itself, this equation is linear.
In Cartesian coordinates, the diusion equation becomes
1D:
2D:
3D:

ut = (ux )x ,
ut = (ux )x + (uy )y ,
ut = (ux )x + (uy )y + (uz )z .

(2.3.2)
(2.3.3)
(2.3.4)

The diusion equation is parabolic in time (prove it!). It requires both an initial solution and boundary conditions.
Generally, its solution is very smooth. Even if an initial solution is not smooth, it will be made smooth as time goes
on because of the smoothing eect of the second-derivative term on the right hand side, i.e., diusion term. The
solution will reach a steady state, unless we introduce a time-dependent boundary condition. Then, the steady solution
will be equivalent to that of the Laplace equation (see Section 2.6).
Of course, I like its integral form also,
I
Z
d
grad u n dS = 0,
(2.3.5)
u dV +
dt V
S
or

d
dt

u dV +

u
dS = 0.
n

(2.3.6)

This is a good starting point for developing a nite-volume scheme for the diusion equation. In general, it is relatively
easy to develop a scheme for the diusion equation because it only deals with smooth solutions (no discontinuities).
The issue, if any, would be the eciency of the numerical method. In particular, an explicit scheme can be very
inecient due to a severely restricted time step; implicit schemes are generally employed. All these (smoothing eect
and eciency) are characteristics of the viscous part of the Navier-Stokes equations. Therefore, the diusion equation
is a typical model for the viscous term of the Navier-Stokes equations. By the way, the integral form above shows that
the integral value of the solution depends only on the normal solution gradient over the control volume boundary, S.
This is very interesting.
Finally, there is an interesting rst-order system associated with the diusion equation:
ut
pt

= px ,
1
(ux p),
=
Tr

(2.3.7)
(2.3.8)

where Tr is a constant. This system is equivalent to the diusion equation in the limit Tr 0 [15], and often called
the hyperbolic heat equation. It has a hyperbolic character but only for a very short time of the order Tr . There are
some eorts on solving this system instead of the diusion equation [85] as it models in part a relaxation system for
the Navier-Stokes equations. However, the small relaxation time Tr makes the system sti and consequently makes
it dicult to solve numerically. On the other hand, if we are interested in the steady state only, then, Tr can be any
value and the system can be made hyperbolic for all times. This leads to a very fast method (advection schemes for
diusion) for computing steady state solutions of the diusion equation [71]. Of course, I like this approach very very
much.

2.4

Advection-Diffusion Equation

I like the advection-diusion equation:


ut + (grad u) = div ( grad u) ,

(2.4.1)

ut + div (u grad u) = 0.

(2.4.2)

or in the conservative form,

30

CHAPTER 2. MODEL EQUATIONS

Pe=10.0
0
0

Figure 2.4.1: A typical steady solution of the advection-diusion equation. u(0) = 0 and u(L) = 1.

In Cartesian coordinates, it is written as


1D:
2D:

ut + aux = (ux )x ,
ut + aux + buy = (ux )x + (uy )y ,

(2.4.3)
(2.4.4)

3D:

ut + aux + buy + cuz = (ux )x + (uy )y + (uz )z ,

(2.4.5)

1D:

ut + (au ux )x = 0,

(2.4.6)

or

2D:
3D:

ut + (au ux )x + (bu uy )y = 0,
ut + (au ux )x + (bu uy )y + (cu uz )z = 0.

(2.4.7)
(2.4.8)

The advection-diusion equation is a model equation for a general quasi-linear system of equations of the form, e.g.,
in one dimension,
Ut + AUx = DUxx ,

(2.4.9)

where U is a vector of solutions, A is a coecient matrix having real eigenvalues, and D is a positive coecient
matrix. This includes the Navier-Stokes equations written in the quasi-linear form (see Section 4.10). Basically, it is
simply the sum of the advection and diusion equations. But to solve this numerically, we should be very careful if
we want to simply add a diusion scheme to an advection scheme. Such a scheme may fail in the intermediate case
where the advective eect and the diusive eect are equally important. In fact, some high-order schemes are known
to lose the formal accuracy due to incompatible discretizations of the advection and diusion terms [19, 76, 81]. One
important consideration in preserving accuracy is to treat the advection and diusion terms in a unied manner. For
this purpose, the conservative form (2.4.2) may be particularly useful in which the advection and diusion terms are
equally treated in the form of ux. Naturally, then, the integral form,

I 
Z
u
d
dS = 0,
(2.4.10)
u dV +
u n
dt V
n
S
will be useful also.
Another diculty which may arise in advection-diusion problems is a rather drastic change in the character of the
equation. Consider the one-dimensional advection-diusion equation,
ut + aux = uxx ,

(2.4.11)

where a > 0, in x (0, L). This is a typical parabolic problem, and therefore we must specify solution values at both
boundaries: u(0) and u(L) which must be dierent for the solution to be non-trivial. However, if = 0, this becomes
a simple advection equation; we are allowed to specify only one value at the left boundary, i.e., u(0). The solution at

2.5. ADVECTION-REACTION EQUATION

31

the right boundary u(L) must be left unknown and determined by the wave coming all the way from the left boundary.
Then, what happens in general ( 6= 0) is that the wave attempts to propagate the left boundary value u(0) to the
right, but cannot continue to the right boundary because u(0) 6= u(L); the diusion term resolves the discrepancy by
smoothing the solution between u(L) and the one transported by the wave from the left (see Figure 2.4.1). Certainly,
if the advective eect dominates the diusive eect, the inuence of diusion will be conned within a narrow region
near the right boundary. There is a nice dimensionless parameter that characterizes this balance:
Pe =

aL
,

(2.4.12)

which is called the Peclet number. As P e 0, the diusion dominates; thus the narrow region gets broader and
broader. On the other hand, as P e , the advection dominates; thus the narrow region gets extremely narrow (as
if making it look like a pure advection problem by ignoring the right boundary condition u(L)). The corresponding
parameter in the Navier-Stokes equations is the Reynolds number; the narrow region is observed near a body in a ow
and called the boundary layer. Of course, we may as well ignore such a layer by discarding the diusion term completely
(solve the Euler equations instead of the Navier-Stokes equations). But if we really need to resolve the layer (e.g., need
to compute the viscous drag or the heat transfer on a body), we will have to retain the diusion term and confront a
variety of issues in computing such a solution in terms of both accuracy and eciency.
I like the advection-diusion equation. It is a very simple linear scalar equation, but contains essential diculties
that we will encounter when solving the Navier-Stokes equations for practical problems. It is useful not only for
illustrating such diculties in a simpler setting, but also for developing a new method for solving the Navier-Stokes
equations.

2.5

Advection-Reaction Equation

The advection-reaction equation is given by


ut + (grad u) = ku.

(2.5.1)

In Cartesian coordinates, it is written as


1D:

ut + aux = ku,

2D:
3D:

ut + aux + buy = ku,


ut + aux + buy + cuz = ku.

(2.5.2)
(2.5.3)
(2.5.4)

This equation models the transport of a material in a ow with a constant speed , decaying at the rate of k. This is
a typical model equation for conservation laws with a source term:
ut + div f = s,

(2.5.5)

where f = u and s = ku. Basically I like it, but not with large k because it makes the equation sti and very
dicult to solve numerically.

2.6

Poisson/Laplace Equations

The Poisson equation:


div grad u = f,

(2.6.1)

where f is a given function of space. If f = 0, it is called the Laplace equation. In Cartesian coordinates, the Poisson
equation is written as
1D
2D
3D

uxx = f (x),
uxx + uyy = f (x, y),
uxx + uyy + uzz = f (x, y, z).

(2.6.2)
(2.6.3)
(2.6.4)

32

CHAPTER 2. MODEL EQUATIONS

I like the Laplace equation because its solution is very smooth. In particular, it is well known that the minimum
and the maximum of the solution can occur only on the boundary (maximum principle), implying a smooth solution
in the interior. On the other hand, solutions of the Poisson equation could be non-smooth, depending on the source
term. Anyway, in both cases, the operator is the Laplacian which is very easy to discretize: a simple central dierencing
works ne. Although typically it takes a long time to obtain a numerical solution (expensive direct methods or a large
number of iterations), the multigrid technique works extremely well for this type of equation [12].

2.7

2.7.1

Cauchy-Riemann Equations

Velocity Components

In incompressible irrotational ows, the velocity components (u, v) satisfy the Cauchy-Riemann equations:
ux + vy

0,

for incompressibility,

(2.7.1)

vx uy

0,

for irrotationality.

(2.7.2)

Write this in the vector form,


AUx + BUy = 0,

(2.7.3)

where
U=

u
v

A=

1 0
0 1

B=

0 1
1 0

Then, A is invertible, and we nd the eigenvalues and eigenvectors of A1 B:






1
1
1 = i, r1 =
,
2 = i, r2 =
,
i
i

(2.7.4)

(2.7.5)

where i = 1. Therefore, this system is elliptic. If, in addition, u and v are twice dierentiable, they satisfy the
Laplace equation independently,
uxx + uyy
vxx + vyy

= 0,
= 0.

(2.7.6)
(2.7.7)

I like the Cauchy-Riemann equations because they are basically the same as a pair of Laplaces equations. Discretize
the Cauchy-Riemann equations by any method, you will often nd yourself solving the associated Laplace equations in
eect [44, 70]. Note that solutions of the Laplace equations do not necessarily satisfy the Cauchy-Riemann equations.
For example, the solution, (u, v) = r(sin , cos ), which represents a sold body rotation, satises the Laplace
equations, but does not satisfy the Cauchy-Riemann equations (the vorticity does not vanish). So, if you really want to
solve the Cauchy-Riemann equations, you need a numerical method which really solves the Cauchy-Riemann equations
[70].
The Cauchy-Riemann system is known as a model for the elliptic subsystem of the Euler equations [68, 80] (the
acoustic subsystem for subsonic ows). In fact, it is a model for all elliptic subsystems of a general two-dimensional
dierential system. That is, any two-dimensional system of partial dierential equations can be decomposed into a set
of advection equations and/or a set of Cauchy-Riemann systems. This is very interesting. See [75] for details.

2.7.2

Stream Function and Velocity Potential

The stream function and the velocity potential are dened by


u = x = y ,

(2.7.8)

(2.7.9)

= y = x .

2.7. CAUCHY-RIEMANN EQUATIONS

33

Then, it is obvious that and satisfy the following Cauchy-Riemann equations,


x + y
x y

= 0,
= 0.

(2.7.10)
(2.7.11)

If, in addition, and are twice dierentiable, they satisfy the Laplace equation independently,
xx + yy

= 0,

(2.7.12)

xx + yy

= 0.

(2.7.13)

I like the stream function because the boundary condition is made very simple, i.e., constant along a solid body. On
the other hand, the velocity potential can be tricky because it may not be continuous for multiply-connected regions
such as a ow around a lifting airfoil (see [49], for example).

2.7.3

Time-Dependent System

Augment the Cauchy-Riemann equations with time-derivatives as follows:


ut + ux + vy
vt vx + uy

=
=

0,
0,

(2.7.14)
(2.7.15)

Ut + AUx + BUy = 0,

(2.7.16)

which may be written in the vector form,

where
U=

u
v

A=

1 0
0 1

B=

0 1
1 0

(2.7.17)

I like this system because it is no longer the Cauchy-Riemann equations, but equivalent to the Cauchy-Riemann
equations at a steady state. So, I can compute a solution of the Cauchy-Riemann equations by integrating this in time
until the solution stops changing [68, 88]. Note that the time terms have been added in such a way that the resulting
system is stable [68]. Also note that the eigenvalues and eigenvectors of the projected Jacobian An = Anx + Bny ,
where (nx , ny ) is an arbitrary unit vector, are given by
1 = 1,

r1 =

nx + 1
ny

2 = 1,

r2 =

nx 1
ny

(2.7.18)

Therefore, this system is hyperbolic in time (although elliptic in space). On the other hand, it is interesting that if we
add time-derivatives to the Laplace equations,
ut

= uxx + uyy ,

(2.7.19)

vt

= vxx + vyy ,

(2.7.20)

these are not hyperbolic but parabolic in time. If we wish to have hyperbolic equations, we must introduce the
second-derivatives, utt and vtt , thus resulting in the wave equations:
utt
vtt

=
=

uxx + uyy ,
vxx + vyy .

(2.7.21)
(2.7.22)

These wave equations can be derived also from the Cauchy-Riemann system (2.7.14) and (2.7.15). In either case, i.e.,
parabolic or hyperbolic, these equations are equivalent to the Laplace equations at their steady states. But I denitely
like the hyperbolic equations better since a simple explicit scheme will work very well (with a large time step) to quickly
reach a steady state.

34

2.8

CHAPTER 2. MODEL EQUATIONS

Relaxation Model

I like relaxation models but I dont know much about them. See [45, 65] for details. As far as I know, the onedimensional relaxation model is given by
ut + vx
vt + a2 ux

= 0,
= (cu v)/,

(2.8.1)
(2.8.2)

where > 0, a2 > c2 . For 1, this system behaves like the advection-diusion equation,
ut + cux = (a2 c2 )uxx .

(2.8.3)

This can be shown by the Chapman-Enskog expansion [58]. Note that this is a simple model for moment equations
(derived from the Boltzmann equation) which behave like the Navier-Stokes equations in the limit of small relaxation
time. The two-dimensional version is given by
ut + vx + wy
vt + a2 ux
wt + b2 uy

= 0,
= (v ru)/,

= (w su)/,

(2.8.4)
(2.8.5)
(2.8.6)
(2.8.7)

where > 0, a2 > r2 , b2 > s2 . For 1, this system behaves like the following advection-diusion equation,


ut + rux + suy = (a2 r2 )uxx 2rsuxy + (b2 s2 )uyy .
(2.8.8)

Note that it is more advantageous to solve the rst-order relaxation system than the advection-diusion equations
because you can avoid any diculties in dealing with mixed derivatives [108].
We may generalize the relaxation model, and write a system of nonlinear conservation laws,
Ut + Fx = 0,

(2.8.9)

as a linear system with a source term, by introducing a new set of variables V,


U t + Vx
Vt + AUx

= 0,
F(U) V
,

(2.8.10)
(2.8.11)

where A and are constants carefully chosen such that the solution to this system is equivalent to the original
conservation law: the eigenvalues of A must satisfy the so-called sub-characteristic condition and must be very small
(see [58] for details). I like to avoid nonlinearity in this way (A is now constant), but I dont like that we now have a
sti source term instead ( must be very small). So, it is dicult anyway. Methods which use this approach to avoid
nonlinearity are called relaxation methods. See [58] for details.

2.9

Burgers Equation

I like Burgers equation (also known as inviscid Burgers equation):


ut + uux = 0.

(2.9.1)

This can be written in the conservative form,


ut + u2 /2

= 0.

(2.9.2)

Then, we can derive a shock speed Vs by integrating this over a discontinuity across two states, uL and uR , i.e., from
the Rankine-Hugoniot relation (1.17.1),
Vs =

uL + u R
.
2

(2.9.3)

2.10. TRAFFIC EQUATIONS

35

Also, if we multiply (2.9.2) by 2u, then we get another conservation form,




2 3/2
(u2 )t +
u
= 0,
3
x
from which we nd
2
Vs =
3



u L uR
uL + u R
.
u L + uR

(2.9.4)

(2.9.5)

So, the two conservation forms share the strong solutions (those that satisfy the dierential form), but have dierent
weak solutions (those that satisfy the integral form). In fact, it is natural that they have dierent weak solutions
because the conserved quantities are dierent: (2.9.2) conserves u while (2.9.4) conserves u2 . I like this particular
example because it tells us that it is very important to choose the right conservative variables so that we obtain
physically meaningful solutions.
Two-dimensional version is given by
ut + uux + vuy

0,

(2.9.6)

vt + uvx + vvy

0.

(2.9.7)

The following version is also often used,


ut + uux + uy = 0.

(2.9.8)

The latter is basically the same, at a steady state, as the one-dimensional equation (2.9.1), with y taken as a time-like
axis. There is also the three-dimensional version:
ut + uux + vuy + wuz

= 0,

(2.9.9)

vt + uvx + vvy + wvz


wt + uwx + vwy + wwz

= 0,
= 0.

(2.9.10)
(2.9.11)

Incidentally, some people think that it is Burgers equation. This is wrong. It is Burgers equation because it is the
equation of Burgers, not of Burger.

2.10

Traffic Equations

The trac equation is given by


t + (v)x = 0,

(2.10.1)

where is the density of cars traveling on the road (cars/distance) and v is a local speed of a car. It is reasonable to
assume that v is a function of , e.g.,

v
=1
,
(2.10.2)
vmax
max
which means that the speed goes up if there are less cars while the speed goes down if there are more cars. Then, the
characteristic speed is given by


f
(v)
2
=
= vmax 1
.
(2.10.3)

max
The shock speed Vs can also be found, by the Rankine-Hugoniot relation (1.17.1), as


R + L
fR fL
= vmax 1
.
Vs =
R L
max

(2.10.4)

I like the trac equation because the relation between the speed and the car density, such as (2.10.2), is required
for the trac equation to be closed but can be determined in any way we want. Various forms may be proposed for
modeling a real trac ow. But remember that we would have to derive the characteristic and shock speeds for each
relation we choose. For example, why dont you take this relation,
v
vmax

=1

2
2max

and derive the characteristic and shock speeds? See [58, 112] for more details on the trac equation.

(2.10.5)

36

2.11

CHAPTER 2. MODEL EQUATIONS

Viscous Burgers Equations

Viscous Burgers equation is given by


ut + uux = uxx ,

(2.11.1)

where is a positive constant. I like this equation because it is a simple model for the Navier-Stokes equations. Of
course, I like the two-dimensional version also:
ut + uux + vuy

(uxx + uyy ) ,

(2.11.2)

vt + uvx + vvy

(vxx + vyy ) ,

(2.11.3)

which is in fact the two-dimensional incompressible Navier-Stokes equations without the pressure gradient. I like this
one also,
ut + uux + uy = uxx ,

(2.11.4)

which will behave like the one-dimensional equation (with time-like y) at a steady state. Finally, of course, I like the
three-dimensional version,
ut + uux + vuy + wuz
vt + uvx + vvy + wvz

= (uxx + uyy + uzz ) ,


= (vxx + vyy + vzz ) ,

(2.11.5)
(2.11.6)

wt + uwx + vwy + wwz

= (wxx + wyy + wzz ) .

(2.11.7)

One of the most interesting features of the viscous Burgers equation is that its solution can be constructed from a
solution of the diusion equation. This is very interesting, isnt it? See Subsection 6.4.1 for details.

Chapter 3

Euler Equations
3.1

Thermodynamic Relations

I like gases that obey the ideal gas law (also called the thermal equation of state):
p = RT,

(3.1.1)

where p is the gas pressure, is the gas density, T is the gas temperature, and R is the gas constant which is 287
N m/kg for the sea-level air. Naturally, a gas that obeys this relation is called an ideal gas (or a thermally perfect gas).
The ideal gas law implies that the state of a gas at a point in a ow is determined by any two of the three variables:
the pressure p, the density , and the temperature T . These variables are then called state variables: the variables
which depend only on the state of gas and not on how it was changed from one state to another. It is interesting that
this relation (3.1.1) has nothing to do with time. In a ow, all these variables will generally change in time. But their
relation (3.1.1) holds at any instant of time at any location in the ow (no matter how violent the ow is). In other
words, the gas is always in equilibrium. Of course, this may not be true in reality, but this is the basic assumption of
thermodynamics, and in fact, it applies remarkably well to a wide range of ows, from low-speed to supersonic. That
is why I like thermodynamics so much. It is very useful for uid dynamics and CFD.
The internal energy of a gas is dened as the sum of all microscopic energies related to molecular motions (translation, rotation, vibration, etc). In this book, we use e to denote the specic internal energy (specic means per-unitmass). The internal energy is generally a state variable and depends on two other state variables, e.g, T and p. But it
is well known that for ideal gases it depends only on the temperature:
e = e(T ).

(3.1.2)

Note now that from the equation of state that p/ also depends only on T . This makes us want to introduce another
quantity called the specic enthalpy, denoted by h:
p
he+ ,

(3.1.3)

so that the enthalpy also depends only on the temperature,


h = h(T ).

(3.1.4)

It is interesting that the rst law of thermodynamics, which is a simple energy conservation law, can be expressed in
terms of both e and h: with the specic volume v dened by v = 1/,
dq = de + pdv,

(3.1.5)

1
dp,

(3.1.6)

or
dq = dh

where dq is an added specic heat. I must mention here that both de and dh depend only on the state while dq
depends on the process (how the heat is added), and that the work done, say dw, depends on the process also but this
37

38

CHAPTER 3. EULER EQUATIONS

has been replaced by pdv, i.e., a reversible work done solely by the pressure (i.e., no viscous forces). Note that the
above equations (3.1.5) and (3.1.6) are true for non-ideal gases also. Now, what is even more interesting is that if we
dene the constant-volume specic heat cv and the constant-pressure specic heat cp as the amounts of heat required
to increase the temperature of unit mass by one degree at constant volume and pressure respectively,




q
q
cv =
, cp =
,
(3.1.7)
T v
T p
then, it immediately follows from (3.1.5) and (3.1.6) that




e
h
cv =
, cp =
.
T v
T p

(3.1.8)

This is very interesting. It shows that cv represents a change in e per unit change in T at constant volume while cp
represents a change in h per unit change in T at constant pressure. It is known from kinetic theory that for molecules
with degrees of freedom for translational and rotational energy, the specic heats are given by

R,
(3.1.9)
cv =

2

R,
(3.1.10)
cp =
1+
2
and thus their ratio is independent of R,

cp
+2
=
,
cv

(3.1.11)

where is called the ratio of specic heats (also called the adiabatic exponent). For monatomic gases, we have = 3
and hence = 5/3; for diatomic gases (e.g., air), we have = 5 and hence = 7/5. These results imply that is a
constant. But this is not a general result; vibrational energy of molecules has not been taken into account. If the gas
temperature is high enough to excite the vibrational energy, then it will generally depend on T .
For ideal gases, both e and h are functions of T only, and therefore, we obtain from (3.1.5)


e
q
,
(3.1.12)
=
cv =
T v
T






v
e
v
q
+p
=
= cv + p
.
(3.1.13)
cp =
T p
T
T p
T p
Since the last term above becomes R/p by the ideal gas law (3.1.1), we have the important relation:
cp cv

= R.

(3.1.14)

This is very nice. Now we can solve this and (3.1.11) for cv and cp to get
cv

cp

1
R,
1

R.
1

(3.1.15)
(3.1.16)

For high temperature gases, may depend on T , and so are cv and cp . Then, by integrating (3.1.8), which are now
ordinary derivatives, we obtain
Z
e(T ) =
cv dT + constant,
(3.1.17)
Z
h(T ) =
cp dT + constant.
(3.1.18)
Yet, for a calorically perfect gas, which is dened as a gas with constant specic heats, we can write
e = cv T =

R
T,
1

(3.1.19)

h = cp T =

R
T.
1

(3.1.20)

3.1. THERMODYNAMIC RELATIONS

39

This is very nice. For example, we can arrange the equation of state into the form,


v2
p = ( 1)e = ( 1) E
,
2

(3.1.21)

where v is the velocity vector and E is the specic total energy,


1 p 1 2
+ v .
1 2

E=

(3.1.22)

Relation (3.1.21) is then called the equation of state for a calorically perfect gas (a calorically perfect gas is also
called a polytropic gas [55, 58]). By the way, some people use E and H to denote the total energy and enthalpy:
p
+ 12 v2 and H = E + p. Others use E to denote the specic total energy as in (3.1.22) and H to denote
E = 1
the specic total enthalpy,
H

p
E+ .

(3.1.23)

I like the latter, but the former is ne too. They are just dierent denitions. I dont like to discuss which is better.
Throughout this book, I will use the latter simply because I like it.
There is another quantity that I like. Consider the following,
dq
de
dv
=
+p ,
T
T
T
which is the rst law (3.1.5) divided by the temperature. This can be written as, by the ideal gas law,
 
dq
dT
1
,
= cv
+ Rd
T
T

(3.1.24)

(3.1.25)

which further can be written as, for a calorically perfect gas, as


dq
T

d(cv T ) d(R)


cv
= d ln T ln R .
=

(3.1.26)
(3.1.27)

Therefore, dq
T can be written as an exact dierential; it is thus a state variable (although dq is not a state variable).
This is dened as an entropy s:
ds


dq
= d ln T cv ln R .
T

(3.1.28)

This is nice but we must recall that this relation is subject to the assumption of reversible process. In general, e.g., for
viscous ows with heat transfer, this is not true, and the second law of thermodynamics states that the entropy must
increase:
ds =

dq
+ ds ,
T

(3.1.29)

where ds denotes a contribution from irreversible processes which is non-negative (ds 0). It follows from this that
for an adiabatic process we have
ds = ds 0,

(3.1.30)

and for an adiabatic and reversible process we have


ds = 0.

(3.1.31)

That is, the entropy is constant for an adiabatic and reversible process. Such a process is called isentropic. For an
isentropic process, some very important relations can be derived. We have from (3.1.28)
ds = cv

d
dT
R ,
T

(3.1.32)

40

CHAPTER 3. EULER EQUATIONS

and thus by the ideal gas law (dp/p = d/ + dT /T ),


dp
d
cp ,
p

dp
dT
= cp
R .
T
p

ds

= cv

(3.1.33)
(3.1.34)

For a calorically perfect gas, we can write these as


dT
d
( 1) ,
T

dp
d
=
,
p

dp
dT
( 1) ,
=
T
p

1
ds
R

(3.1.35)
(3.1.36)
(3.1.37)

and thus
1
ds
R



T
= d ln 1 ,



p
= d ln ,



T
= d ln 1 .
p

(3.1.38)
(3.1.39)
(3.1.40)

Therefore, we obtain the following important relations for an isentropic process (ds = 0):
T

= constant,

(3.1.41)

= constant,

(3.1.42)

T
p1

= constant,

(3.1.43)

where constants on the right hand sides are, of course, not all the same. These relations are generally called isentropic
relations or adiabatic relations (dq = 0). They are very useful for a wide range of applications because many ows can
be considered as adiabatic and reversible. For example, a supersonic ow over an airfoil can be adiabatic and reversible
except inside possible shock waves or inside a thin viscous/thermal boundary layer on the airfoil. Even for a curved
shock wave across which the entropy increases by dierent amount for dierent streamlines, the ow is isentropic along
each streamline (except for the jump across the shock wave). Note that in such a case the constants in these relations
dier from one streamline to another.
Overall, I like a calorically perfect gas since it has actually been used quite successfully for a wide range of ows.
So, in the rest of this book, I will simply call it a perfect gas.

3.2

Speed of Sound

The speed of sound is a speed at which a disturbance produced by a sound wave travels in a gas. The disturbance
is generally very small (a sound wave is not at all as strong as a shock wave), so that the process is considered as
isentropic. The speed of sound a is then given by
 
p
.
(3.2.1)
a2 =
s
For a perfect gas, we have the isentropic relation p/ = constant, and thus
p
a2 = .

(3.2.2)

3.3. EULER EQUATIONS

41

Using the equation of state, p = RT , we can write this also in terms of T ,


a2 = RT.

(3.2.3)

Generally, I like to use a to denote the speed of sound, but sometimes I will instead use c to avoid a possible conict
with other variables. But in the special case that the speed of sound is constant everywhere in a ow eld (e.g.,
isothermal ows), I think I would rather use c than a since it looks like standing for constant.

3.3

Euler Equations

Conservative Form
The conservative form of the Euler equations:
t + div(v) = 0,
t (v) + div(vv) + grad p = 0,
t (E) + div(vH) = 0.

(3.3.1)
(3.3.2)
(3.3.3)

Some people claim that only the momentum equation should be called the Euler equation because Leonhard Euler
actually derived the momentum equation only. But usually all these equations (momentum + continuity + energy) are
called the Euler equations. Either way, I like the Euler equations.
Primitive Form
The primitive form of the Euler equations:
D
+ div v
Dt

= 0,

(3.3.4)

Dv
+ grad p
Dt

= 0,

(3.3.5)

Dp
+ c2 div v
Dt

= 0.

(3.3.6)

Other Energy Equations


I like energy equations because the energy equations, (3.3.3) and (3.3.6), may be replaced by any of the followings:
(H) p

+ div(vH) = 0,
t
t

(3.3.7)

DE
+ div (pv) = 0,
Dt

(3.3.8)

De
+ p div v
Dt

= 0,

(3.3.9)

Dh Dp

Dt
Dt

= 0,

(3.3.10)

p
DH

Dt
t

= 0,

(3.3.11)

or even by the entropy equation. From (3.1.28), we have


dT
d
R ,
T

(3.3.12)

p
de

d.
T
T 2

(3.3.13)

ds = cv
which can be written for a perfect gas as
ds =

42

CHAPTER 3. EULER EQUATIONS

Therefore, we obtain from (3.3.9) and (3.3.4)

Ds
Dt

0.

(3.3.14)

According to the second law of thermodynamics, this should be interpreted as an inequality in general:

3.4
3.4.1

Ds
0.
Dt

(3.3.15)

1D Euler Equations
Conservative Form
Ut + Fx = 0,

(3.4.1)

where

U = u , F = u2 + p ,

(3.4.2)

uH

Flux Jacobian

u2

(3 )u
( 3)
=
2
U 

1 2
u H u H + (1 )u2
2

A =

1
.

(3.4.3)

Eigenstructure
A = RL,

(3.4.4)

where

uc 0
u
= 0
0
0

0
0 ,
u+c

(3.4.5)

1
1
1
u
u + c ,
R = uc
2
H uc u /2 H + uc



1 1 2 u
u
+
2
2c2
c

1 2

u
1
L=
2c2



1 1
u
2
u
2
2c2
c

1
2




1
1
u+
2c2
c
1
u
c2
1
1
u
2c2
c




(3.4.6)

1
2c2
1
2
c
1
2c2

(3.4.7)

3.4. 1D EULER EQUATIONS

43

dp c du
2c2
dp c2 d

2c2
dp + c du
c2

LdU =

(3.4.8)

d
corresponds to the entropy change ds and the corresponding right
It is interesting to note that the quantity dpc
2c2
eigenvector indicates (as discussed in Subsection 1.13.2) how the conservative variables change due to this entropy
change,

(3.4.9)
(u) u .

u2 /2

(E)

This is often called an entropy wave. The associated eigenvalue u gives the speed at which the entropy wave travels:
it moves with the local uid velocity. It is actually more interesting to look at it in the primitive form where we see
exactly what variable is aected by the entropy change.

3.4.2

Primitive Form
Wt + Aw Wx = 0,

where

= u ,
p

u
Aw = 0
0

(3.4.10)

0
1/ .
u

u
c2

(3.4.11)

Incidentally, I dont like to call Aw the primitive Jacobian. This is because Aw is not a Jacobian [109]: there does
not exist a (ux) vector H such that H/W = Aw . So, I simply call Aw the coecient matrix of the primitive form
of the Euler equations.
Eigenstructure
Aw = Rw Lw ,
where

uc
= 0
0

0
0
u
0 ,
0 u+c

0 1

Lw =
1 0

0 1

c
1
2
c
1
c

R =

(3.4.12)

2c
1
2
c

Lw dU =

1
0
0

dp
c
dp
d 2
c
dp
du +
c
du

The second component above represents the entropy wave, and we thus nd

u 0 .
p

2c
1
2
c
2

(3.4.13)

(3.4.14)

(3.4.15)

44

CHAPTER 3. EULER EQUATIONS

Therefore, it is the density that changes due to the entropy wave; the velocity and the pressure are not aected. A
typical example is a contact surface (or contact discontinuity) observed in shock tube problems: a surface across which
two dierent gases are initially in contact moves with the local uid speed carrying the density jump. In fact, the
entropy wave is sometimes called the contact wave.
Change of Variables
dU =
where

U
dW,
W

1
0
U

= u
W
u2 /2 u
W
=
U

U
W

1

W
dU,
U

(3.4.16)

0
,
0
1/( 1)

(3.4.17)

dW =

( 1)u2 /2

1
.
0

( 1)u 1

(3.4.18)

Note that the coecient matrix Aw is similar to the conservative Jacobian A,


Aw =

W U
A
.
U W

(3.4.19)

Hence, the eigenvectors are related by


U w
W
, R=
R ,
(3.4.20)
U
W
and the eigenvalues are the same as those of the conservative Jacobian because similar matrices share the same
eigenvalues (see Section 1.9).
L = Lw

3.4.3

Characteristic Variables

Multiply the primitive form (3.4.10) by Lw from the left to get


Lw Wt + Lw Aw Wx = 0,

(3.4.21)

Lw Wt + Lw Aw Rw Lw Wx = 0,

(3.4.22)

Wc t + Wc x = 0,

(3.4.23)

where the new variables dened by

= L W =

1
p
c
1
2 p
c
1
u + p
c

(3.4.24)

are called the characteristic variables, and the equation (3.4.23) is called the characteristic form. It is very nice that
the system (3.4.23) is a completely diagonalized form of the Euler equations, so that we have a set of independent
scalar nonlinear advection equations:




1 p
1 p
u
u

+ (u c)
= 0,
(3.4.25)
t
c t
x c x




1 p
1 p

2
2
+u
= 0,
(3.4.26)
t
c t
x c x




1 p
1 p
u
u
+
+
+ (u + c)
= 0.
(3.4.27)
t
c t
x c x

3.4. 1D EULER EQUATIONS

45

The second equation corresponds to an entropy advection, and the other two correspond to an acoustic wave propagation. This shows that the entropy is simply convected along a streamline and not aected by the acoustic waves.
In other words, the entropy is constant through the acoustic waves (unless they are strong enough to become shock
waves). For adiabatic (isentropic) ows, the characteristic variables can be integrated:



1
2
u p
c

u
c
1


c
,
(3.4.28)
W = 2 p =
s


c


1
c
u+
u + p
1
c

where the entropy s has been scaled by ( 1)/(R). These integrated quantities are called Riemann invariants.
We thus have




2
2

u
u
c + (u c)
c
= 0,
(3.4.29)
t
1
x
1
s
s
+u
t
x




2
2

u+
u+
c + (u + c)
c
t
1
x
1

= 0,

(3.4.30)

= 0.

(3.4.31)

This system is often used to implement a characteristic boundary condition in CFD [37]. Now, if we assume = 3,
this system reduces to a set of Burgers equations.

(u c) + (u c)
(u c)
t
x
s
s
+u
t
x

(u + c) + (u + c)
(u + c)
t
x

= 0,

(3.4.32)

0,

(3.4.33)

= 0.

(3.4.34)

On the other hand, if we assume a simple wave, i.e., for example,


u

2
c = constant,
1

s = constant,

(3.4.35)

2
everywhere (alternatively, u + 1
c = constant may be assumed), then it can be shown that the system of (3.4.29),
(3.4.30), and (3.4.31) reduces to the following single Burgers equation:

(u + c) + (u + c)
(u + c)
t
x

= 0.

(3.4.36)

To show this, let

=u
R

2
c = constant,
1

(3.4.37)

and solve for c,


c=

).
(u R
2

(3.4.38)

Then, we nd
R+ = u +
u+c=

c = 2u R
,
1

+1
1
u
R ,
2
2

(3.4.39)
(3.4.40)

46

CHAPTER 3. EULER EQUATIONS

and derive the relation,




4
3
R =
(u + c) +
R .
+1
4
+

(3.4.41)

Finally, substitute this into (3.4.31) and multiply the result by +1


4 to arrive at (3.4.36).
After all, I like the one-dimensional Euler system because it can be diagonalized completely and thus written as a
set of independent scalar advection equations as shown above. This is very nice but dicult in higher dimensions.

3.4.4

Parameter Vector

I like the parameter vector Z [84],


z1
1

u = z2 ,

Z =
H
z3

(3.4.42)

because every component of conservative variables and uxes can be expressed as quadratics in the components of Z,

z12

z1 z2

(3.4.43)
U = u =
,
z z
2
1 z2
1 3
E
+

u
z1 z2

F = u2 + p = z22 + p ,
(3.4.44)
uH

z1 z3

z2 z3

z22
2

(3.4.45)

This is very useful, for instance, for linearizing the Euler equations [84].

3.5
3.5.1

2D Euler Equations
Conservative Form
Ut + Fx + Gy = 0,

where

U=
v ,
E

(3.5.1)

u
u2 + p

F=
uv ,
uH

v
uv

G=
v 2 + p .
vH

(3.5.2)

Normal Flux
Projection of the ux in the direction of n = [nx , ny ]t :

where

qn
qn u + pnx

Fn = [F, G] n = Fnx + Gny =


qn v + pny ,
qn H
qn

= unx + vny .

(3.5.3)

(3.5.4)

3.5. 2D EULER EQUATIONS

47

Jacobians

An

( 1) q u2
(3 )u
(1 )v 1

F
2

=
U
uv
v
u
0



1 2
q H u H + (1 )u2 (1 )uv
u
2

0
0
1
0

uv
v
u
0

q2
=
2
(1 )u
(3 )v
1
U ( 1) v

2


1 2
q H v (1 )uv H + (1 )v 2
v
2

Fn
= Anx + Bny
U

( 1) q nx uqn

=
q2

( 1) ny vqn

2


1 2
q H qn
2

(3.5.5)

(3.5.6)

(3.5.7)

nx

ny

unx ( 1)unx + qn

uny ( 1)vnx

vnx ( 1)uny

vny ( 1)vny + qn

Hnx ( 1)uqn

Hny ( 1)vqn

nt

q2

= ( 1) 2 n qn v


1
2
q H qn
2

vn + (1 )nv + qn I ( 1)n
,

t
t
Hn (1 )v qn
qn

( 1)nx

( 1)ny

qn

(3.5.8)

(3.5.9)

where q 2 = u2 + v 2 , v = [u, v]t , and I is the 22 identify matrix. I like An very much because it is very convenient:
simply by taking n = [1, 0]t and [0, 1]t , we obtain A and B respectively.
Eigenstructure
An = Rn n Ln ,

(3.5.10)

where

Rn

qn c 0
0
0

0
qn
0
0
,
=

0
0 qn + c 0
0
0
0
qn

1
1
1
0
u cnx
u
u
+
cn

x
x
=
v cny
v
u + cny y
H qn c q 2 /2 H + qn c q

(3.5.11)

(3.5.12)

48

CHAPTER 3. EULER EQUATIONS



1 1 2 qn
q +
2
2c2
c

1 2

1
q

2c2
Ln = 

1 1 2 qn

2
2c2
c

1
u+
c2
1
u
c2

1 1
u

2
c2

nx
c

nx
c

1
v+
c2
1
v
c2

1 1
v

2
c2

1
2c2
1
2
c

ny
1
c
2c2
ny
c

Ln dU =

dp c dqn
2c2
dp c2 d

c2
dp + c dqn
2c2
dq

where [x , y ]t is a tangent vector (perpendicular to n) such as



 

x
ny
=
,
y
nx

(3.5.13)

(3.5.14)

(3.5.15)

and q is the velocity component in that direction,


q

= ux + vy .

(3.5.16)

I like Rn and Ln very much. Again, they are very convenient: simply by taking n = [1, 0]t and [0, 1]t , we obtain
eigenvectors of A and B. It is also nice that the normal Jacobian An can be diagonalized as
n = Ln An Rn .

(3.5.17)

It would be even nicer if A and B could be diagonalized simultaneously so that the Euler equations could be written as
a set of scalar advection equations. This was easy for the one-dimensional Euler equations, but it seems very dicult
in two (and also three) dimensions. But it is still nice that the steady two-dimensional Euler equations can be fully
diagonalized (see Section 3.16).

3.5.2

Primitive Form
Wt + Aw Wx + Bw Wy = 0,

where
W

=
v ,
p

0
Aw =
0
0

u
0
c2

0
0
u
0

0
1/
,
0
u

(3.5.18)

0
Bw =
0
0

0
v
0
0

0
v
c2

0
0
.
1/
v

(3.5.19)

Of course, as in Subsection 3.4.2, I dont like to call Aw and Bw the primitive Jacobians because they are not
Jacobians. I do like to call them the coecient matrices of the primitive form of the Euler equations.
Eigenstructure
Awn = Rwn n Lwn ,
where

qn

Awn =

nx

ny

qn

qn

c2 nx

c2 ny

(3.5.20)
0

nx /

ny /

qn

(3.5.21)

3.5. 2D EULER EQUATIONS

49

0
0
0
0
,
qn + c 0
0
qn

qn c 0

0
qn
n =

0
0
0
0

Rwn

nx c

ny c

2
c

0
0
0

nx c

ny c

c2

Lwn dW

1
w
Ln =

dp c dqn
2c2
dp c2 d

c2
dp + c dqn
2c2
dq

nx
2c

(3.5.22)

ny
2c

nx
2c
x

ny
2c
y

1
2c2
1
2
c
1
2c2
0

(3.5.23)

(3.5.24)

Note that the fourth component represents a wave which brings a change in the tangential velocity component. This
is often called a shear wave or a vorticity wave (because such a velocity jump can be represented by a vortex sheet).
Change of Variables

dU =

U
dW,
W

W
dU,
U

(3.5.25)

0
,

0
1/( 1)

(3.5.26)

dW =

where

1
0
0
u
U

0
=
0

W v
q 2 /2 u v

W
=
U

U
W

1

Awn =

3.5.3

( 1)q 2 /2

( 1)u

( 1)v

U
W
An
,
U
W

Ln = Lwn

W
,
U

Rn =

U w
R .
W n

(3.5.27)

(3.5.28)

Symmetric Form

I like the symmetric form of the Euler equations because the coecient matrices become very simple.
Vt + Av Vx + Bv Vy = 0,

(3.5.29)

50

CHAPTER 3. EULER EQUATIONS

where

dV =

dp
c
du
dv
dp a2 d

c
Av =
0
0

c
u
0
0

0
0
u
0

0
0
,
0
u

0
Bv =
c
0

0
v
0
0

c
0
v
0

0
0
,
0
v

(3.5.30)

and dV is called symmetric variables (symmetric variables are not unique; see [7, 32] for other choices). Look at the
matrices above. They are very sparse and simple. Moreover, I like the fourth equation which clearly shows how the
entropy evolves:
st + usx + vsy = 0,

(3.5.31)

where the entropy s has been scaled by ( 1)p/R. That is, it is convected along a streamline, thus implying the
isentropic ow.

Change of Variables

dU =

U
dV,
V

dV =

V
dU,
U

(3.5.32)

where

U
V

V
U

U
V

c
u
c
v
c
1
q2
+
2c2
1

1

u v

1 q2
2 c
u

1 2
q c2
2

1
c2
u
2
c
v
2
c

q
2c
2

( 1)

u
c

(3.5.33)

( 1)

v
c

( 1)u

( 1)v

1
c

(3.5.34)

Eigenstructure

Avn = Rvn n Lvn ,

(3.5.35)

3.5. 2D EULER EQUATIONS

51

where

q n c nx c ny 0
c nx q n
0
0
,
=
c ny
0
qn
0
0
0
0
qn

qn
0
0
0
0 qn c
0
0
,
=
0
0
qn + c 0
0
0
0
qn

0
1
1
0
0 nx nx x

=
0 ny ny y ,
1
0
0
0

Avn

vn

Rvn

Lwn

1
2

12 nx

12 ny

1
2

1
2 nx

1
2 ny

(3.5.36)

(3.5.37)

(3.5.38)

(3.5.39)

It is interesting to note that the change in the symmetric variables due to


p
1
1


nx
nx

u
,

ny

v
0
0
p a2

the acoustic and shear waves are given by

,
(3.5.40)

y
0

which shows that the entropy is constant through the acoustic and shear waves. Of course, the entropy may increase
across a shock wave (a strong acoustic wave); this change is given by the Rankine-Hugoniot relation.
Streamline/Natural Coordinates

I like the streamline coordinates, (, ) where taken along streamlines and perpendicular to streamlines. The
symmetric form (3.5.29) becomes even simpler in this coordinate system:
v V
vV
t + A
+ B
= 0,
V
where

dV

dp
c
dq
dq
dp c2 d
q
q

Av
v
B

dV

q c
c q
v
=
A
0 0
0 0

0
0
q
0

0
0
,
0
q

(3.5.41)

0 0 c 0

v = 0 0 0 0 ,
B
c 0 0 0
0 0 0 0

(3.5.42)

= u cos + v sin ,

(3.5.43)

= u sin + v cos ,
= Av cos + Bv sin ,
= Av sin + Bv cos ,

(3.5.44)
(3.5.45)
(3.5.46)

0
V
dV =
0
V
0

0
cos
sin
0

0
sin
cos
0

0
0
dV,
0
1

(3.5.47)

52

CHAPTER 3. EULER EQUATIONS


v . It is extremely simple.
and is a local ow angle dened by = tan1 uv . Look at B
We have obtained this form from (3.5.29) by setting x axis to be a streamline direction and y axis to be normal to
the streamline. Or more formally, we invert this change of coordinates,

= sin

cos

+ sin ,
x
y

(3.5.48)

+ cos ,
x
y

(3.5.49)

to get

= cos

sin ,

(3.5.50)

= sin

+ cos ,

(3.5.51)

and substitute these into (3.5.29).


Note that we always have q = 0 by denition (zero velocity across streamlines), but its rate of change is not
necessarily zero along the streamlines.

3.5.4

Parameter Vector

The parameter vector is dened by


1
z1
z2

u

Z =
v = z3
H
z4

(3.5.52)

I like it because every component of conservative variables and uxes can be expressed as a quadratic in the components
of Z [84].

z12
z1 z2
z1 z3


u

U =
v =


z1 z4
1 z22 + z32
+
E

z1 z2
u
u2 + p z 2 + p

F =
,
=
uv z2 z3
z2 z4
uH

z1 z3
v
uv z z
2 3

G =
,
=
v 2 + p z32 + p
z3 z4
vH
p



z22 + z32
z1 z4
.
2

(3.5.53)

(3.5.54)

(3.5.55)

(3.5.56)

We can write the conservative form of the Euler equations in terms of the parameter vector variables:
Ut + Az Zx + Bz Zy = 0,

(3.5.57)

3.5. 2D EULER EQUATIONS

53

z2

1
z4
F

z
=
A =
Z

z1
+1
z2

z3

z4

z3

0
G

z
B =
=
1
Z

z4

0

1
z3

z2
0

z1

z3

z2

1
z2

+1
z3

z4

0
1
z1

0
z2

(3.5.58)

.
1

z1

z3
0

(3.5.59)

Note that the Jacobian matrices are linear in the parameter vector variables, which can be useful to linearize the Euler
equations over a computational cell [24].
Perform change of variables as follows:
dZ =

Z
dU,
U

dU =

U
dZ,
Z

(3.5.60)

where

U
Z

2z1

z2

=
z3

z4

z1

z1

1
z2

1
z3

Z
U

from which we nd also

1
2

,
0

z1

(3.5.61)

1 z2

1
0

2 z1
1

1 z3
z1

0
1

2 z1

1 z2 + z2
z2
z3
1 z4
3
2
( 1)
( 1)

2
2
z1
2 z1
z1
z1

1
0
0

1
0
u
2
1

v
0
1

1
 1
u2 + v 2 H ( 1)u ( 1)v
2
2
Z=2

Z
U,
U

U=

Compare these with (3.5.60). It is very interesting, isnt it?

1 U
Z.
2 Z

(3.5.62)

(3.5.63)

(3.5.64)

54

3.6
3.6.1

CHAPTER 3. EULER EQUATIONS

3D Euler Equations
Conservative Form
Ut + Fx + Gy + Hz = 0,

where

U=

u
v
w
E

F=

u
u2 + p
uv
uw
uH

G=

(3.6.1)

v
uv
v 2 + p
uw
vH

w
uv
vw
w2 + p
wH

H=

(3.6.2)

Normal Flux

Fn = [F, G, H] n = Fnx + Gny + Hnz =

qn
qn u + pnx
qn v + pny
qn w + pnz
qn H

where n = [nx , ny , nz ]t and

(3.6.3)

qn = unx + vny + wnz .

(3.6.4)

Jacobians

1 2

q u2
(3 )u

uv
v
A=

uw
w



1
q 2 H u H + (1 )u2
2

vu

1 2

q v2
B=
2

vw



1
q2 H v
2

uw

vw
C=

1 2

q w2

2


1
2
q H w
2

(1 )v

(1 )w

(1 )uv

(1 )uw

(1 )v

(3 )u

(1 )w

(1 )uv

H + (1 )v 2

(1 )vw

(1 )u

(1 )v

(3 )w

(1 )uw

(1 )vw

H + (1 )w2

0
,

u
0

1
,

v
0

(3.6.6)

0
,

w
0

(3.6.5)

(3.6.7)

3.6. 3D EULER EQUATIONS


where A =
An

F
U ,

B=

G
U ,

C=

55
H
U ,

and q 2 = u2 + v 2 + w2 . Also, I like this one:

= Anx + Bny + Cnz

0
nx

K 2

2 q nx uqn unx Kunx + qn

q 2 ny vqn
vnx Kuny
=
2

K 2

wnx Kunz
2 q nz wqn


K
q 2 H qn
Hnx Kuqn
2

ny

nz

uny Kvnx

unz Kwnx

vny Kvny + qn

vnz Kwny

wny Kvnz

wnz Kwnz + qn

Hny Kvqn

Hnz Kwqn

nt

1 2

q n vqn
=
 2

1
q 2 H qn
2

Knx

Kny

Knz

qn

( 1)n
,

qn

vn + (1 )nv + qn I
Hnt (1 )vt qn

(3.6.8)

where K = 1, v = [u, v, w]t , and I is the 33 identity matrix. We may take n = [1, 0, 0]t , [0, 1, 0]t , or [0, 0, 1]t ,
to obtain A, B, or C, respectively.

Eigenstructure

An = Rn n Ln ,

(3.6.9)

where

Rn

Ln

qn
Kq 2
4c2 + 2c

Kq 2

2c2

2
= Kq
qn

4c2 2c

qm

qn c 0
0
qn
0
0
0
0
0
0
1
u c nx
v c ny
w c nz
H qn c

K
u+
2c2
Ku
c2

K

u
2c2
x

mx

0
0
qn + c
0
0

0
0
0
qn
0

0
0
0
0
qn

1
1
u
u + c nx
v
u + c ny
w
w + c nz
q 2 /2 H + qn c

nx
2c

nx
2c

K
v+
2c2
Kv
c2

K

v
2c2
y

my

0
x
y
z
q

ny
2c

ny
2c

(3.6.10)

0
mx
my
mz
qm

K
w+
2c2
Kw
c2

K

w
2c2
z

mz

(3.6.11)

nz
2c

nz
2c

K
2c2
K
2
c
K
2c2
0
0

(3.6.12)

56

CHAPTER 3. EULER EQUATIONS


dp c dq
n

2c2

dp c2 d

2c2

Ln dU = dp + c dqn

c2

dq

dqm

(3.6.13)

where = [x , y , z ]t , m = [mx , my , mz ]t , and n are mutually orthogonal unit vectors, and


q = ux + vy + wz ,

qm = umx + vmy + wmz .

(3.6.14)

See Section 1.3 for formulas and properties of mutually orthogonal unit vectors. Again, it is nice that the normal
Jacobian An can be diagonalized as
n = Ln An Rn ,

(3.6.15)

but it is very dicult to diagonalize A, B, and C simultaneously. In three dimensions, even the steady equations
cannot be diagonalized for the same reason that it is hard to diagonalize the two-dimensional time-dependent Euler
system.
Incidentally, I like to show that the absolute value of the normal Jacobian dened by
|An | Rn |n |Ln ,

(3.6.16)

where
n

= diag(|1 |, |2 |, |3 |, |4 |, |5 |)

|qn c|
0
0
0
0

0
|q
|
0
0
0
n

0
0
|q
+
c|
0
0
=
n

0
0
0
|qn |
0
0
0
0
0
|qn |

(3.6.17)

(3.6.18)

can be expressed without ambiguous tangent vectors, and m. First, denote the k-th column of Rn by rk and the
k-th row of Ln by tk , so that we can write
|An | Rn |n |Ln ,
=

5
X

k=1

|k | rk tk .

(Note that is a tangent vector and tk is the k-th left eigenvector.)

0
0t

r4 t4 =
q
q2 q t

where 0t = [0, 0, 0], and also

r5 t5

(3.6.19)

0t

(3.6.20)
Now, we have

0
,
0

=
qm m mm
2
qm
qm mt

0
.
0

Then, we can eliminate the tangent vectors by adding these two and using the results from Section 1.3:

0
0t
0

r4 t4 + r5 t5 =
qn n v I nn 0 .
qn2 q 2 vt qn nt 0

(3.6.21)

(3.6.22)

(3.6.23)

3.6. 3D EULER EQUATIONS

57

where I is the 3x3 identity matrix. Here, we notice that 2 = 4 = 5 = |qn | and r2 t2 does not depend on tangent
vectors. Then we would want to add r2 t2 to the above to get
|2 | r2 t2 + |4 | r4 t4 + |5 | r5 t5

|qn |

1 2
M
2


1 2
1
M v + qn n
2


2
q
1 2
2
qn
1+
M
2
2

1 t
v
c2

1
vv + I nn
c2


1 2
1+
M vt qn nt
2

where M 2 = q 2 /c2 . Next, consider r1 t1 and r3 t3 :

n
1
1 2 Mn
v
M +

4
2
2c
2c






1
n
1 2 Mn
(v

c
n)

M
+
(v

c
n)
r1 t1 =

4
2
2c2
2c






1 2 Mn
1
n
(H qn c)
(H qn c)
v
M +
4
2
2c2
2c

r3 t3 =

1
c2
1
2 v
c
( 1)M 2

n
1
1 2 Mn
v+
M

4
2
2c2
2c




1 2 Mn
n
1
(v + c n)
v
+
M
(v + c n)
4
2
2c2
2c




1
n
1 2 Mn
(H + qn c)
v+
M
(H + qn c)
4
2
2c2
2c

1
2c2

1
,
(v c n)
2c2

1
(H qn c)
2c2
1
2c2

(3.6.24)

(3.6.25)

1
,
(v + c n)
2c2

1
(H + qn c)
2c2

(3.6.26)

where Mn = qn /c. It might be possible to simplify the sum, |1 | r1 t1 + |3 | r3 t3 , but I stop here because they are
already independent of the tangent vectors. I like this very much because I can now compute (3.6.20), using the
normal vector n only. This is very useful because tangent vectors are not uniquely dened for a given normal vector
n, especially in three dimensions. By the way, the matrix |An | is required, for example, for implementing a class of
residual-distribution schemes [10, 14, 23, 107].
I also like to show that the product of the normal Jacobian and the dierential of the conservative variables,
|An | dU Rn |n |Ln dU,

(3.6.27)

is independent of the tangent vectors. It goes like this:


|An | dU = Rn |n |Ln dU
=

5
X

|k | rk tk dU

3
X

|k | rk tk dU

k=1

k=1

3
X

k=1

|k | rk tk dU

(3.6.28)
(3.6.29)

+ |qn |

+ |qn |

0
(x dq + mx dqm )
(y dq + my dqm )
(z dq + mz dqm )
(q dq + qm dqm )

0
(u qn nx )
(v qn ny )
(w qn nz )
(udu + vdv + wdw qn dqn )

(3.6.30)

(3.6.31)

where the results in Section 1.3 have been used in the last step. This is very nice. I like it. Basically, the tangent
vectors should not appear at all because obviously |An | depends only on the normal vector. It should always be possible
to eliminate tangent vectors, and m, from |An | for any equations. By the way, the vector |An | dU is often used, for
example, for implementing Roes approximate Riemann solver [84].

58

3.6.2

CHAPTER 3. EULER EQUATIONS

Primitive Form
Wt + Aw Wx + Bw Wy + Cw Wz = 0,

where

B =

W=

v
0
0
0
0

0
v
0
0
0

0
v
0
c2

0
0
0
v
0

u
v
w
p

0
0
1/
0
v

A =

C =

u
0 u
0 0
0 0
0 c2

w
0
0
0
0

0
w
0
0
0

(3.6.32)

0 0
0 0
u 0
0 u
0 0

0
1/
0
0
u

0
0
w
c2

0
0
0
1/
w

0
0
w
0
0

(3.6.33)

(3.6.34)

Eigenstructure
Awn = Rwn n Lwn ,
where

qn

w
An =
0

nx

ny

nz

qn

qn

qn

c2 nx

c2 ny

c2 nz

qn c 0
0
qn
0
0
0
0
0
0

Rwn

Lwn

nx c

n c

= y

nz c

c2

(3.6.35)

=
0

nx /

ny /
,

nz /

qn

0
0
0
0
qn + c 0
0
qn
0
0

1
0
0
0
0

nx c

ny c

nz c

c2

mx

my

mz

ny
2c

nz
2c

0
0
0
0
qn

nx
2c
x

ny
2c
y

nz
2c
z

mx

my

mz

nx
2c

(3.6.37)

1
2c2
1
2
c
1
2c2
0

(3.6.36)

(3.6.38)

(3.6.39)

3.6. 3D EULER EQUATIONS

59

Again, as in Subsection 3.4.2, there are no such things as primitive Jacobians. Note that we have two shear/vorticity
waves (fourth and fth components above) in three dimensions.
Change of Variables

dU =

U
dW,
W

W
dU,
U

dW =

(3.6.40)

where

U
W

W
U

W
U

3.6.3

1
0
0
u

0
v
0

w
0
0
q 2 /2 u v

0
0
0

0
0
0
0
1/( 1)

(3.6.41)

1
0
0
1
0
u/

1
v/
0

w/
0
0
( 1)q 2 /2 ( 1)u ( 1)v

U
W

1

Awn =

W
U
An
,
U
W

0
0
0
1

( 1)w

Ln = Lwn

W
,
U

0
0
0
0
1

Rn =

U w
R .
W n

(3.6.42)

(3.6.43)

Symmetric Form
Vt + Av Vx + Bv Vy + Cv Vz = 0,

(3.6.44)

where

dV

B =

v
0
c
0
0

0
v
0
0
0

dp
c
du
dv
dw
dp a2 d
c
0
v
0
0

0
0
0
v
0

0
0
0
0
v

Av =

C =

u
c
0
0
0

w
0
0
c
0

c
u
0
0
0

0
w
0
0
0

0 0
0 0
u 0
0 u
0 0

0
0
w
0
0

c
0
0
w
0

0
0
0
0
u

0
0
0
0
w

(3.6.45)

(3.6.46)

Note that the fth equation is an advection equation for the entropy:
st + usx + vsy + wsz = 0,

(3.6.47)

where the entropy s has been scaled by ( 1)p/R. So, in all dimensions, basically the Euler equations describe
isentropic ows. It is the Rankine-Hugoniot relation (the integral form of the Euler equations) that describes nonisentropic ows (shock waves).

60

CHAPTER 3. EULER EQUATIONS

Change of Variables
dU =

U
dV,
V

dV =

V
dU,
U

(3.6.48)

where

U
V

V
U

U
V

1

c
u
c
v
c
w
c
M2
1
+
2
1

1 q2
2 c
u

1 2
q c2
2

u v

( 1)

u
c

1
c2
u
2
c
v
2
c
w
2
c
M2

( 1)

v
c

( 1)

(3.6.49)

w
c

( 1)u

( 1)v

( 1)w

1
c

.
0

(3.6.50)

Eigenstructure
Avn = Rvn n Lvn ,

(3.6.51)

where

Avn

vn

qn
c nx
c ny
c nz
0
qn
0
0
0
0

Rvn

c nx
qn
0
0
0

c nz
0
0
qn
0

0
0
0
0
qn

0
0
0
qn c
0
0
0
qn + c 0
0
0
qn
0
0
0

0
0
0
0
qn

0 nx

=
0 ny

0 nz

1
0

c ny
0
qn
0
0

nx

ny

nz

(3.6.52)

(3.6.53)

mx

my
,

mz

(3.6.54)

3.6. 3D EULER EQUATIONS

61

Lvn

1
2

1
=
2

12 nx

12 ny

21 nz

1
2 nx

1
2 ny

1
2 nz

mx

my

mz

0
.

(3.6.55)

Again, as in two dimensions, it can be seen from the right eigenvectors that the acoustic and shear waves do not aect
the entropy.
I like the absolute value of the normal Jacobian very very much for the symmetric form,
|Avn | Rvn |vn |Lvn ,

(3.6.56)

because it can be much simpler than that of the conservative form (see Subsection 3.6.1). If we denote the k-th
column of Rvn by rk and the k-th row of Lvn by k , then we can write
|Avn |

5
X

|k | rk tk .

0
0
0
0
0

0
0
0
0
0

k=1

(3.6.57)

First, consider the following components:

r1 t1

r4 t4

0
= 0
0

0
0
0
0
0

0
0
0
0
0

0t
mm
0t

|1 | r1 t1 + |4 | r4 t4 + |5 | r5 t5

r5 t5
where 0t = [0, 0, 0], and so

(3.6.60)

0
0t

= |qn | 0 + mm
0
0t
0
0t
= |qn | 0 I nn
0
0t

where I is the 3x3 identity matrix. Second, consider the other two components:

1
nt 0
1
n nn 0 ,
r2 t2 =
2
0
0t
0
=

(3.6.59)

0
0 ,
0

r3 t3

(3.6.58)

0t
0
0 ,
0t
0

0
= 0
0

0
0
0
0
1

1
1
n
2
0

nt
nn
0t

0
0 ,
0

0
0
1

0
0 ,
1

(3.6.61)

(3.6.62)

(3.6.63)

(3.6.64)

62

CHAPTER 3. EULER EQUATIONS

and so,

|2 | r2 t2

f nt
||

||

fn
=
||

|3 | r3 t3

|| nn
0t

0
,

(3.6.65)

where
|| =
f =
||

Finally, we obtain

5
X

|Avn | =

k=1

|qn + c| + |qn c|
|3 | + |2 |
=
,
2
2
|qn + c| |qn c|
|3 | |2 |
=
.
2
2

(3.6.67)

|k | rk tk

(3.6.68)
f nt
||

||

||
fn

(3.6.66)

|qn | I + (|| |qn |) nn


0t

0
,

|qn |

(3.6.69)

Comparing this with |An | in Subsection 3.6.1, we immediately see that this is so much simpler. I really like it. Note
also that
|An | = Rn |n |Ln =

U v
V
U v V
R |n |Lvn
=
|A |
,
V n
U
V n U

(3.6.70)

which is possible because the conservative form and the symmetric form are related through a similarity transformation.
Hence, the absolute Jacobian |An | can be calculated via a much simpler matrix (3.6.69). This is very nice.
Streamline Coordinates
Take x-axis as a streamline direction denoted by , and y-axis and z-axis as mutually orthogonal normal directions
denoted by and m , then I get the following.
v V
vV
vV
t + A
+ B
+ C
m = 0,
V

(3.6.71)

where

dV

v =
B

0
0
c
0
0

0
0
0
0
0

dp
c
dq
dq
dqm
dp a2 d

c 0 0
0 0 0

0 0 0
,
0 0 0
0 0 0

A =

v =
C

q
c
0
0
0

c
q
0
0
0

0
0
q
0
0

0 0
0 0

0 0
,
q 0
0 q

0 0 0 c 0
0 0 0 0 0
0 0 0 0 0
c 0 0 0 0
0 0 0 0 0

(3.6.72)

(3.6.73)

3.6. 3D EULER EQUATIONS

63

and we have set the unit vector in direction to be n = u/q, and the unit vectors in the other two directions, and
m , to be and m, and dened the followings:
q
q
qm
v
A
v
B

= unx + vny + wnz ,


= ux + vy + wz ,
= umx + vmy + wmz ,

(3.6.74)
(3.6.75)
(3.6.76)

= Av nx + Bv ny + Cv nz ,
= Av x + Bv y + Cv z ,

(3.6.77)
(3.6.78)

v
C

= Av mx + Bv my + Cv mz ,

(3.6.79)

dV

3.6.4

V
dV =

1
0
0
0
0

0
nx
x
mx
0

0
ny
y
my
0

0
nz
z
mz
0

0
0
0
0
1

dV.

(3.6.80)

Parameter Vector

The parameter vector is dened by

Z =

1
u
v
w
H

z1
z2
z3
z4
z5

(3.6.81)

I like it as in two dimensions because again every component of conservative variables and uxes can be expressed as
a quadratic in the components of Z [84].

z12

z1 z2

z1 z3

,
U = v =
(3.6.82)

z1 z4

z z
1 z22 + z32 + z42
1 5
E
+

F =

u
u2 + p
uv
uw
uH
v
uv
v 2 + p
uw
vH
v
uv
vw
w2 + p
vH




=





=





=

z1 z2
z22 + p
z2 z3
z2 z4
z2 z5
z1 z3
z3 z2
z32 + p
z3 z4
z3 z5
z1 z4
z4 z2
z4 z3
z42 + p
z4 z5

(3.6.83)

(3.6.84)

(3.6.85)

64

CHAPTER 3. EULER EQUATIONS


1

p =

z 2 + z32 + z42
z1 z5 2
2

(3.6.86)

We can write the conservative form of the Euler equations in terms of the parameter vector variables:
Ut + Az Zx + Bz Zy + Cz Zz = 0,

z2

z1

z5

F
Az =
=
0
Z

+1
z2

z3

1
z3

z2

1
z4

0
1
z1

z4

z2

z5

z2

z3

z1

z3

z2

G 1
=
Bz =
z5
Z

(3.6.87)

1
z2

+1
z3

z4

1
z4

z3

z4

z1

z4

z2

z4

z3

H
0
Cz =
=

z5
0

z5

1
z2

1
z3

+1
z4

z5

1
z1
,

(3.6.88)

(3.6.89)

z3

.
0

1
z1

(3.6.90)

z4

Again, the Jacobian matrices are linear in the parameter vector variables, and this can be useful to linearize the Euler
equations over a computational cell [24]. Of course, I like to perform change of variables:

dZ =

Z
dU,
U

dU =

U
dZ,
Z

(3.6.91)

where

U
Z

2z1

z2

z1

z3

z1

z4

z1

z5

1
z2

1
z3

1
z4

0
,

z1

(3.6.92)

3.7. ROTATIONAL INVARIANCE

65

Z
U

1
2
1 z2

2 z1
1 z3

2 z1
1 z4

2 z1

z1

1 z2 + z2 + z2
1 z5
3
2
4

2
z12
2 z1

from which we nd

1
2
u

2
v

2
w

( 1)q 2
H

2
2
Z=2

( 1)z2
z1

( 1)z3
z1

( 1)z4
z1

( 1)u

( 1)v

( 1)w

Z
U,
U

U=

1 U
Z.
2 Z

0 ,

(3.6.93)

0
,

(3.6.94)

(3.6.95)

As in the two-dimensional case, I nd it very interesting.

3.7

Rotational Invariance

The Euler equations have the rotational invariance property (see Section 1.15)
Fn = nx F + ny G + nz H = T1 F(TU),

(3.7.1)

where

T=

1 0
0 nx
0 x
0 mx
0 0

=T =

0
ny
y
my
0

1 0
0 nx
0 ny
0 nz
0 0

0
nz
z
mz
0
0
x
y
z
0

0
0
0
0
1
0
mx
my
mz
0

0
0
0
0
1

(3.7.2)

(3.7.3)

where n, , m are three orthogonal unit vectors (see Section 1.3). So, we can do the following. First compute TU,

qn

TU =
(3.7.4)
q ,
qm
E

66

CHAPTER 3. EULER EQUATIONS

and evaluate F(TU),

F(TU) =

qn
qn2 + p
qn q
qn qm
qn H

(3.7.5)

and then rotate it back to obtain a ux vector projected in an arbitrary direction n,

Fn = T

F(TU) =

qn
qn u + pnx
qn v + pny
qn w + pnz
qn H

(3.7.6)

where the relation (1.3.6) has been used to get u, v, and w.


So, basically, we need only F and dont really need G and H. In fact, some people take advantage of this property
when they write a nite-volume code: set up one subroutine to evaluate the nite-volume interface ux based on F
only, and then perform the rotation as described above to get a numerical ux in arbitrary directions. I like this way
of computing a numerical ux, but I also like to use the form (3.7.6) directly to implement a numerical ux since it
seems more intuitive.

3.8

Convenient Ordering

I like to order the components as follows:

U=

E
u
v
w

F=

u
uH
u2 + p
uv
uw

G=

v
vH
uv
v 2 + p
uw

H=

w
wH
uv
vw
w2 + p

(3.8.1)

Then, simply by ignoring the fth row and column, we obtain the two-dimensional Euler equations, and by ignoring
further the fourth row and column, we obtain the one-dimensional Euler equations. The same is true for the ux,
Jacobians, and eigenvectors:
Normal Flux

Fn = Fnx + Gny + Hnz =

qn
qn H
qn u + pnx
qn v + pny
qn w + pnz

(3.8.2)

Jacobians

An

0
1 2
2 q


H qn

( 1) q2 n vqn

nt

qn

Hnt (1 )vt qn

( 1)n

vn + (1 )nv + qn I

Note that by taking n = [1, 0, 0]t , [0, 1, 0]t , or [0, 0, 1]t , we obtain A , B , or C.

(3.8.3)

3.9. HOMOGENEITY PROPERTY OF THE EULER FLUXES

67

Right-Eigenvector Matrix

Rn

1
H qn c
u c nx
v c ny
w c nz

1
1
q 2 /2 H + qn c
u
u + c nx
v
u + c ny
w
w + c nz

0
q
x
y
z

0
qm
mx
my
mz

(3.8.4)

This is convenient in the case that we want to perform one- or two-dimensional calculations with a 3D code (simply
limit the size of arrays). I like this technique. Its really simple and useful. The CFD code called EulFS [10] actually
takes advantage of this ordering. Of course, alternatively, if we have a 3D code, we can perform one-dimensional
calculations by using a string of 3D cells aligned in x-axis. You can also do two-dimensional calculations by using a
two-dimensional grid with a unit width added in the third direction (this creates a 3D grid of prismatic cells). But I
think that the ordering technique is still useful for other purposes also. For example, it can be used also for extended
systems such as magnetohydrodynamic equations: add magnetic eld components to the end of the hydrodynamic
state vector so that one can run purely hydrodynamic cases with an MHD code simply by limiting the size of the
solution array.

3.9

Homogeneity Property of the Euler Fluxes

If we assume that p/ is a function of e only (i.e., if p = f (e)), then the Euler uxes are homogeneous of degree 1
in terms of the conservative variables. That is, for any scalar , we have
F(U) = F(U),

G(U) = G(U),

H(U) = H(U).

(3.9.1)

Dierentiating both sides with respect to , and then setting = 1, we obtain


F
U = AU = F,
U

G
U = BU = G,
U

H
U = CU = H.
U

(3.9.2)

Therefore, the conservative form,


Ut + Fx + Gy + Hz = 0,

(3.9.3)

Ut + AUx + BUy + CUz = 0,

(3.9.4)

Ut + (AU)x + (BU)y + (CU)z = 0.

(3.9.5)

can be written not only as

but also as

I like this because the Jacobian matrices look like as if they are constant even though they are actually not. In fact,
this can be useful. The Steger-Warming ux vector splitting [99] takes advantage of this property.
Also, note that we have
dF = d(AU) = AdU + dA U,

(3.9.6)

dF = AdU,

(3.9.7)

from which we nd
dA U = 0.
I think that I like it. Im not sure, but it must be useful.

(3.9.8)

68

CHAPTER 3. EULER EQUATIONS

3.10

Nondimensionalization

3.10.1

Nondimensionalized Euler Equations

Nondimensionalized quantities are nice. No matter how large the actual free stream speed is (which depends on units
also), we can set it equal to 1 by scaling the velocity by the free stream speed. So, a CFD code does not have to deal
with too large (or too small) numbers. To be even nicer, the Euler equations stay in exactly the same form for various
nondimensionalizations. Consider the following nondimensionalization:
=

,
r

p =

p
,
pr

v =

v
,
Vr

x =

x
,
L

t =

t
,
tr

(3.10.1)

where L is a reference length, the variables with are the nondimensional variables, and those with the subscript r are
some reference values. Substituting these into the continuity equation (3.3.1), we obtain
t r Vr

+
div ( v ) = 0,

t
L
where div is the divergence operator based on the nondimensionalized coordinates. So, by setting
tr =

L
,
Vr

(3.10.2)

(3.10.3)

we nd that the nondimensional variables satisfy exactly the same continuity equation as that for the dimensional
variables:

+ div ( v ) = 0.
(3.10.4)
t
For the momentum equations (3.3.2), we nd
pr
( v )
+ div ( v v ) +
grad p = 0,
t
r Vr2

(3.10.5)

pr = r Vr2 ,

(3.10.6)

which suggests that we set

and therefore the momentum equations are also identical to those for dimensional variables:
( v )
+ div ( v v ) + grad p = 0.
t
For the energy equation (3.3.3), we rst nondimensionalize the internal energy by Vr2 :
e
e = 2 ,
Vr

(3.10.7)

(3.10.8)

so that we have
E
v 2
= e +
,
2
Vr
2

(3.10.9)

v 2
p
H

=
e
+
.
+
Vr2
2

(3.10.10)

E =
and also
H =

Hence, the total specic energy and enthalpy can be calculated in the same forms for the nondimensional variables.
Furthermore, it follows that the equation of state for a calorically perfect gas (3.1.21) also holds for the nondimensional
variables:
p = ( 1) e .

(3.10.11)

Finally, with the above nondimensionalization, the energy equation (3.3.3) becomes
( E )
+ div ( v H ) = 0,
(3.10.12)
t
which is again the same form as that for the dimensional variables. So, all equations are invariant for the nondimensionalization. This is very nice. So, Im happy to summarize the result below.

3.10. NONDIMENSIONALIZATION

69

Euler Equations for Nondimensionalized Variables

+ div ( v ) = 0,
t
( v )
+ div ( v v ) + grad p
t

where E = e +

v 2
2 ,

H = E +

,
r

p
,

p =

(3.10.13)

0,

(3.10.14)

( E )
+ div ( v H ) = 0,
t

(3.10.15)

and

p
,
r Vr2

e =

e
,
Vr2

v =

v
,
Vr

x =

x
,
L

t =

t
.
L/Vr

(3.10.16)

The reference length can be simply set to be 1 in many cases. It is then a matter of what values to choose for the
reference density and velocity. There can be various choices. I especially like those I describe below.

3.10.2

Free Stream Values

We may use the free stream values (indicated by the subscript ) as reference, i.e., set r = and Vr = V , which
give the following nondimensionalization:
=

p =

p
,
2
V

e =

e
,
2
V

v =

v
,
V

x =

x
,
L

t
.
L/V

(3.10.17)

v
= n ,
V

(3.10.18)

t =

Then, we can set the free stream values as follows:


= 1,

p =

1
,
2
M

e =

2
p
M
=
,
( 1)
( 1)

v
=

where n is a unit vector in the direction of the free stream. This means that the free stream speed is 1 and only the
direction, i.e., n , needs to be specied at a free stream inow. Yes, also the free stream Mach number M needs to
2
and therefore
be given, in order to set the free stream pressure. Note that the pressure is inversely proportional to M
it will become extremely large for ows with a very small Mach number. I dont like it very much. In fact, this is not
a popular choice for compressible ow simulations (popular for incompressible ow simulations, though).

3.10.3

Speed of Sound

We may use the free stream speed of sound a in place of the free stream velocity V . This set of quantities is widely
used in compressible ow simulations:
=

p =

p
,
a2

e =

e
,
a2

v =

v
,
a

x =

x
,
L

t =

t
.
L/a

(3.10.19)

Then, we can set the free stream values as follows:


= 1,

p =

1
,

e =

1
,
( 1)

v
=

v
= M n .
a

(3.10.20)

Again, we only need to specify the Mach number and its direction at the free stream inow. I like this nondimensionalization particularly because the velocity becomes equivalent to the Mach number at the free stream inow and also
that the free stream pressure is constant (independent of M ). This is a very popular choice for compressible ow
simulations.

3.10.4

Stagnation Values

We can also use the stagnation values:



 1
1 2 1

= 1+
M
,
=
0
2



1 2 1
p
1
p
1+
=
=
M
p =
,
0 a20
p0

(3.10.21)

70

CHAPTER 3. EULER EQUATIONS

(you can derive these relations from Bernoullis equation for compressible ows in Section 3.17), and
r
e
p
v
v a
v
v
x
t

e = 2, v =
= a , x = , t =
=
=
,
a0
a0
a a0
a

a
L
L/a0

(3.10.22)

Then, we can set the free stream values as follows:

1

 1
1 2
= 1+
,
M
2

e =

1)

p
v

 1

1
1 2
=
,
1+
M

2
s
v
p
=
a = M n
.
a

(3.10.23)

(3.10.24)

Again, only the Mach number and the free stream direction need to be specied at the free stream inow. This will
be convenient when you want to compare a computed pressure at a stagnation point with a known value. See Section
7.11.7 for example.

3.11

Change of Variables

I like converting variables, from conservative to primitive, for example. In particular, I like those I describe in this
section since these are valid for any set of nondimensionalized variables discussed in Section 3.10.

3.11.1

One Dimension

From conservative variables to others


Let U = [, u, E]t = [u1 , u2 , u3 ]t . Then we have

= u1 ,
= u2 /u1 ,

1
= ( 1) u3
2

z1
z2
z3

"

u2
u1

2 #

(3.11.1)
(3.11.2)
,

=
u1 ,

= u2 / u1 ,
"
 2 #

1 u2
u3
,

=
u1
u1
2
u1
=

u3
1

u1
2

u2
u1

2

(3.11.3)
(3.11.4)
(3.11.5)
(3.11.6)

(3.11.7)

From primitive variables to others


Let W = [, u, p]t = [w1 , w2 , w3 ]t . Then, we have
=
u =
E

z1

z2

z3

w1 ,
w1 w2 ,
w3
w1 2
+
w ,
1
2 2

w1 ,

w1 w2 ,

w1 2
w3

+
w2 .

1 w1
2

(3.11.8)
(3.11.9)
(3.11.10)
(3.11.11)
(3.11.12)
(3.11.13)

3.11. CHANGE OF VARIABLES

71

From parameter vector variables to others


Let Z =

[1, u, H]t = [z1 , z2 , z3 ]t . Then, we have


= z12 ,

(3.11.14)

u = z2 /z1 ,


1
z22
p =
z1 z3
,

(3.11.15)

u
E
H

3.11.2

(3.11.16)

= z1 z2 ,
1 2
z1 z3
+
z ,
=

2 2

(3.11.17)

= z3 /z1 .

(3.11.19)

(3.11.18)

Two Dimensions

From conservative variables to others


Let U = [, u, v, E]t = [u1 , u2 , u3 , u4 ]t . Then we have

u
v
p
z1
z2
z3
z4

= u1 ,
= u2 /u1 ,
= u3 /u1 ,



1 u22 + u23
,
= ( 1) u4
2 u21

u1 ,

= u2 / u 1 ,

= u3 / u 1 ,



u4
1 u22 + u23
u1
=

,
u1
2
u21
=

1 u22 + u23
u4

.
u1
2
u21

(3.11.20)
(3.11.21)
(3.11.22)
(3.11.23)
(3.11.24)
(3.11.25)
(3.11.26)
(3.11.27)

(3.11.28)

From primitive variables to others


Let W = [, u, v, p]t = [w1 , w2 , w3 , w4 ]t . Then, we have
=
u =

w1 ,
w1 w2 ,

(3.11.29)
(3.11.30)

(3.11.31)

w1 w3 ,

w1
w4
w22 + w32 ,
+
1
2

z1
z2

=
=

z3

z4

w1 ,

w1 w2 ,

w1 w3 ,


w1
w4

+
w22 + w32 .

1 w1
2

(3.11.32)
(3.11.33)
(3.11.34)
(3.11.35)
(3.11.36)

72

CHAPTER 3. EULER EQUATIONS

From parameter vector variables to others

Let Z =

[1, u, v, H]t = [z1 , z2 , z3 , z4 ]t . Then, we have

= z12 ,
u = z2 /z1 ,

(3.11.37)
(3.11.38)

(3.11.39)

= z3 /z1 ,


1
z22 + z32
p =
z1 z4
,

u = z1 z2 ,
v = z1 z3 ,

1 2
z1 z4
z2 + z32 ,
+
E =

2
H

3.11.3

= z4 /z1 .

(3.11.40)
(3.11.41)
(3.11.42)
(3.11.43)
(3.11.44)

Three Dimensions

From conservative variables to others

Let U = [, u, v, w, E]t = [u1 , u2 , u3 , u4 , u5 ]t . Then we have

= u1 ,
u = u2 /u1 ,

(3.11.45)
(3.11.46)

v
w

(3.11.47)
(3.11.48)

= u3 /u1 ,
= u4 /u1 ,

p =
z1
z2
z3
z4
z5



1 u22 + u23 + u24
( 1) u5
,
2
u21

=
u1 ,

= u 2 / u1 ,

= u 3 / u1 ,

= u 4 / u1 ,



1 u22 + u23 + u24


u5
,

=
u1
u1
2
u21
=

u5
1 u22 + u23 + u24

.
u1
2
u21

(3.11.49)
(3.11.50)
(3.11.51)
(3.11.52)
(3.11.53)
(3.11.54)

(3.11.55)

3.12. INCOMPRESSIBLE/PSEUDO-COMPRESSIBLE EULER EQUATIONS

73

From primitive variables to others


Let W = [, u, v, w, p]t = [w1 , w2 , w3 , w4 , w5 ]t . Then, we have
= w1 ,
u = w1 w2 ,

(3.11.56)
(3.11.57)

v
w

(3.11.58)
(3.11.59)

= w1 w3 ,
= w1 w4 ,

w5
w1
=
+
w22 + w32 + w42 ,
1
2

z1

z2
z3
z4

=
=
=

z5

(3.11.60)

w1 ,

w1 w2 ,

w1 w3 ,

w1 w4 ,


w1

w5
w22 + w32 + w42 .
+

1 w1
2

(3.11.61)
(3.11.62)
(3.11.63)
(3.11.64)
(3.11.65)

From parameter vector variables to others


Let Z =

[1, u, v, w, H]t = [z1 , z2 , z3 , z4 , z5 ]t . Then, we have


=
u =

z12 ,
z2 /z1 ,

(3.11.66)
(3.11.67)

v
w

z3 /z1 ,
z4 /z1 ,


1
z 2 + z32 + z42
z1 z5 2
,

(3.11.68)
(3.11.69)

u =

z1 z2 ,

(3.11.71)

v
w

=
=

(3.11.72)
(3.11.73)

z1 z3 ,
z1 z4 ,

z1 z5
1 2
+
z2 + z32 + z42 ,

=
=

p =

3.12

z5 /z1 .

(3.11.70)

(3.11.74)
(3.11.75)

Incompressible/Pseudo-Compressible Euler Equations

Incompressible uids are dened as uids with negligible density variation (e.g., water). This is equivalent to negligible
Mach number, and in fact, a ow with a Mach number below 0.3 may be considered as incompressible. If we simplify
the Euler equations by using the constant density assumption, = constant, the results will be called the incompressible
Euler equations.

Conservative Form of the Incompressible Euler Equations:

div (v) = 0,
t (v) + div(vv) + grad p =

0.

(3.12.1)
(3.12.2)

74

CHAPTER 3. EULER EQUATIONS

Primitive Form of the Incompressible Euler Equations:

div v

= 0,

(3.12.3)

Dv
+ grad p
Dt

= 0.

(3.12.4)

I like these incompressible Euler equations because they are closed without the energy equation (which may be solved
a posteriori) and also because there is no time derivative in the continuity equation even for unsteady ows (because
the density is constant). But in fact the latter can be a disadvantage: a simple time-marching method is not applicable
because the whole system cannot be written as a time-dependent system. Now, Chorin proposed a pseudo-compressible
method [16], in which a constant articial speed of sound a is introduced to dene an articial density variable ,
= p/a 2 ,

(3.12.5)

and a time derivative is brought back to the continuity equation in the form,

+ div (v)
t

= 0,

(3.12.6)

i.e.,
P
+ div (a 2 v) = 0,
t

(3.12.7)

where t is an articial time and P = p/ which is called the kinematic pressure. This helps the incompressible Euler
equations recover the hyperbolic character, so that a time-marching method is now directly applicable. The resulting
equations are called the pseudo-compressible Euler equations. This is very interesting. I like it. Note however that
only when reaches a steady state in the articial time, is the original continuity equation (div v = 0) satised. That
is, the solution will be accurate only at a steady state. The value of the articial speed of sound a depends on the
problem and it is usually assigned a value between 0.1 and 10.0. See [16, 54] for details.
The pseudo-compressible Euler equations:
P
+ div (a 2 v) = 0,
t

(3.12.8)

v
+ div(vv + P I) = 0.
t

(3.12.9)

In Cartesian coordinates:
Ut + Fx + Gy + Hz = 0,

P
u

U=
v ,
w

a 2 u
u2 + P
,
F=
uv

uw

a 2 v
uv

G=
v2 + P ,
uw

(3.12.10)

a 2 w

uv

H=
vw .
w2 + P

(3.12.11)

The normal ux:

a 2 qn
qn u + P nx

Fn = Fnx + Gny + Hnz =


q n v + P ny .
qn w + P n z

(3.12.12)

3.12. INCOMPRESSIBLE/PSEUDO-COMPRESSIBLE EULER EQUATIONS


The Jacobians:

C =

An

75

0
0
,
0
u

0
0
,
0
v

a 2
u
,
v
2w

0 a 2 0
1 2u 0
F
=
U 0 v u
0 w 0

0 0 a 2

G 0 v u
=
U 1 0 2v
0 0 w

0 0 0
H
0 w 0
=
U 0 0 w
1 0 0

= Anx + Bny + Cnz

0
a 2 nx
a 2 ny
nx qn + unx
uny
=
ny
vnx
qn + vny
ny
wnx
wny

(3.12.13)

(3.12.14)

(3.12.15)

(3.12.16)

a nz

unz
.

vnz
qn + wnz

The eigenstructure of the Jacobian matrix An :

(3.12.17)

An = Rn n Ln ,
where
n

qn c

0
=

0
0
c=

Rn

Ln

0
0
qn
0

q
qn2 + a 2 ,

(qn + c)c

u (qn + c)nx

=
v (qn + c)ny

w (qn + c)nz

0
qn
0
0

(3.12.18)

0
,

0
qn + c

(3.12.19)

(3.12.20)

mx

my

mz

(qn c)c

u (qn c)nx

,
v (qn c)ny

w (qn c)nz

1
2c2
q
2
c
qm
2
c

(qn c)nx
2c2
qn q
x 2 nx
c
qn qm
m x 2 nx
c

(qn c)ny
2c2
qn q
y 2 ny
c
qn qm
my 2 ny
c

(qn c)nz
2c2
qn q
z 2 nz
c
qn qm
mz 2 nz
c

1
2c2

(qn + c)nx
2c2

(qn + c)ny
2c2

(qn + c)nz
2c2

= [x , y , z ]t , m = [mx , my , mz ]t , n are mutually orthogonal unit vectors, and


q = ux + vy + wz ,

(3.12.21)

qm = umx + vmy + wmz .

(3.12.22)

(3.12.23)

Note that this system is in conservative form and it is equivalent to the primitive form only at a steady state since
the continuity equation has been altered. Note also that the time derivative in the momentum equation is actually
real but has been written as articial above. This is because it is meaningless to be real if the momentum equation is
solved simultaneously with the pseudo-compressible continuity equation.

76

3.13

CHAPTER 3. EULER EQUATIONS

Homentropic/Isothermal Euler Equations

As we have seen in the previous sections, in all dimensions, the Euler equations involve a scalar advection equation
for the entropy s:
st + usx + vsy + wsz = 0,

(3.13.1)

where (u, v, w) is a local ow velocity. This means that the entropy is constant along a streamline. But at the same
time, it means also that the entropy is not necessarily uniform for the entire ow eld and can dier from one streamline
to another. Such a ow is called an isentropic ow. So, the Euler equations basically describe isentropic ows, with
a capability of accounting for non-isentropic features such as shocks by the Rankine-Hugoniot relation (the integral
form). A typical example of the isentropic ow is a ow behind a curved shock where the entropy is constant along
each streamline, but not uniform because its increase across the shock depends on the shock intensity which varies in
space. On the other hand, it would be very nice if the entropy were constant everywhere. It would be the case, for
example, when the entropy is initially constant everywhere and no shock waves are created anywhere. Such a ow is
called a homentropic ow (a special case of an isentropic ow). What is nice about a homentropic ow is that the
Euler equations close without energy equations. For homentropic ows, the adiabatic relation,
p/ = K,

(3.13.2)

is valid everywhere, i.e., K is a global constant (not only along a streamline), say K = p / . Hence, it follows from
the equation of state,
E =

1
K
1
p
+ v2 =
+ v2 ,
1 2
1 2

(3.13.3)

that the total energy can be explicitly computed everywhere after the density and the velocity which are determined
by the continuity and momentum equations, and therefore the energy equation is no longer required. This implies also
that more generally, if the pressure is a function of the density only, i.e., p = p() (such a ow or a process is called
barotropic [13]), the Euler equations will close without energy equations. Then, the speed of sound c is given by
p
(3.13.4)
c = p (),

which becomes, in homentropic ows,

p
K1 .

(3.13.5)

c2 = RT = p/,

(3.13.6)

c=

On the other hand, a ow with = 1 is called an isothermal ow. Here, by (3.1.11), this is equivalent to a gas
with innite degrees of freedom. Also, from (3.1.9) and (3.1.10), we see that the specic heats become innite. This
means that it is extremely dicult to change the temperature of the gas, thus leading to the term isothermal. I like
isothermal ows because in this case also the Euler equations close without an energy equation. In particular, the
speed of sound is given by

which is now a constant. Isothermal ows are mysterious because = 1 is articial: there are no such gases in reality.
In either homentropic or isothermal ows, the Euler equations close without energy equations, and the pressure and
the speed of sound are given by

p
p = K , c = K1 ,
for homentropic ows,
(3.13.7)

p = c2 ,
c = RT = constant,
for isothermal ows.
In what follows, I write the Euler equations without energy equations. Note that p and c in these equations are given
by the above formulas, depending on the type of ows.

3.13.1

1D Homentropic/Isothermal Euler Equations


Ut + Fx = 0,

where
U =

, F=

(3.13.8)


u
p + u2

(3.13.9)

3.13. HOMENTROPIC/ISOTHERMAL EULER EQUATIONS

77

Jacobian
F
=
U

A =

0
c2 u2

1
2u

(3.13.10)

Eigenstructure
A = RL,

(3.13.11)

where
=

R=

"

uc u+c

"

uc

u+c

u+c

2c
L =
uc

2c

(3.13.12)

1
2c
,
1
2c

1
d
2
LdU =
1
d +
2

du

2c
.

du
2c

(3.13.13)

Of course, this system is hyperbolic only if c is real, which is true if p () > 0. Hence, it then follows from (3.13.7)
that it is hyperbolic for both homentropic and isothermal ows.

3.13.2

2D Homentropic/Isothermal Euler Equations


Ut + Fx + Gy = 0,

(3.13.14)

where

u
v
U = u , F = p + u2 , G = uv .
v
uv
p + v 2

(3.13.15)

Jacobians

0
F
= c2 u2
A=
U
uv

An

where

1 0
0
G
2u 0 , B =
= uv
U
v u
c2 v 2

2
= Anx + Bny =
c nx uqn
c2 ny vqn
qn

0
v
0

1
u ,
2v

nx

ny

qn + unx

uny

vnx

qn + vny

= unx + vny .

(3.13.16)

(3.13.17)

(3.13.18)

Eigenstructure
An = Rn n Ln ,

(3.13.19)

where

qn c 0
0
qn
n =
0
0

0
,
0
qn + c

(3.13.20)

78

CHAPTER 3. EULER EQUATIONS

Rn =
u c nx
v c ny

0
ny
nx

c+q
n
2c

q
Ln =

cq

u + c nx
,
v + c ny

3.13.3

ny
2c
nx

nx
2c

2c

where
q

nx
2c
ny

ny
2c

= uny + vnx .

(3.13.21)

(3.13.22)

3D Homentropic/Isothermal Euler Equations


Ut + Fx + Gy + Hz = 0,

(3.13.23)

where

u
u
p + u2

U=
v , F = uv
w
uw

w
v
wu
vu

G=
p + v 2 , H = wv
vw
p + w2

(3.13.24)

Jacobians

0
c2 u2
F

=
U uv
uw

0
G
vu
=
U c2 v 2
vw

0
H
wu
=
U wv
c2 w2

A =

B =

C =

An

Anx + Bny + Cnz

0
nx
2
c nx uqn unx + qn

c2 ny vqn
vnx

c2 nz wqn

1 0
2u 0
v u
w 0
0
v
0
0
0
w
0
0

1
u
2v
w
0
0
w
0

0
0
,
0
u

0
0
,
0
v

1
u
,
v
2w

ny

nz

uny

unz

vny + qn

vnz

wny

wnz + qn

wnx

(3.13.25)

(3.13.26)

(3.13.27)

(3.13.28)

(3.13.29)

Eigenstructure
An = Rn n Ln ,

(3.13.30)

where

qn c

0
n =

0
0

0
qn
0
0

0
0
qn
0

0
,

0
qn + c

(3.13.31)

3.14. LINEAR ACOUSTICS EQUATIONS (LINEARIZED EULER EQUATIONS)

u c nx

Rn =
v c ny

w c nz

mx

my

mz

c+q
n
2c

Ln =
qm

c qn
2c

u + c nx

,
v + c nx

w + c ny

nx
2c
x

79
ny
2c
y

mx

my

mz

nx
2c

ny
2c

nz
2c

where = [x , y , z ]t , m = [mx , my , mz ]t , and n are mutually orthogonal unit vectors, and


q = ux + vy + wz ,

3.14

nz
2c
z

qm = umx + vmy + wmz .

(3.13.32)

(3.13.33)

Linear Acoustics Equations (Linearized Euler Equations)

Decompose variables as follows:


= 0 + ,

(3.14.1)

p = p0 + p ,
(u, v, w) = (u0 , v0 , w0 ) + (u , v , w ),

(3.14.2)
(3.14.3)

where the variables with the subscript 0 are uniform stream values and those with a prime are small perturbations.
Substitute these into the Euler equations, and make approximations (ignoring products of perturbations), then we
obtain the so-called linear acoustics equations.
Flows with small perturbations can be considered as homentropic (because shock waves will not appear). Then,
the equation of state can be written as
p = P (),

(3.14.4)

e.g., p = K , from which we get


p =


dP
= c20 ,
d =0

(3.14.5)

where c0 is the speed of sound which is a constant. This will close the linear acoustics equations. Note that
s

dP
c0 =
,
(3.14.6)
d
=0

and therefore

dP
d

must be positive. Dont worry. It is positive in homentropic ows:


q
c0 = K1
=
0

s  
r
p0
p0
> 0,
1
=

0
0
0

(3.14.7)

for physically realistic pressure and density.


So, basically, the linear acoustics equations are valid only for ows with small perturbations, such as a sound wave
propagation or a ow over a slender body. The governing equations are now linear, and therefore nonlinear waves such
as shocks or expansions all reduce to linear waves. Also, simple wave solutions can be superposed to produce more
general solutions. This can be very useful. I like it.

3.14.1

1D Linear Acoustics Equations

W t + Aw W x = 0,

(3.14.8)

where
W

p
u

u0
1/0

0 c20
u0

(3.14.9)

80

CHAPTER 3. EULER EQUATIONS

Eigenstructure

Aw = Rw Lw ,

(3.14.10)

(3.14.11)

where
w

Rw

3.14.2

u0 c
0

0 c20

0 c20

c0

c0

0
u0 + c

Lw

1
20 c20
=

1
20 c20

1
2c0
1
2c0

(3.14.12)

2D Linear Acoustics Equations

W t + Aw W x + Bw W y = 0,

(3.14.13)

where
W

p
= u ,
v

Aw

0
0 ,
u0

0 c20
u0
0

u0
= 1/0
0

v0
Bw = 0
1/0

0
v0
0

0 c20
0 .
v0

(3.14.14)

Of course, these matrices are not Jacobians (see Subsection 3.4.2).


Eigenstructure

Awn = Rwn n Lwn ,

(3.14.15)

where

qn 0

Awn = nx /0

ny /0

wn

Rwn

0 c20

= c0 nx
c0 ny

where (x , y ) = (ny , nx ).

0
x
y

0 c20 nx

0 c20 ny

qn 0

qn 0

qn 0 c

0
0

0 c20

c0 nx ,
c0 ny

0
qn 0
0

(3.14.16)

0
,
0
qn 0 + c

Lwn

1
20 c20

20 c20

(3.14.17)

nx
2c0

x
nx
2c0

ny
2c0

y
,

ny

2c0

(3.14.18)

3.14. LINEAR ACOUSTICS EQUATIONS (LINEARIZED EULER EQUATIONS)

3.14.3

81

3D Linear Acoustics Equations

W t + Aw W x + Bw W y + Cw W z = 0,

(3.14.19)

where

v0

0
Bw =
1/0
0

p
u
,
v
w

u0
1/0
=
0
0

0
0
,
0
v0

0 c20
0
v0
0

0
v0
0
0

Aw

0 c20
u0
0
0

w0

0
Cw =
0
1/0

0
0
,
0
u0

0
0
u0
0

0
w0
0
0

0
0
w0
0

0 c20
0
.
0
w0

(3.14.20)

(3.14.21)

Eigenstructure

Awn = Rwn n Lwn ,

(3.14.22)

where

qn 0

n /
x 0
=

ny /0

Awn

0 c20 nx

0 c20 ny

0 c20 nz

qn 0

qn 0

qn 0

nz /0

qn 0 c

=
0
0

wn

Rwn

Lwn

0 c20

c0 nx
=
c n
0 y

c0 nz

1
20 c20

=
0

1
20 c20

nx
2c0

0
0

qn 0
0
0

qn 0
0

mx

my

mz

ny
2c0

mx

my

nx
2c0

ny
2c0

0
,

0
qn 0 + c
0 c20

c0 nx
,
c0 ny

c 0 nz

nz
2c0

,
mz

nz

(3.14.23)

(3.14.24)

(3.14.25)

(3.14.26)

2c0

where = [x , y , z ]t , m = [mx , my , mz ]t , and n are mutually orthogonal unit vectors, and


q = ux + vy + wz ,

qm = umx + vmy + wmz .

(3.14.27)

82

3.15

CHAPTER 3. EULER EQUATIONS

Quasi-1D Euler Equations

The quasi-1D Euler system is a model for a nozzle ow. The nozzle itself is two-dimensional, i.e., its section area A(x)
varies along the axial direction x, but ow variables are assumed to depend only on x. Here is the quasi-1D Euler
system:
U F
+
= S,
t
x

(3.15.1)

where

A
U = uA ,
EA

uA
,
u2 A
F=
u(E + p/)A

0
p
,
S = A x
0

(3.15.2)

and E = e + u2 /2. I like this system because it can be written in the following form (A(x) only in the source term),

1
DA
u ,
, S =
u2 + p
U = u , F =
(3.15.3)
A Dt
E
u(E + p/)
E + p
and also in the following form (no pressure gradient in the source term),

0
A
uA
.
U = uA , F = (u2 + p)A , S = p A
x
EA
u(E + p/)A
0

(3.15.4)

See [42] for derivation, and [106] for the case that A changes in time. A really nice thing about the quasi-1D Euler
system is that if I set A , then it is in the same form as the 1D Euler system (except for the source term), and
therefore the eigenstructure is the same as the 1D Euler system (which we already know). This is very nice.
On the other hand, if I set A(x) = 2x, then I obtain the Euler equations for cylindrically symmetric wave motion,
i.e., the Euler equations in cylindrical coordinates (r, , z) with no variations in the z direction. For example, I obtain
from (3.15.3),
U F
+
= S,
t
r

(3.15.5)

where

U = u ,
E

u
,
u2 + p
F=
u(E + p/)

u
S=
r

u ,
E + p

(3.15.6)

and u is now the velocity in the radial direction. Note also that I have replaced x by r to emphasize the cylindrical
symmetry. Similarly, if I set A(x) = 4x2 , then I obtain the Euler equations for spherically symmetric wave motion:

u
, S = 2u u ,
u2 + p
U = u , F =
(3.15.7)
r
E + p
E
u(E + p/)

This is very interesting, isnt it?

3.16

2D Steady Euler Equations

The 2D steady Euler equations are obtained by removing the time derivative from the 2D Euler equations (3.5.18),
Aw Wx + Bw Wy = 0,

(3.16.1)

where W = [, u, v, p]t . Since Aw is invertible (for u2 6= c2 ), we can write this as


Wx + (Aw )1 Bw Wy = 0,

(3.16.2)

3.16. 2D STEADY EULER EQUATIONS


where

83

(Aw )1 Bw = 2

u c2

uv

c2

v
u
v

v 2
(u c2 )
u

u2 c2
u

vc2

uc2

uv

v
2
u (u

c2 )

(3.16.3)

Therefore, x-axis may be time-like (depending on ow directions). The eigenvalues and eigenvectors of (Aw )1 Bw are
given by
v
1,2 =
,
(3.16.4)
u
p
uv c q 2 c2
v u
3 =
=
,
(3.16.5)
u2 c2
u + v
p
uv + c q 2 c2
u + v
4 =
,
(3.16.6)
=
2
2
u c
u v

Rw =

u
q 2

u + v
v u
+ v)

M 2 (u

v
q 2

1
M2

c2
u + v

u v

v + u

M (u v)
,

2
M

(3.16.7)

u v

1
c2

u
v
1

,
(3.16.8)
u
1
v

(u
+
v)

(u
+
v)
2 (u + v)
2
2

2c
2c
2c

u
1
v
(u v)
(u v)
2 (u v)
2
2
2c
2c
2c
p
p
p

where = M 2 1 = q 2 /c2 1 = (u2 + v 2 )/c2 1 and c = p/. Clearly, the character of the 2D Steady
Euler Equations depends on the Mach number:

Lw =

Supersonic M > 1
Subsonic M < 1

Real eigenvalues
Complex eigenvalues

Hyperbolic.

Elliptic.

(3.16.9)

Of course, it can be mixed: hyperbolic (supersonic) in some region while elliptic (subsonic) in other regions. In
particular, I like a supersonic ow because then the system (3.16.2) can be fully diagonalized, with the characteristic
variables dened by V = Lw W:
v1
u v1
+
x
v y

0,

(3.16.10)

v2
u v2
+
x
v y

0,

(3.16.11)

v u v3
v3
+
x
u + v y

0,

(3.16.12)

u + v v4
v4
+
x
u v y

0,

(3.16.13)

84

CHAPTER 3. EULER EQUATIONS

where

v1

p
c2
(uu + vv) + p


v2


V =
=
v u + v { (uv vu) p}

2
3

2c
u v
{ (uv vu) + p}
v4
2c2

(3.16.14)

Note that the eigenvalues represent the slope dy/dx of the characteristics. In a vector form, they can be written as
~1,2 = (u, v),

~3 = (u + v, v u),

~4 = (u v, v + u).

(3.16.15)

Then, we nd
div ~3 = div(v) + ,

div ~4 = div(v) ,

(3.16.16)

where = vx uy . The left hand side (the divergence of the characteristic speed vector) represents the divergence/convergence of characteristics, implying the existence of expansion/shock waves. I like these relations very
much because they indicate connections between the existence of the nonlinear waves and the physical quantities such
as the vorticity and divergence of the velocity eld. Interestingly, it is not just the vorticity or the divergence but their
combinations (the sum or the dierence) that tell us whether a shock or expansion wave exists (and also of which
family it is). So, if the sum div(v) + is negative/positive, there is a shock/expansion from 3-family; if the dierence
div(v) is negative/positive, there is a shock/expansion from 4-family. Or you might want to combine them into
one,

2
2 
2
(3.16.17)
div ~3 + div ~4 = {div(v)} + 2 .

This can also be a useful scalar (non-negative) quantity for detecting nonlinear waves (a shocks and/or expansions of
any family). Actually, these relations were successfully used for adaptive Euler schemes in [72].

3.17

Bernoullis Equation

Bernoullis equation is basically an integral of the Euler equation (the momentum equation),

v
+ (gradv)v + grad p
t

= 0,

(3.17.1)

which can be written, by (1.7.5), as


v
+ grad

v2
2

v curlv + grad p

= 0.

(3.17.2)

This can be integrated for various ows; thus there are various forms of Bernoullis equation.
Unsteady, Incompressible, Irrotational Flows
For incompressible irrotational ows, we have = constant and curlv = 0. The latter implies the existence of the
velocity potential : v = grad. Then, the Euler equation (3.17.2) can be written as


v2
p
grad
= 0.
(3.17.3)
+
+
t
2

This means that the quantity in the parenthesis is spatially constant but may change in time. We therefore obtain
p
v2
+
+ = f (t),
t
2

(3.17.4)

where f (t) is an arbitrary function of time. This is called the unsteady Bernoullis equation and its steady version,
v2 /2 + p/ = constant, is the famous Bernoullis equation obtained by Daniel Bernoulli.

3.17. BERNOULLIS EQUATION

85

Steady, Incompressible, Rotational Flows


For steady incompressible rotational ows, the Euler equation (3.17.2) becomes
 2

v
p
grad
v curlv = 0.
+
2

(3.17.5)

Because of the second term, there can be no spatially constant quantities. However, noting that the vector (v curlv)
is perpendicular to the velocity vector v, we take the dot product of this equation and the velocity,

 2
p
v
v (v curlv) = 0,
(3.17.6)
+
v grad
2

so that the second term vanishes and we obtain


v grad

v2
p
+
2

0.

(3.17.7)

This shows that we do not have a global constant quantity but a streamwise constant quantity:
v2
p
+ = constant,
2

(3.17.8)

along a streamline, i.e., the stagnation pressure p0 = v2 /2 + p takes dierent constant values for dierent streamlines.
To see how it changes across streamlines, we take the dot product of (3.17.5) and a unit vector n in the direction
normal to the streamline,
 2

v
p
n grad
n (v curlv) = 0,
(3.17.9)
+
2

which gives the spatial rate of change of the stagnation pressure normal to the streamline,


v2

p0
p+
= n (v curlv) .
=
n
n
2

(3.17.10)

This shows that the vorticity (curlv) is the source of the spatial variation of p0 . However, it is also clear that in order
for p0 to be constant everywhere, the vorticity does not have to be zero, or equivalently the ow does not have to be
irrotational. If the ow satises
v curlv = 0,

(3.17.11)

everywhere, meaning that it is a Beltrami ow (see Section 1.5), p0 will be a global constant. This is nice. I also like
two-dimensional ows in which we always have v curlv, and so by choosing n in the same direction as (v curlv),
we can write



v2
p+
= q,
(3.17.12)
n
2
q is the ow speed and is the magnitude of the vorticity.
Unsteady, Compressible, Irrotational Flows
For compressible ows, the density is not constant. This makes it non-trivial to integrate the pressure gradient term
1
grad p in the Euler equation. But it can still be integrated if we can express it as a gradient of some quantity. This
is possible for an adiabatic ow of a calorically perfect gas:
R
1
dp
= dh T ds = dh =
dT =
d(a2 ),

1
1

(3.17.13)

where s is the entropy which is uniform for adiabatic ows and a is the speed of sound. This gives
1
1
grad p =
grad (a2 ).

(3.17.14)

86

CHAPTER 3. EULER EQUATIONS

Now, introducing the velocity potential , we can write the the Euler equation (3.17.2) as


v2
a2
grad
= 0.
+
+
t
2
1

(3.17.15)

Therefore we obtain the Bernoullis equation for unsteady compressible irrotational ows:
v2
a2
+
+
t
2
1

g(t),

(3.17.16)

where g(t) is an arbitrary function of time.


Steady, Compressible, Rotational Flows
In the same way as in the previous case, we can derive Bernoullis equations for steady compressible rotational ows.
a2
Basically, we just need to replace p/ by 1
. Along a streamline, we have
a2
v2
+
= constant.
2
1

(3.17.17)

Normal to the streamline, we have

v2
a2
+
2
1

= n (v curlv) ,

(3.17.18)

where n is a unit vector normal to the streamline.

3.18

Gas Dynamics Equation (Nonlinear Potential Equation)

Assume that the vorticity is everywhere zero: curl v = 0. Then, we can dene the velocity potential as
v = grad ,

(3.18.1)

and substitute this into the continuity equation to get the so-called potential equation:
div ( grad ) = 0.

(3.18.2)

In Cartesian coordinates, the potential is dened as


u = x ,

v = y ,

w = z ,

(3.18.3)

and the potential equation becomes


(x )x + (y )y + (z )z = 0.

(3.18.4)

This nonlinear equation requires an additional equation for the density which can be obtained from the energy equation
(Bernoullis equation) for an adiabatic ow of a calorically perfect gas (see Section 3.17):

where a =

u2 + v 2 + w 2
a2
+
= H = constant,
1
2

(3.18.5)

2
2
u2 + v 2 + w 2
a2
u2 + v
+ w
a2
+
= +
,
1
2
1
2

(3.18.6)

p
p/. The density equation is then derived from

and the adiabatic relation, p/ = constant, as


 2
1/(1)

u + v 2 + w2
1 2

1
= 1
.
M
2 + w2

2
u2 + v

(3.18.7)

3.19. LINEAR POTENTIAL EQUATION

87

This formulation is valid for a steady adiabatic irrotational ow. It is also worth noting that in a steady adiabatic
irrotational ow the entropy is constant everywhere, i.e., the ow is homentropic (see Section 3.21). It follows then
that it is not valid for ows with shocks. But this conservative form is still approximately valid if the Mach number is
close to 1; it has actually been used successfully for various such ows. See [37, 103] for more details.
In two dimensions, the nonlinear potential ow can be described by the following Cauchy-Riemann type system:
(u) (v)
+
x
y
v
u

x y

= 0,

(3.18.8)

= 0.

(3.18.9)

See [88] for numerical methods for solving this system. I like the Cauchy-Riemann system, but in this case I like the
scalar potential equation (3.18.14) better simply because it is a scalar equation. It is so much easier to develop a
numerical scheme for a scalar equation than for a system.
I also like the potential equation written in a nonconservative form. To derive it, expand the continuity equation,
div v + v grad =

0,

(3.18.10)

and take a dot product of the velocity vector and the momentum equation,
v [(gradv)v] +

a2
v grad =

0.

(3.18.11)

where the pressure gradient has been replaced by the density gradient by using the relation, grad p = a2 grad . Now
it is clear that this and the continuity equation can be combined to give
div v

1
v [(gradv)v] = 0.
a2

(3.18.12)

This equation is known as the gas dynamics equation. I like it very much, especially the name, Gas Dynamics Equation.
It sounds exciting. In Cartesian coordinates, the gas dynamics equation is written as






v2
w2
uv
vw
wu
u2
1 2 ux + 1 2 vy + 1 2 wz 2 (uy + vx ) 2 (vz + wy ) 2 (wx + uz ) = 0. (3.18.13)
a
a
a
a
a
a
Of course, this cannot be solved for the three velocity components (u, v, w) because it is a scalar equation. But if the
ow is irrotational and thus the velocity is given by the velocity potential : u = x , v = y , w = z , then we can
write the gas dynamics equation in terms of :
!




2y
2z
2x y
2y z
2z x
2x
xy
yz
zx = 0.
(3.18.14)
1 2 xx + 1 2 yy + 1 2 zz
a
a
a
a2
a2
a2
This is a scalar equation for , and so can be solved for with (3.18.7). This equation is generally called the full
potential equation, not the gas dynamics equation. I prefer to call it the gas dynamics equation, but it does make
sense to call it so.

3.19

Linear Potential Equation

I dont like nonlinear equations. So, I will linearize the nonlinear potential equation as follows. In two dimensions, a
ow over a slender body with the free stream velocity U in x direction generates perturbations u , v ( u , v << U ):
u = U + u ,

v = v .

(3.19.1)

Then, introducing the velocity potential and its perturbation as


u = x = U + x ,

v = y = y ,

(3.19.2)

we nd from (3.18.14) that, for two-dimensional ows,


2
2
( + 1)
(1 M
)xx + yy = M

x xx
.
U

(3.19.3)

88

CHAPTER 3. EULER EQUATIONS

Note that the right hand side must be retained for transonic ows M 1 to keep the equation two-dimensional:
2
the x-derivative term (1 M
)xx will be very small for transonic ows and the equation will become nearly onedimensional without the right hand side. However, the right hand side can be ignored for subsonic and supersonic
ows, resulting in
2
(1 M
)xx + yy = 0.

(3.19.4)

This is the two-dimensional linear potential equation. In three dimensions, we introduce a perturbation velocity w in
z direction as
w = w = z = z << U ,

(3.19.5)

and obtain, from (3.18.14), the following three-dimensional linear potential equation:
2
)xx + yy + zz = 0.
(1 M

(3.19.6)

In either two or three dimensions, once the perturbation potential is determined, the pressure can be computed by
Cp =



2
p p
2u
v 2 + w2
2
2 u
(p/p

1)
=

+
(1

M
)
+
.
=

1
2
2
2
2
M
U
U
U
2 U

(3.19.7)

I like the linear potential equation because it can be solved easily for small Mach number (it is almost the Laplace
equation), but not so much for a large Mach number (it is now hyperbolic. See Section 1.14 for classication). See
[39, 61] for more details on the linearized potential equations, and [37, 103] for numerical methods for solving them.

3.20

Small Perturbation Equations

We can write the linear potential equation in terms of the velocity components, which are called the small perturbation
equations (or the Prandtl-Glauert equations). For supersonic ows (M > 1), these equations are written as
2 ux vy
vx uy

=
=

0,
0,

(3.20.1)
(3.20.2)

2
where 2 = M
1 > 0. It can be written as a vector form:

wx + Awy = 0,

(3.20.3)

where
w=

u
v

A=

1
2 .
0

(3.20.4)

Eigenstructure
A = RL,

(3.20.5)

where

1

=

,
1

1
2
R=
1

1
2
,
1
2

L=

(3.20.6)

3.21. CROCCOS EQUATION

89

Characteristic Form
Lwx + LAwy

0,

(3.20.7)

(Lw)x + (Lw)y

0,

(3.20.8)

that is,

1
(u v) +
(u v) = 0,
x
y

(3.20.9)

1
(u + v)
(u + v) = 0.
x
y

(3.20.10)

This shows that u v is constant along dy/dx = 1/ while u + v is constant along dy/dx = 1/.
Note that this
diagonalization is valid only for supersonic ows (M > 1). In particular, I like a ow with M = 2 because then
= 1 and everything looks very simple.
For subsonic ows (M < 1), we have
2
) ux + vy
(1 M
vx uy

=
=

0,
0.

(3.20.11)
(3.20.12)

Then, the eigenvalues become complex, and therefore the system is elliptic. As for the Mach number, I like to set
M = 0 (incompressible ows) because the system reduces to the Cauchy-Riemann system. As a matter of fact, I
would use the Prandtl-Glauert transformation:
p
p
2 ,
2 u,
U = 1 M
V = v,
(3.20.13)
= x, = y 1 M

so that the system, (3.20.11) and (3.20.12), becomes the Cauchy-Riemann system,
U + V

0,

(3.20.14)

V U

0,

(3.20.15)

for any Mach number (< 1). This is very nice. Any subsonic small perturbation ow can be transformed into an
incompressible ow. See [53, 61] for more details on the Prandtl-Glauert transformation.

3.21

Croccos Equation

Croccos equation (or Croccos theorem) is a modied form of the momentum equation. Consider the momentum
equation written in the primitive form,
v
1
+ (gradv)v + grad p =
t

0.

(3.21.1)

Using the following relations,




(gradv)v

= grad

T ds

= dh

= h+

v2
2

v curl v,

1
grad p,

v2
,
2

(3.21.2)
(3.21.3)
(3.21.4)

the momentum equation can be written as


v
v = T grad s grad H,
t

(3.21.5)

90

CHAPTER 3. EULER EQUATIONS

where = curl v. This is Croccos equation. It is a quite interesting equation. For example, we can use it to show
that the entropy is constant along a streamline for a steady adiabatic ow. To do so, rst, note that for a steady
adiabatic ow, the equation for the total enthalpy, (3.3.7),
DH
1 p
=
,
Dt
t

(3.21.6)

v grad H = 0,

(3.21.7)

reduces to

which implies, incidentally, that the total enthalpy is preserved along a streamline. Now, take a dot product of the
velocity and Croccos equation to get
v (v ) =

v grad H T v grad s.

(3.21.8)

Observe that the left hand side vanishes because v (v ), and also that the rst term on the right vanishes by
(3.21.7). Then, we are left with
0 =

v grad s.

(3.21.9)

This indicates that the entropy is constant along a streamline. This completes the proof for constant entropy along a
streamline in a steady adiabatic ow. On the other hand, if we assume that = 0 and H is uniform, then it follows
immediately from (3.21.5) that the entropy is constant everywhere, i.e., the ow is homentropic. That is, zero vorticity
implies uniform entropy if H is uniform. Basically, Croccos equation is another form of the Euler equation (i.e., the
momentum equation). So, it is perfectly possible to replace the momentum equation by Croccos equation in the Euler
system (then we would have to call it the Crocco system). I like Croccos equation. It is a quite insightful equation.

3.22

Kelvins Circulation Theorem

The circulation is dened for a closed curve C by


=

v dl,

(3.22.1)

where dl is an element taken counterclockwise along C, and it is related to the vorticity = curl v by
ZZ
ZZ
I
n dS,
curl v n dS =
v dl =
=
C

(3.22.2)

i.e., the circulation around C is equal to the in/out-ow of the vorticity across any surface S whose boundary is C.
The rate of change of the circulation of a closed curve C (moving with the uid) can be obtained easily from the
primitive form of the Euler equations:
I
grad p
D
=
dl.
(3.22.3)
Dt

C
If derived from the Navier-Stokes equations, by the way, it will have a contribution from the viscous term on the right
hand side:
I
I
1
grad p
D
=
div dl
dl.
(3.22.4)
Dt

C
C
where is the viscous stress tensor (4.2.1). For inviscid incompressible ows, is constant and the right hand side of
(3.22.3) vanishes:
I
I
I
grad p
1
1
dl =
grad p dl =
dp = 0.
(3.22.5)

C
C
C
Therefore, we have from (3.22.3)
D
= 0,
Dt

(3.22.6)

3.23. SHALLOW-WATER (OR SAINT VENANT) EQUATIONS

91

z0 (x) x

O
Figure 3.23.1: One-dimensional free surface ow.

i.e., the circulation is conserved. This is interesting. Even for compressible ows, where (3.22.3) can be written as
I
I
I
grad p
D
T grad s dl,
(3.22.7)
=
dl = (grad h T grad ) dl =
Dt

C
C
C
if the entropy is constant, then again the circulation is conserved:
D
= 0.
Dt

(3.22.8)

This shows that the circulation around a closed curve remains constant at all times as the curve moves with the uid.
This is called Kelvins circulation theorem. It is nice. I like it.

3.23

Shallow-Water (or Saint Venant) Equations

Like a smooth water surface, when the vertical (z-direction) velocity and the vertical displacement of the surface is
suciently small (compared with the frequency of water waves; see Figure 3.23.1), the water depth h and the velocity
v = [u, v]t are governed by the following shallow-water equations (also called the Saint Venant equations):
t h + div(hv) = 0,
2

t (hv) + div(hvv) + grad(gh /2) =

(3.23.1)

gh grad z0 (x, y),

(3.23.2)

where g = 9.8m/s2 and z0 (x, y) is a function that denes the shape of the bottom. Note that all quantities are
independent of z. It is interesting that the shallow-water equations can be derived from the Euler equations: add
a gravitational force term in the z-component, ignore the z-velocity and any variation in z, and then integrate all
equations in z from the bottom to the water surface. In doing so, we obtain from the z-momentum equation,
pz = g

p = p0 + g(h + z0 z).

(3.23.3)

This is a familiar relationship, called the hydrostatic pressure relation. Conversely, if we write p = 12 gh2 , rewrite h as
, and assume z0 = constant, then, the shallow-water equations become
t + div(v) = 0,
t (v) + div(vv) + gradp =

0,

(3.23.4)
(3.23.5)

92

CHAPTER 3. EULER EQUATIONS

which are nothing but


the Euler equations without the energy equation. In fact, if we look at the eigenstructure, we
nd that the quantity gh corresponds to the speed of sound:
p
p
p
gh = 2p/h = 2p/.
(3.23.6)

This implies that we have = 2. Therefore, the Euler equations above are in the form of the homentropic/isothermal
Euler equations with = 2. Basically, the shallow-water equations are a subset of the Euler equations. This is very
interesting. I like it.
Incidentally, it is easy to derive a conservation form for = gh, but it requires dierentiations and therefore it is
not really valid for ows with shocks. See [58] for details.

3.23.1

1D Shallow-Water Equations
ht + (hu)x

1
(hu)t + hu2 + gh2
2
x


= 0,

(3.23.7)

= gh(z0 )x ,

(3.23.8)

or in the vector form


Ut + Fx = S,

(3.23.9)

where
U =

h
hu

, F=

hu
hu2 + 12 gh2

, S=

0
gh(z0 )x

(3.23.10)

Jacobian
F
=
U

0
gh u2

1
2u

(3.23.11)

Eigenstructure
A = RL,

(3.23.12)

where
=

L =

3.23.2

gh

u+

u + gh

2 gh

u gh

2 gh

gh

1

2 gh

2 gh

R=

1
u

gh u +

1
dh
2
LdU =
1
dh +
2

gh

h
du
2 gh
h
du
2 gh

(3.23.13)

(3.23.14)

2D Shallow-Water Equations
ht + (hu)x + (hv)y


1
(hu)t + hu + gh2
2
2

0,

(3.23.15)

= gh(z0 )x ,

(3.23.16)



1 2
2
(hv)t + (huv)x + hv + gh
= gh(z0 )y .
2

(3.23.17)

+ (huv)y

3.23. SHALLOW-WATER (OR SAINT VENANT) EQUATIONS

93

or in the vector form


Ut + Fx + Gy = S,

(3.23.18)

where

h
hu
hv
0
U = hu , F = p + hu2 , G = huv , S = gh(z0 )x .
hv
huv
p + hv 2
gh(z0 )y

(3.23.19)

Jacobians

1 0
0
G
2u 0 , B =
uv
=
U
v u
gh v 2

0
F
A=
= gh u2
U
uv

An

where

= Anx + Bny =
ghnx uqn
ghny vqn
qn

0
v
0

1
u ,
2v

nx

ny

qn + unx

uny

vnx

qn + vny

= unx + vny .

(3.23.20)

(3.23.21)

(3.23.22)

Eigenstructure
An = Rn n Ln ,

(3.23.23)

where

qn gh
0
n =
0

Rn =
u gh nx

v gh ny

gh + qn

2 gh
q

Ln =

gh qn

2 gh

0
qn
0
0
x
y

0
,
0
qn + gh

u + gh nx
,

v + gh ny

nx

2 gh
x

ny

2 gh
y

n
x
2 gh

n
y
2 gh

(3.23.24)

(3.23.25)

(3.23.26)

where
q

3.23.3

= ux + vy ,

(3.23.27)

[x , y ] = [ny , nx ].

(3.23.28)

3D Shallow-Water Equations

Unfortunately, I cannot write them because I dont know them. I would denitely like them if the shallow-water
equations existed in three dimensions.

Chapter 4

Navier-Stokes Equations
4.1

Navier-Stokes Equations

I like a little bit more realistic model for describing a uid ow than the Euler equations. So, I will add some missing
pieces to the Euler equations: the viscous stress tensor and the heat ux vector q. Yes, these are the Navier-Stokes
equations.
Conservative form of the Navier-Stokes equations
t + div(v)
t (v) + div(vv)
t (E) + div(vH)

= 0,

(4.1.1)

= div ,

(4.1.2)

= div ( v) div q,

(4.1.3)

where is the total surface stress tensor which consists of the static pressure p and the viscous stress tensor ,
= pI + ,

(4.1.4)

where I is the identity matrix.


Primitive form of the Navier-Stokes equations
D
+ div v
Dt

0,

(4.1.5)

Dv
+ grad p = div ,
Dt

Dp
+ p div v
Dt

( 1) [ grad v div q] .

(4.1.6)
(4.1.7)

The continuity equation (4.1.5) can be derived from the conservative form (4.1.1) simply by expanding the divergence
term. The momentum equation (4.1.6) can be derived from the conservative form (4.1.2) by expanding the left hand
side and substituting the continuity equation (4.1.5). Note also that
div = div (pI) + div = grad p + div .

(4.1.8)

To derive the pressure equation (4.1.7), rst derive the kinetic energy equation by taking the dot product of the velocity
vector and the momentum equation (4.1.6),
 
D v2

+ (grad p) v = grad v + div ( v),


(4.1.9)
Dt 2
95

96

CHAPTER 4. NAVIER-STOKES EQUATIONS

then subtract the kinetic equation from the energy equation (4.1.3), and nally use the equation of state for a perfect
gas, i.e., p = ( 1)e, and the continuity equation to convert the time derivative of the internal energy into that of
the pressure.
Which form do you like? I think I like the conservative form better because conservation is a very important property
(to ensure a correct shock speed in particular), and it is easier to develop a conservative scheme by directly discretizing
the conservative form.

4.2

Viscous Stress and Heat Fluxes

In Newtonian uids (e.g., the sea-level air or water), the viscous stress tensor depends linearly on the strain and it
is given by


= (div v)I + grad v + (grad v)t ,
(4.2.1)
where grad v + (grad v)t is the rate of strain tensor (also called the deformation tensor), is the viscosity coecient,
and is the second viscosity coecient. The bulk viscosity B dened by
2
B = + ,
3

(4.2.2)

2
= .
3

(4.2.3)

is usually very small, and therefore we may set

This is called Stokes hypothesis. I like this because it is a reasonable assumption. Consider the average normal viscous
stress P (also called the mean pressure),
P

=
=
=

ii
3

(4.2.4)

1
2
3 div v + div v
3
3


2
p + div v
3
p B div v,
p

(4.2.5)
(4.2.6)
(4.2.7)

where it has been dened as negative because ii is negative when acting onto the uid element. Basically, this gives,
independent of coordinates, an average normal force acting on a uid element; such a quantity is generally considered
as the thermodynamic pressure. Then, it is a state variable. That is, under the assumption of the thermodynamic
equilibrium, it should not depend on the rate of the volume change, div v. So, it would be reasonable to accept Stokes
hypothesis B = 0, so that we have a reasonable relation, P = p. Of course, this is only a hypothesis, but it works
very well for a wide range of conditions. See [90, 111] for more details. Note that the viscosity coecient generally
depends on the temperature. On the other hand, the heat ux is given by Fouriers law,
q = grad T,

(4.2.8)

where is the heat conductivity which is a function of the temperature. The negative sign is put to dene q as positive
when the temperature gradient is negative. That is, the heat ows from higher to lower temperature. In fact, this is
the basic assumption (or observation) of this empirical law. I think that it is indeed very reasonable.
I like both Newtonian uids and Fouriers law for the same reason: both the viscous stress and heat ux depend
linearly on the derivatives of the primitive variables. This is nice.

4.3

Viscosity and Heat Conductivity

The heat conductivity can be evaluated through the viscosity coecient by utilizing the denition of the Prandtl
number P r,
Pr =

R
cp
=

( 1)

R
.
P r( 1)

(4.3.1)

4.4. OTHER ENERGY EQUATIONS

97

This is very nice because the heat ux vector can then be expressed in any of the following forms:
q = grad T =

grad (a2 ) =
grad e =
grad h,
P r( 1)
Pr
Pr

(4.3.2)

R
R
where the relations, a2 = p/ = RT , e = 1
T , and h = 1
T have been used. It is nice to know then that
the Prandtl number for the sea-level air is nearly constant for a wide range of temperature; P r = 0.72 is a valid
approximation for the temperature between 200K and 1000K. In general, it is known that the Prandtl number is
related to by

Pr =

4
.
9 5

(4.3.3)

This can be useful for non-ideal gases. See [106] for more details. Therefore all we need to evaluate the heat ux is
the viscosity coecient . The viscosity coecient can be computed by Sutherlands law,
T0 + C
= 0
T +C

T
T0

 32

C = 110.5 [K],

T0 = 273.1 [K],

0 = 1.716 105 [Pa s],

(4.3.4)

for air. This is also a good approximation for a wide range of temperature, between 170K and 1900K. See [111] for
more details.

4.4

Other Energy Equations

We obtain the equation for the internal energy e by subtracting the kinetic energy equation (4.1.9) from the total
energy equation (4.1.3):

De
Dt

= p div v div q + ,

(4.4.1)

where is the dissipation term given by


=



grad v = grad v + (grad v)t grad v + (div v)2 .

(4.4.2)

It can be shown that the dissipation term can be written as



 
 


2
2
2
=
grad v + (grad v)t (div v)I grad v + (grad v)t (div v)I + + (div v)2 (4.4.3)
2
3
3
3


2 
2

2
ui
2 uk
uj
uk

+ +
.
(4.4.4)
ij
+
=
2
xj
xi
3 xk
3
xk
It follows immediately from this that the dissipation term is positive if
0,

2
+ 0.
3

(4.4.5)

This is very nice. It shows that Stokes hypothesis ( = 23 ) guarantees the positivity of the dissipation term. If you
are interested to derive (4.4.3) from (4.4.2), rst you need to understand these identities,

 

grad v + (grad v)t grad v (grad v)t = 0,
(4.4.6)


t
(div v)I grad v (grad v)
= 0.
(4.4.7)
Then, you write

grad v


 1

1
t
t
=
,
grad v + (grad v) +
grad v (grad v)
2
2

(4.4.8)
(4.4.9)

98

CHAPTER 4. NAVIER-STOKES EQUATIONS

and expand this with = (div v)I + [grad v + (grad v)t ] and the identities above to get

 



grad v + (grad v)t grad v + (grad v)t + (div v)I grad v + (grad v)t
(4.4.10)
2
2

 

=
(4.4.11)
grad v + (grad v)t grad v + (grad v)t + (div v)2 .
2


Finally, you somehow arrange this into the nal form (4.4.3), e.g., by adding 32 (div v)2 23 (div v)2 and refactoring.
Basically, the energy equation in the Navier-Stokes equations can be replaced by any of the followings:
=

(H) p

+ div(vH)
t
t

= div ( v) div q,

(4.4.12)

DH
p

Dt
t

= div ( v) div q,

(4.4.13)

DE
+ div (pv)
Dt

= div ( v) div q,

(4.4.14)

De
+ p div v
Dt

= div q,

(4.4.15)

Dh Dp

Dt
Dt

= div q.

(4.4.16)

It is very nice that we have so many options for the energy equation. Naturally, the entropy equation/inequality can
also be used:
q

Ds
+ div
+ 2 (gradT ) (gradT ) 0.
(4.4.17)
=

Dt
T
T
T

4.5

1D Navier-Stokes Equations

The 1D Navier-Stokes equations in conservative form:


U F
+
= 0,
t
x

(4.5.1)

where

U =

u ,
E

xx
qx

= (2 + )

F=

u
u2 + p xx

uH xx u + qx

u
,
x

(4.5.2)

(4.5.3)

 
T

a2
p
= k
.
=
=
x
P r( 1) x
P r( 1) x

(4.5.4)

I like that Stokes hypothesis ( = 23 ) simplies the viscous stress to


xx

4 u
.
3 x

(4.5.5)

Incidentally, the dissipation term (4.4.2) becomes


= 2

u
x

2

u
x

2

(4.5.6)

which is always positive, of course. I like this dissipation term, but it is not needed in the conservative form (4.5.1).

4.6. 2D NAVIER-STOKES EQUATIONS

4.6

99

2D Navier-Stokes Equations

The 2D Navier-Stokes equations in conservative form:


U F G
+
+
= 0,
t
x
y

(4.6.1)

where

u
,

U=

v
E

F=

u
u2 + p xx
uv xy

uH xx u xy v + qx

G=

xx
yy
xy = yx
qx
qy

(4.6.2)

v
uv yx

v 2 + p yy

vH yx u yy v + qy

u
+
= 2
x

u v
+
x y

(4.6.3)

(4.6.4)



v
u v
,
+
+
y
x y


u v
=
,
+
y
x
= 2

 
p
,

 
T

a2
p
= k
.
=
=
y
P r( 1) y
P r( 1) y

= k

T
a2

=
=
x
P r( 1) x
P r( 1) x

I like again that Stokes hypothesis ( = 32 ) simplies the viscous stresses to




u v
2
,
2

xx =
3
x y


2
v
u
yy =
.
2

3
y x
Again, the dissipation term (4.4.2) is always positive:
"  
2 #
2
 2 

2
u
v
v
u v
u
+
+
+2
+
+
.
= 2
x
y
x y
x y
I like this dissipation term, but again it has nothing to do with the conservative form (4.6.1).

(4.6.5)
(4.6.6)
(4.6.7)
(4.6.8)
(4.6.9)

(4.6.10)
(4.6.11)

(4.6.12)

100

4.7

CHAPTER 4. NAVIER-STOKES EQUATIONS

3D Navier-Stokes Equations

The 3D Navier-Stokes equations in conservative form:


U F G H
+
+
+
= 0,
t
x
y
z

(4.7.1)

where

U = v ,

F=

u
u2 + p xx
uv xy

uw xz

uH xx u xy v xz w + qx

G=

v
uv yx

v 2 + p yy
uw yz

vH yx u yy v yz w + qy

H=

xx
yy
zz

w
uv zx

vw zy
2

w + p zz

wH zx u zy v zz w + qz

(4.7.2)

xy = yx
xz = zx
xy = yx


u v
,
+
=
y
x


w u
=
,
+
x
z


v w
=
+
,
z
y


(4.7.4)



w
u v
u
,
+
+
+
x
x y
z


v
u v
w
= 2
,
+
+
+
y
x y
z


w
u v
w
= 2
,
+
+
+
z
x y
z
= 2

(4.7.3)

(4.7.5)

(4.7.6)
(4.7.7)
(4.7.8)

(4.7.9)
(4.7.10)
(4.7.11)

4.8. NONDIMENSIONALIZATION

qx
qy
qz

101

 
T

a2
p
= k
,
=
=
x
P r( 1) x
P r( 1) x
 
T

a2
p
,
= k
=
=
y
P r( 1) y
P r( 1) y
 
T

a2
p
.
= k
=
=
z
P r( 1) z
P r( 1) z

Of course, I like Stokes hypothesis ( = 23 ) which simplies the viscous stresses to




u v
w
2
2

,
xx =
3
x y
z


2
v
u w
yy =
,
2

3
y x
z


2
w u v
.
zz =
2

3
z
x y

(4.7.12)
(4.7.13)
(4.7.14)

(4.7.15)
(4.7.16)
(4.7.17)

Yes, I like the dissipation term (4.4.2) that is always positive:


"  
2 
2 
2 
2 #
 2

2
v
w
v
u
w v
u w
u
+2
+2
+
+
+
+
+
+
= 2
x
y
z
x y
y
z
z
x

2
w
u v
+
+
+
,
(4.7.18)
x y
z
which is again irrelevant to the conservative form (4.7.1).
Unlike the Euler equations, the Navier-Stokes equations have solution derivatives in their ux vectors. This introduces additional complications into numerical algorithms. For example, for nite-volume methods, these derivatives
need to be constructed along control-volume boundaries, which may not be a trivial task on unstructured grids. For
nite-element methods, a careful variational formulation may be required to achieve an optimal accuracy for a given
basis. Another particularly important issue is a loss of accuracy due to incompatible discretizations of the inviscid and
viscous terms. For example, a residual-distribution scheme which combines an upwind scheme (for the inviscid term)
and the Galerkin scheme (for the viscous term) is known to become only rst-order accurate even if each scheme is
second-order accurate by itself [76]. A nice thing about these derivatives, however, is that a straightforward isotropic
evaluation (e.g., central dierencing) works ne since the viscous or heat eects are essentially isotropic.

4.8
4.8.1

Nondimensionalization
Nondimensionalized Navier-Stokes Equations

It is always nice to nondimensionalize the governing equations. For the Navier-Stokes equations, in addition to the
quantities introduced for the Euler equations in Section 3.10:
=

,
r

p =

p
,
r Vr2

e =

e
,
Vr2

v =

v
,
Vr

x =

x
,
L

t =

t
,
L/Vr

(4.8.1)

we need to introduce nondimensionalized the temperature and the viscosity,


T =

T
,
Tr

.
r

(4.8.2)

Substituting these quantities into the Navier-Stokes equations, (4.1.1), (4.1.2), (4.1.3), we obtain

+ div ( v ) = 0,
t
( v )
+ div ( v v ) + grad p
t

( E )
+ div ( v H ) =
t

(4.8.3)

div ,

(4.8.4)

div ( v ) div q ,

(4.8.5)

102

CHAPTER 4. NAVIER-STOKES EQUATIONS

where E = e + v2 , H = E + p . These are exactly the same as in the dimensional version, but the viscous stress
tensor and the heat ux vector have some dimensionless parameters,


2
r


t

(div v )I + grad v + (grad v ) ,


(4.8.6)

=
r Vr L
3
q

RTr r
grad T .
1)P r

(4.8.7)

r Vr3 L(

Also, note that the equation of state (3.1.1) is now written as




RTr

p =
T .
Vr2

(4.8.8)

Therefore, a specic form of the equation of state as well as the viscous and heat uxes depend on the choice of the
reference values: r , Vr , Tr , and r . Note that because of the forms of the nondimensional pressure and specic
internal energy, the equation of state for the calorically perfect gas holds exactly as in the dimensional form:
p = ( 1) e ,

(4.8.9)

for any choice of the reference states (see Section 3.10), but the one with the temperature, i.e., p = RT , depends on
the reference states.

4.8.2

Free Stream Values

We may use the free stream values for the reference quantities, r = , Vr = V , Tr = T , r = :
=

p =

p
,
2
V

e =

T =

e
,
2
V

v
,
V

v =

T
,
T

x =

x
,
L

t =

t
,
L/V

(4.8.10)

(4.8.11)

Then, the equation of state is given by


p =

T
,
2
M

(4.8.12)

and the viscous stress and the heat ux are given by,


2

(div v )I + grad v + (grad v ) ,

=
Re
3
 

q =
grad T =
grad
,
2 Re P r
( 1)M
( 1)Re P r

(4.8.13)
(4.8.14)

where
Re =

V L
.

The free stream values are set as follows:


1
v

= 1, p =
, v
=
= n ,
2
M
V

e =

(4.8.15)

1
,
2
( 1)M

T
= 1,

= 1.

The nondimensionalized viscosity coecient is given by


 3 "

 3 #1
3
T0 + C T 2
1 + C/T
T0 + C T 2

0
=
= 0
(T ) 2 ,
=

T + C T0
T + C T 0
T + C/T

(4.8.16)

(4.8.17)

with C = 110.5 [K] for air. Therefore, in order to set a free stream inow condition, we need to specify not only the
Mach number M and the free stream ow direction n , which are required for the Euler equations (see Section
3.10), but also the free stream temperature T , e.g., T = 293.15[K] for the sea-level condition. Of course, the free
stream Reynolds number Re must be specied, and also the Prandtl number P r needs to be given (P r = 0.72 for
the sea-level air).

4.8. NONDIMENSIONALIZATION

4.8.3

103

Speed of Sound

Instead of the free stream velocity V , we may use the free stream speed of sound for the reference velocity, Vr = a :
=

p =

p
,
a2

e =

T =

e
,
a2

v
,
a

v =

T
,
T

x =

x
,
L

t =

t
,
L/a

(4.8.18)

(4.8.19)

Then, the equation of state is given by


p =

T
,

(4.8.20)

and the viscous stress and the heat ux are given by,


M
2


t

=
(div v )I + grad v + (grad v ) ,
Re
3
 

q =
grad T =
grad
.
( 1)Re P r
( 1)Re P r

(4.8.21)
(4.8.22)

The free stream values are set as follows:


= 1,

p =

1
,

=
v

v
= M n ,
a

e =

1
,
( 1)

= 1,
T

= 1.

(4.8.23)

The nondimensionalized viscosity coecient is again given by (4.8.17) as in the previous case. Therefore, at a free
stream inow, again, we need to specify not only the Mach number M and the free stream ow direction n , but
also the free stream temperature T (not to mention Re and P r). I like this one, again, because the free stream
pressure is independent of M . In fact, this one is very widely used for compressible ow computations.

4.8.4

Stagnation Values

Instead of the free stream values, we may use the stagnation values for the reference quantities:


p
1 2 1
1
p =
,
1+
=
M
0 a20


 1

1 2 1
,
= 1+
M
=
0
2

e =

e
,
a20

v =

v
,
a0

x =

x
,
L


1
T
1 2
T =
= 1+
M
,
T0
2

t =

(4.8.24)

t
,
L/a0

(4.8.25)

(4.8.26)

Then, the equation of state is given by


p =

T
,

and the viscous stress and the heat ux are given by,


2
m M
(div v )I + grad v + (grad v )t ,
=
Re
3
 

m M
m M
p
q =
grad T =
grad ,
( 1)Re P r
( 1)Re P r

(4.8.27)

(4.8.28)
(4.8.29)

where
m =

+1

 2(1)
p
1 2

= p = 1 +
.
M
2

(4.8.30)

104

CHAPTER 4. NAVIER-STOKES EQUATIONS

In this case, the free stream values are set as follows:

1

 1
1 2
= 1+
,
M
2

e =

T
,
( 1)

v =

v a
a a0

 1

1
1 2
=
,
1+
M

2
s
v
p
=
a = M n
.
a


1
1 2
= 1+
,
M
2

= 1.

(4.8.31)

(4.8.32)

(4.8.33)

The nondimensionalized viscosity coecient is again given by (4.8.17) as in the previous case. Therefore, in this
case also, at a free stream inow, we need to specify the Mach number M , the free stream ow direction n , and
the free stream temperature T , in addition to Re and P r.

4.9

Reduced Navier-Stokes Equations

I like reduced Navier-Stokes equations such as thin-layer, parabolized, or conical Navier-Stokes equations. They are
approximated forms of the full Navier-Stokes equations and hence simpler and cheaper to solve than the full NavierStokes equations. If you like them too, see [37, 103].

4.10

Quasi-Linear Form of the Navier-Stokes Equations

Often for various purposes (e.g., analysis, scheme development, etc.), it is nice to write the Navier-Stokes equations
in the quasi-linear form,
Vt + Av Vx + Bv Vy + Cv Vz = Dv Vxx + Ev Vyy + Fv Vzz + Gv Vxy + Hv Vyz + Iv Vzx ,

(4.10.1)

for some set of variables V, where the superscript v merely indicates that the coecient matrices are associated with
V. To be able to do so, it is necessary to assume that the viscosity and the heat conductivity are constant. Also,
it is necessary to ignore non-linear terms which involve a product of derivatives. It will be, therefore, no longer the
full Navier-Stokes system. However, recall that not all terms are necessary to identify the type of partial dierential
equations as discussed in Section 1.14. In fact, the quasi-linear form of the Navier-Stokes system retains the essential
feature of the full Navier-Stokes system; this is the form modeled by the scalar advection-diusion or the viscous
Burgers equation. For example, a symmetric form of the quasi-linear Navier-Stokes system has been successfully used
in the development of convergence acceleration techniques [1, 51, 56, 110].
Consider the primitive form of the Navier-Stokes equations,
D
+ div v
Dt

0,

Dv
+ grad p = div ,
Dt

Dp
+ p div v
Dt

( 1) [ grad v div q] .

(4.10.2)
(4.10.3)
(4.10.4)

Obviously, the dissipation term ( grad v) involves products of derivatives and needs to be ignored. Also, a part of
the heat transfer term needs to be ignored as well. To see this, we rst express T in terms of p and ,
T =

p
p
1 p
=
=
,
R
( 1)cp
(cp /)( 1)

(4.10.5)

thus
T

.
P r( 1)

(4.10.6)

4.10. QUASI-LINEAR FORM OF THE NAVIER-STOKES EQUATIONS

105

Then, the heat transfer term can be written as


div q

= div ( gradT )
(4.10.7)
 

p
=
(4.10.8)
div grad
P r( 1)




p
1
=
(4.10.9)
div
gradp 2 grad
P r( 1)


 


1
p
1
p
=
2 grad gradp + div gradp grad
div
grad
. (4.10.10)

grad

P r( 1)

2
2

Hence, the rst and the third terms involve products of derivatives and need to be ignored. The pressure equation
then becomes


p

Dp
div gradp div grad .
+ p div v =
(4.10.11)
Dt
P r

In this sense, therefore, the quasi-linear Navier-Stokes equations may be called linearized Navier-Stokes equations, or to
be precise the Navier-Stokes equations with the linearized energy equation. Clearly, the continuity equation is already in
the quasi-linear form. The momentum equation is also in the quasi-linear form, which can be clearly seen by expanding
the viscous term as follows,


div = div (div v)I + grad v + (grad v)t
(4.10.12)
= grad (div v) + div grad v + div (grad v)t

(4.10.13)

2
= grad (div v) + div (grad v)t + div grad v
3

(4.10.14)

2
= grad (div v) + grad (div v) + div grad v
3

(4.10.15)

1
grad (div v) + div grad v,
(4.10.16)
3
where we have assumed constant viscosity and Stokes hypothesis. This involves second-derivatives of the velocity
components only, and therefore it can be written in the form (4.10.1).
=

Linearized Navier-Stokes Equations


The linearized Navier-Stokes equations, with = / and a2 = p/,
D
+ div v
Dt

0,

(4.10.17)

Dv 1
+ grad p =
Dt

1
grad (div v) + div grad v,
3

(4.10.18)

Dp
+ p div v
Dt

a2
div gradp
div grad,
Pr
Pr

(4.10.19)

are now ready to be written out in the quasi-linear form (4.10.1) in one, two, and three dimensions.

4.10.1

1D Quasi-Linear Navier-Stokes Equations

Primitive Form
The primitive form in one dimension is given by
t + ux + ux

(4.10.20)

1
px

4
uxx ,
3

(4.10.21)

pt + upx + pux

a2
pxx
xx .
Pr
Pr

(4.10.22)

ut + uux +

106

CHAPTER 4. NAVIER-STOKES EQUATIONS

This can be written in the form:


Wt + Aw Wx = Dw Wxx ,
where

W = u ,
p

Aw = 0
0

Dw =

1/ ,

u
p

(4.10.23)

4/3

a /P r

/P r

(4.10.24)

Symmetric Form
I like the following variables,
"

where a =

a d
a dT
dV = , du, p

T ( 1)

#t

(4.10.25)

q
p , since the quasi-linear Navier-Stokes system is symmetrized by these variables [1]. Naturally, these

variables are called symmetrizing variables, and often called parabolic symmetrizing variables to distinguish them
from the symmetrizing variables for the Euler equations (3.5.30) which are in contrast called hyperbolic symmetrizing
variables.
The primitive variables W and the symmetrizing variables V are transformed into each other as follows.
dV =
where

V
W

W
V

V
dW,
W

The primitive form is now transformed, with

a
p
( 1)
V
W

V
W

W
dV,
V

dW =

1

= 0

a
p
( 1)

0
1
0

(4.10.26)

(4.10.27)

0
.

a 1

(4.10.28)

multiplied from the left, into the symmetric form:

Vt + Av Vx = Dv Vxx ,
where

a
V
W
v
w
A =
A
=

W
V

a 1

a 1
,

(4.10.29)

V w W
D =
D
=
0
W
V

0
v

0
4

3
0

0
0

Pr

. (4.10.30)

It is clear from these matrices that the system is indeed symmetric. Note that in transforming the viscous term we
have ignored again non-linear terms involving products of derivatives:


V w W V
V w
D Wxx =
D
Wxx
(4.10.31)
W
W
V W







V
V

Wx
(4.10.32)
= Dv
Wx
x W
x W
Dv Vxx .
(4.10.33)

4.10. QUASI-LINEAR FORM OF THE NAVIER-STOKES EQUATIONS


V
W

Or equivalently, it can be thought of as the transformation matrix


that its derivative is zero).

4.10.2

107
being frozen at a certain constant state (so

2D Quasi-Linear Navier-Stokes Equations

Primitive Form
The primitive form in two dimensions is given by
t + ux + ux + vy + vy

= 0

(4.10.34)

ut + uux + vuy +

1
px

vt + uvx + vvy +

1
py

= vxx +

pt + upx + vpy + pux + pvy

uxx + vyx + uyy ,


3
3

(4.10.35)

4
uxy +
vyy ,
3
3

(4.10.36)

a2

(pxx + pyy )
(xx + yy ).
Pr
Pr

(4.10.37)

This can be written in the form:


Wt + Aw Wx + Bw Wy = Dw Wxx + Gw Wxy + Ew Wyy ,

(4.10.38)

where W = [, u, v, p]t ,

D =

0
A =
0

0
w

1/
,
0

4/3

a2 /P r

/P r

Ew =

0
B =
0

0
w

1/

v
0

(4.10.39)

0
0
/3 0
G =
0 /3
0
0

0
0
0
0

4/3

a2 /P r

/P r

(4.10.40)

(4.10.41)

Symmetric Form
The symmetrizing variables,
"

a d
a dT
dV = , du, dv, p

T ( 1)

and the primitive variables W = [, u, v, p]t are transformed

a
0

0
1

=
0
0
W

a
0
p
( 1)

#t

to each other by the following matrices:

0
0

0
0

1
0

a
p
0
p ( 1)

(4.10.42)

(4.10.43)

108

CHAPTER 4. NAVIER-STOKES EQUATIONS



a

0
W

=
0
V

The primitive form is now transformed, with

V
W

a 1

(4.10.44)

multiplied from the left, into the symmetric form:

Vt + Av Vx + Bv Vy = Dv Vxx + Gv Vxy + Ev Vyy ,

(4.10.45)

where

a


v
A =

r
1
a

r
1
a

v
D =

3
0


Pr

Ev =

0 0

0 0

4.10.3

v
B =
a

Gv =

r
1
a

3
0

0
0

r
1
,
a

v
0

3
0

(4.10.47)


Pr

(4.10.46)

(4.10.48)

3D Quasi-Linear Navier-Stokes Equations

Primitive Form
The primitive form in three dimensions is given by
t + ux + ux + vy + vy + wz + wz

= 0

ut + uux + vuy + wuz +

1
px

vt + uvx + vvy + wvz +

1
py

wt + uwx + vwy + wwz +

1
pz

pt + upx + vpy + wpz + pux + pvy + pwz

(4.10.49)

uxx + vyx + wzx + uyy + uzz ,


3
3
3

(4.10.50)

= vxx +

4
uxy + wzy +
vyy + vzz ,
3
3
3

(4.10.51)

= wxx +

4
uxz + vyz + wyy +
wzz ,
3
3
3

(4.10.52)

a2

(pxx + pyy + pzz )


(xx + yy + zz ).(4.10.53)
Pr
Pr

4.10. QUASI-LINEAR FORM OF THE NAVIER-STOKES EQUATIONS

109

This can be written in the form:


Wt + Aw Wx + Bw Wy + Cw Wz = Dw Wxx + Ew Wyy + Fw Wzz + Gw Wxy + Hw Wyz + Iw Wzx , (4.10.54)
where W = [, u, v, w, p]t ,

w
A = 0

Dw =

w
B = 0

1/

0 ,

4/3

a /P r

w
F =

/P r

Ew =

4/3

a /P r

/P r

0 0

0 0

w
H = 0 0

0 0

0 0

0
/3 0 ,

/3
0
0

0
0
0

w
C = 0

1/ ,

v
0

4/3

a /P r

/P r

0 (4.10.55)

1/

w
0

0
0
0

w
0
0
I = 0

0 /3 0

0
0
0

(4.10.56)

0
0
/3 0 0

0
0 0 ,
Gw = 0 /3

0
0
0
0 0

0
0
0
0 0

(4.10.57)

/3 0

0
0 .

0
0

0
0

(4.10.58)

Symmetric Form
The symmetrizing variables,
"

a d
a dT
dV = , du, dv, dw, p

T ( 1)

#t

(4.10.59)

and the primitive variables W = [, u, v, w, p]t are transformed to each other by the following matrices:

V
=
W

0 0

1 0

0 1

0 0

0 0

a
p
( 1)

a
p
p ( 1)

(4.10.60)

110

CHAPTER 4. NAVIER-STOKES EQUATIONS


a
0

The primitive form is now transformed, with

V
W

0
.

a 1

(4.10.61)

multiplied from the left, into the symmetric form:

Vt + Av Vx + Bv Vy + Cv Vz = Dv Vxx + Ev Vyy + Fv Vzz + Gv Vxy + Hv Vyz + Iv Vzx ,

(4.10.62)

where

v
A = 0

r
1
a

0
r
1
a

v
C =

r
1
a

v
E = 0 0

0 0

0 0

Gv =
0

3
0

0 ,

Pr
0

0 0

0 0 ,

0 0

0
0
0

0
r
1
a

v
B =

,
r

3
0

v
D = 0

0
v
F =

3
0

Pr

Pr

0
0

(4.10.64)

(4.10.65)

r
1

a
, (4.10.63)

v
0

3
0

0 0

Hv =
0 0

0 0

(4.10.66)

4.11. INCOMPRESSIBLE NAVIER-STOKES EQUATIONS

Iv =
0

4.11

3
0

111

3
0

0
.

(4.10.67)

Incompressible Navier-Stokes Equations

As I said before, I like incompressible uids: constant density or small Mach number. So, of course, I like the
incompressible Navier-Stokes equations, which are obtained from the full Navier-Stokes equations by assuming =
constant.
Conservative Form of the Incompressible Navier-Stokes Equations
div v

= 0,

(4.11.1)

t (v) + div(vv) + grad p div

= 0,

(4.11.2)

DT
div (k grad T ) = 0.
Dt

(4.11.3)

cv
where



= grad v + (grad v)t ,


= grad v = grad v + (grad v)t grad v.

(4.11.4)
(4.11.5)

Primitive Form of the Incompressible Navier-Stokes Equations

div v =

0,

(4.11.6)

0,

(4.11.7)

DT
div (k grad T ) = 0.
Dt

(4.11.8)

cv

Dv
+ grad p div
Dt

If the viscosity coecient is constant, the viscous term can be written as the Laplacian,
 

div = div grad v + (grad v)t
= div grad v + div(grad v)t
= div grad v + grad(div v)
=

div grad v,

(4.11.9)
(4.11.10)
(4.11.11)
(4.11.12)

which is nice. Then, assuming also that the heat conductivity is constant, we have
div v

= 0,

(4.11.13)

Dv 1
+ grad p div grad v
Dt

= 0,

(4.11.14)

DT
k div grad T = 0,
Dt

(4.11.15)

cv
where

(4.11.16)

112

CHAPTER 4. NAVIER-STOKES EQUATIONS

I like the fact that the energy equation (the temperature equation) is completely independent from other equations.
So, we can solve the continuity and momentum equations rst (to determine the velocity eld), and then, if necessary,
solve the energy equation separately for a given velocity eld. Also, I like the idea of pseudo-compressibility. See
Section 4.14.

4.12

2D Incompressible Navier-Stokes Equations

I like the 2D incompressible Navier-Stokes equations in any of the following forms.

Conservative Form
(u) (v)
+
x
y

0,





u

u
p

=
+
x x
x
y
y





v
+

,
x
x
y
x




v

v
p

(v) (uv) (v 2 )

+
+
=
+
t
x
y
y x
x
y
y





v
+

,
x
y
y
y







T
T
T
T
=
k
+
k
+ ,
+u
+v
cv
t
x
y
x
x
y
y

(4.12.1)

(u) (u2 ) (uv)


+
+
t
x
y

(4.12.2)

(4.12.3)
(4.12.4)

where
=

"  
 2 
2 #
2
v
v
u
u
.
+2
+
2
+
x
y
x y

(4.12.5)

Primitive Form

cv

u v
+
x y

u
u
u
+ u
+ v
t
x
y

v
v
v
+ u
+ v
t
x
y

T
T
T
+u
+v
t
x
y

0,




u

u
p

+
x x
x
y
y





v
+

,
x
x
y
x




v

v
p

+
y x
x
y
y




u

,
+
x
y
y
y





T
k
+
k
+ .
x
x
y
y

(4.12.6)

(4.12.7)

(4.12.8)
(4.12.9)

4.13. 3D INCOMPRESSIBLE NAVIER-STOKES EQUATIONS

113

Case of Constant Viscosity and Heat Conductivity


u v
+
x y
u
u
u
+u
+v
t
x
y
v
v
v
+u
+v
t
x
y


T
T
T
+u
+v
cv
t
x
y

4.13

0,

(4.12.10)
1 p
+
x

2u 2u
+ 2
x2
y

(4.12.11)


 2
1 p
v
2v
,
+
+
y
x2
y 2
 2

T
2T
= k
+
+ .
x2
y 2

(4.12.12)

(4.12.13)

3D Incompressible Navier-Stokes Equations

Of course, I like the 3D incompressible Navier-Stokes equations also in any of the following forms.
Conservative Form
(u) (v) (w)
+
+
x
y
z
(u) (u2 ) (uv) (uw)
+
+
+
t
x
y
z

(v) (uv) (v 2 ) (vw)


+
+
+
t
x
y
z

(w) (uw) (vw) (w2 )


+
+
+
t
x
y
z

cv

T
T
T
T
+u
+v
+w
t
x
y
z

= 0,

(4.13.1)







u

u
p

=
+
x x
x
y
y
z
z






u

,
+
x
x
y
x
z
x






v

v
p

=
+
y x
x
y
y
z
z







w
+

,
x
y
y
y
z
y






w

w
p

=
+
z
x
x
y
y
z
z







w
+

,
x
z
y
z
z
z

T
x

T
y

T
z

(4.13.2)

(4.13.3)

(4.13.4)

+ ,
(4.13.5)

where
=

"  
2
 2

2
v
w
u
+2
+2
2
x
y
z
2 
2 
2 #

u
v
w v
u w
+
+
+
+
+
+
.
x y
y
z
z
x

(4.13.6)

114

CHAPTER 4. NAVIER-STOKES EQUATIONS

Primitive Form
u v
w
+
+
x y
z
u
u
u
u
+ u
+ v
+ w

t
x
y
z

cv

v
v
v
v
+ u
+ v
+ w
t
x
y
z

w
w
w
w
+ u
+ v
+ w
t
x
y
z

T
T
T
T
+u
+v
+w
t
x
y
z

=
=

0,

(4.13.7)







u

u
p

+
x x
x
y
y
z
z







w
+

,
x
x
y
x
z
x






v

v
p

+
y x
x
y
y
z
z







w
+

,
x
y
y
y
z
y






p

z
x
x
y
y
z
z







w
+

,
x
z
y
z
z
z







T
k
+
k
+
k
+ .
x
x
y
y
z
z

(4.13.8)

(4.13.9)

(4.13.10)

(4.13.11)

Case of Constant Viscosity and Heat Conductivity


w
u v
+
+
x y
z

0,

(4.13.12)


2u 2u 2u
+ 2 + 2 ,
x2
y
z

 2
v
v
v
1 p
v
2v
2v
v
+u
+v
+w
=
+
+ 2+ 2 ,
t
x
y
z
y
x2
y
z
 2

w
w
w
w
1 p
w 2w 2w
+u
+v
+w
=
+
+
+
,
t
x
y
z
z
x2
y 2
z 2

 2


T
2T
2T
T
T
T
T
= k
+ .
+
+
+u
+v
+w
cv
t
x
y
z
x2
y 2
z 2
u
u
u
u
+u
+v
+w
t
x
y
z

4.14

1 p
=
+
x

(4.13.13)
(4.13.14)
(4.13.15)
(4.13.16)

Pseudo-Compressible Navier-Stokes Equations

Yes, I like the pseudo-compressible Navier-Stokes equations. Introduce the articial density,
= p/a 2 ,

(4.14.1)

and add its time derivative to the continuity equation,

+ div v
t

= 0,

(4.14.2)

which can be written also as


P
+ div (a 2 v) = 0,
t

(4.14.3)

4.15. VORTICITY TRANSPORT EQUATION AND STREAM FUNCTION

115

where P = p/ which is the kinematic pressure. The incompressible Navier-Stokes equations with this modied
continuity equation are the pseudo-compressible Navier-Stokes equations [16, 54]:
P
+ div (a 2 v) = 0,
t
v
+ div(vv + pI) =
t

(4.14.4)

div .

(4.14.5)

where



= grad v + (grad v)t .

(4.14.6)

The time derivative in the momentum equation is a real time derivative but not realistic when solved with the pseudocompressible continuity equation (so t instead of t).
In Cartesian coordinates:
Ut + Fx + Gy + Hz = Fvx + Gvy + Hvz ,

P
u

U=
v ,
w

a 2 u
u2 + P
,
F=
uv

uw

0
2ux

Fv =
uy + vx ,
uz + wx

a 2 v
uv

G=
v2 + P ,
uw

0
vx + uy
,
Gv =

2vy
vz + wy

(4.14.7)

a 2 w

uv

H=
vw ,
w2 + P

0
wx + uz

Hv =
wy + vz .
2wz

(4.14.8)

(4.14.9)

If we assume that the viscosity is constant, then the viscous term can be simplied (by the continuity equation) to
the Laplacian,
v
+ div(vv + pI) =
t
and therefore the viscous uxes are given

u
x
Fv =
vx
wx
This is nice. I like it.

4.15

by

0
uy

Gv =
vy ,
wy

div grad v,

0
uz

Hv =
vz .
wz

(4.14.10)

(4.14.11)

Vorticity Transport Equation and Stream Function

The vorticity transport equation (the curl of the momentum equation (4.11.14)) is given by
t + u x + v y = (xx + yy ) ,

(4.15.1)

where = vx uy is the vorticity. To solve this for , the velocity components (u, v) must be given or solved
simultaneously. A nice way to compute the velocity is to introduce the stream function as
u = y ,

v = x ,

(4.15.2)

so that the continuity equation is automatically satised, and that we see from = vx uy that the stream function
satises the following:
xx + yy = .

(4.15.3)

116

CHAPTER 4. NAVIER-STOKES EQUATIONS

That is, we now have two equations (4.15.1) and (4.15.3) for two unknowns (, ). So, we only need to solve these
two equations (4.15.1) and (4.15.3) to get and , and determine the velocity eld.
Once the velocity is obtained (via ), the pressure can be computed as a solution of the following Poisson equation
(the divergence of the momentum equations):


div grad p = 2 (ux vy uy vx ) = 2 xx yy (xy )2 .
(4.15.4)

These are the fundamental equations for the famous vorticity-stream function approach (see [103] for details). It is
nice that instead of solving three equations simultaneously (continuity and two momentum equations), we solve two
equations simultaneously and then solve one equation independently afterwards. I surely like these equations.

4.16

Vorticity Transport Equation and Vector Potential

For a three-dimensional incompressible ow, we write the velocity as follows,


v = grad + curl ,

(4.16.1)

where is a scalar potential and is a vector potential. Note that the rst term on the right is curl-free while the
second term is divergence-free. This is called the Helmholtz decomposition. Substitute (4.16.1) into the continuity
equation to nd the governing equation of ,
div grad = 0.

(4.16.2)

Substitute (4.16.1) into the vorticity, = curl v, to get the governing equation of ,
div grad = .

(4.16.3)

Also, take the curl of the momentum equations (4.11.14) to get the governing equation of ,
D
= (grad v) + div grad .
Dt

(4.16.4)

Now, we can determine the velocity eld by solving the above seven equations, (4.16.2), (4.16.3), and (4.16.4). Once
the velocity eld is determined, we can compute the pressure by solving the Poisson equation (the divergence of the
momentum equations):
div grad p = div [div (vv)] ,

(4.16.5)

whose components are

xi

p
xi



(vi vj )
.
xi
xj

We may use the continuity equation to write this as





p
vj vi
.
=
xi xi
xi xj

(4.16.6)

(4.16.7)

In Cartesian coordinates, we can write the Poisson equation as


pxx + pyy + pzz

= (u2 )xx (uv)xy (uw)xz


(vu)yx (v 2 )yy (vw)yz
(wu)zx (wv)zy (w2 )zz ,

(4.16.8)

or we obtain directly from (4.16.7)


pxx + pyy + pzz



(ux )2 + (vy )2 + (wz )2 + 2uy vx + 2uz wx + 2wy vz ,

(4.16.9)

which we can rewrite as (by the continuity equation)


pxx + pyy + pzz

= 2 [ux vy + vy wz + wz ux uy vx uz wx wy vz ] .

(4.16.10)

4.17. STOKES EQUATIONS

117

These equations are fundamental equations for vortex methods [22].


By the way, I like to set = 1 grad 2 and = 0, because then I nd from (4.16.1) that
v = grad 1 grad 2 .

(4.16.11)

This means that v is tangent to the two surfaces dened by 1 =constant and 2 = constant, and so that these two
families of surfaces are composed of streamlines. Therefore, 1 and 2 can be considered as three-dimensional stream
functions. This is very interesting. In fact, we can derive the familiar two-dimensional stream function by setting
1 = (x, y) and 2 = z, from (4.16.11),
u=

, v=
;
y
x

(4.16.12)

and the stream function for the polar coordinates (axi-symmetric ows in the cylindrical coordinates (r, , z)), by setting
1 = (r, ) and 2 = z, from (4.16.11),
ur =

1
, u =
;
r
r

(4.16.13)

and also the stream function for axi-symmetric ows in the spherical coordinates (r, , ) by taking 1 = (r, ) and
2 = , from (4.16.11),
ur =

1
,
r2 sin

u =

1
.
rsin r

(4.16.14)

See, for example, [13, 48, 78] for more details on three-dimensional stream functions. See [93] for an application of
three-dimensional stream functions to CFD.

4.17

Stokes Equations

I like the Stokes equations because they are linear. In fact, we obtain the Stokes equations by ignoring the nonlinear
advection term from the incompressible Navier-Stokes equations. This is a valid approximation for small Reynolds
number ows. These ows are often called Stokes ows or creeping ows.
Stokes Equations

div v =

0,

(4.17.1)

v
+ grad p div grad v =
t

0.

(4.17.2)

Steady Stokes Equations


div v

= 0,

(4.17.3)

grad p div grad v

= 0.

(4.17.4)

I like the fact that the pressure satises the Laplace equation,
div grad p

= 0,

(4.17.5)

which can be derived by taking the divergence of the momentum equation.


Steady Stokes Equations (pressure and vorticity)
Use the following,
div grad v

= grad(div v) curl curl v = curl ,

(4.17.6)

118

CHAPTER 4. NAVIER-STOKES EQUATIONS

to write the Stokes equations in the following form:


div v

= 0,

(4.17.7)

curl v

= ,

(4.17.8)

grad p + curl

= 0.

(4.17.9)

Note that the vorticity = curl v = [x , y , z ]t also satises the Laplace equation,
div grad

0,

(4.17.10)

which comes from the curl of the momentum equation. So, the vorticity will be distributed very smoothly.

4.18

2D Stokes Equations

I like the 2D Stokes equations. Especially I like the steady version because they reduce to two sets of Cauchy-Riemann
type equations.
2D Unsteady Stokes Equations

u p
+
t
x

p
v
+
t
y

u v
+
x y
 2

u 2u

+
x2
y 2

 2
2v
v
+

x2
y 2

= 0,

(4.18.1)

= 0,

(4.18.2)

= 0.

(4.18.3)

2D Steady Stokes Equations


u v
+
x y

u
v

x y

= z ,

(4.18.5)

z
p
+
x
y

0,

(4.18.6)

p
z

y
x

0.

(4.18.7)

0,

(4.18.4)

These are basically two sets of the Cauchy-Riemann equations; they are coupled through the vorticity z . It is nice
to be the Cauchy-Riemann system because exact solutions can be found by using the theory of complex variables
[40]. However, honestly speaking, I dont like two-dimensional Stokes ows very much. This is because the Stokes
equations cannot accurately describe a ow around an object in two dimensions: a far-eld free stream condition cannot
be satised simultaneously with the no-slip condition on the object. This is called Stokes paradox. To resolve this,
we must retain a leading term in a linearized advection term; this is called Oseens approximation. See [40] for more
details.

4.19

3D Stokes Equations

I like the 3D Stokes equations because Stokes paradox does not apply and a ow over a body can be properly
described. But I dont like that the vorticity is now a vector having three components (it has only one component in
two dimensions!).

4.20. BOUNDARY LAYER EQUATIONS

119

3D Unsteady Stokes Equations


u v
w
+
+
x y
z
 2

u 2u 2u
u p
+

+ 2 + 2

t
x
x2
y
z

 2
v
2v
2v
p
v

+ 2+ 2
+

t
y
x2
y
z

 2
w 2w 2w
w p
+
+
+

t
z
x2
y 2
z 2

0,

(4.19.1)

0,

(4.19.2)

0,

(4.19.3)

0.

(4.19.4)

3D Steady Stokes Equations


w
u v
+
+
x y
z

0,

(4.19.5)

w v

y
z

x ,

(4.19.6)

u w

z
x

y ,

(4.19.7)

z ,

(4.19.8)

0,

(4.19.9)

0,

(4.19.10)

0.

(4.19.11)

v
u

x y


z
y
p
+

x
y
z


p
x
z
+

y
z
x


x
y
p
+

z
x
y

4.20

Boundary Layer Equations

The boundary layer equations for two-dimensional incompressible ows are given by

u v
+
x y

= 0,

u
u
+v
x
y

= U

(4.20.1)
U
2u
+ 2,
x
y

(4.20.2)

where U = U (x) is the velocity outside the boundary layer (constant for a ow over a at plate). This can be solved
numerically, for example, as follows [105]. First, we compute v by numerically integrating the continuity equation in
y direction with the boundary condition u(x, 0) = v(x, 0) = 0, then solve the momentum equation for given v, and
repeat this process until convergence. In this case, the momentum equation behaves like the viscous Burgers equation
(2.11.4). It is nice that a scalar scheme can be used for solving such a nonlinear system. To be even nicer, there exists
an exact solution for this system (see Subsection 7.13.9), so that the accuracy of the numerical solution can be directly
measured.

Chapter 5

Turbulence Equations
5.1

Averages and Filters

Express a physical quantity a as the sum of the average a and the uctuation a : for example,
v = v + v ,

= + ,

p = p + p ,

h = h + h ,

T = T + T ,

H = H + H .

(5.1.1)

This is called the Reynolds decomposition. Here we must be careful about the fact that the uctuation is not necessarily
small (compared with the average), and also that usually uctuations of the viscosity, the heat conductivity, and the
specic heats are small and therefore ignored.
In turbulence calculations, typically we average the Navier-Stokes equations and solve for averaged quantities. After
averaging, as we will see later, we nd extra terms created which involve uctuations and cannot be evaluated from
averaged quantities. So, we derive governing equations for these extra terms, but then we will nd similar extra terms
again that cannot be evaluated, and this process goes on forever. Therefore, at some point, we must stop and model
these terms, i.e., evaluate them somehow in terms of averaged quantities.
The most fundamental in turbulence calculations is the averaging. There are many dierent ways of averaging.
Properties of averages and uctuations depend on their denitions. Also, terms that need to be modeled, in averaged
governing equations, depend on them.

5.1.1

Reynolds Averaging

The Reynolds averaging includes ensemble averaging, time averaging, and space averaging. These are very interesting.
For example, they are identical to one another for steady homogeneous turbulence (which is called Ergodic hypothesis).
The simulation based on the Reynolds-averaged Navier-Stokes equations is called RANS.
Ensemble Averaging
The ensemble averaging:
N
1 X
fi (x, t),
N N

f (x, t) = lim

(5.1.2)

i=1,N

which is the average of measurements, fi (x, t) where i = 1, 2, 3, N , obtained by N experiments. I like it, but it
is unrealistic to perform this averaging in practice. You can, of course, formally (or theoretically or mathematically,
whatever) use this averaging to write down averaged governing equations.
Time Averaging
The time averaging:
f (x, t) =

1
T

t+T

f (x, t) dt,
t

121

(5.1.3)

122

CHAPTER 5. TURBULENCE EQUATIONS

where T must be larger than the uctuation time scale but smaller than the average time scale. I like this one also,
but in real ows, these two time scales are comparable, so such T may not exist. Of course, you can still formally
derive averaged governing equations based on this assumption. For a steady ow, by taking T , we may dene
1
T T

f (x) = lim

t+T

f (x, t) dt.

(5.1.4)

f (x, t) dV,

(5.1.5)

Space Averaging
The space averaging:
1
f (t) = lim
V V

ZZZ

which can be used for homogeneous turbulence in which the mean ow quantities are uniform in space. Of course,
many of us are probably not interested in uniform mean ows. However, for any ows, if we look close enough, there
could be a limit beyond which the ow looks locally uniform. Then, the homogeneous turbulence does make sense,
and the space averaging can be useful. I like it.
Properties of Reynolds Averaging
The Reynolds averaging has the following properties:
f

= f,

(5.1.6)

0,

(5.1.7)

f g

0,

(5.1.8)

fg

= f g,

f +g

(5.1.9)

= f + g.

(5.1.10)

They all make sense and thus easy to remember. I like them.

5.1.2

Favre Averaging

Favre Averaging
The Favre averaging (denoted by a tilde):
f
fe =
,

(5.1.11)

which may be called the mass-weighted averaging or the mass-averaging. In fact, I like it very much because we can
greatly simplify the averaged compressible Navier-Stokes equations using this particular averaging, much simpler than
those obtained by using the Reynolds averaging.
Usually, only the velocity and thermodynamic variables are Favre-averaged and the density and the pressure are
Reynolds-averaged:
e=
v

v
,

h
e
h=
,

T
Te =
,

e = H .
H

Also note that the uctuation associated with Favre averaging fe is denoted by f :
e + v ,
v=v

= + ,

p = p + p ,

h=e
h + h ,

T = Te + T ,

(5.1.12)

e + H .
H=H

(5.1.13)

5.1. AVERAGES AND FILTERS

123

Properties of Favre Averaging


Favre averaging has the following properties:
f
,

= f f

6=

0,

(5.1.16)

0,

(5.1.17)

(5.1.14)

f
,

(5.1.15)

= fe.

(5.1.18)

These are more complicated than those of the Reynolds Averaging, but I like them. These are very important, anyway.

5.1.3

Spatial Filter

Spatial Filter
The spatial lter is a local space (or a local wave-number space) averaging. A typical spatial lter is the volume-average
box lter (also called the top-hat lter):
f (x, t) =

1
3

x+x/2

xx/2

y+y/2

yy/2

z+z/2

f (, t) ddd,

(5.1.19)

zz/2

where
x = (x, y, z)t = (x1 , x2 , x3 )t ,

= (, , )t = (1 , 2 , 3 )t ,

= (xyz)1/3 .

(5.1.20)

We may think of it as the integral over a computational cell: f (x, t) can be thought of as a smooth (low-frequency)
component that can be resolved on that grid. This smooth component is called a grid scale (GS) or a resolvable scale,
and the rest (high-frequency component that cannot be resolved) is called a sub-grid scale (SGS), i.e.,
f = f + f ,

(5.1.21)

in which f is the sub-grid scale. Note that in principle the lter spacing, (x, y, z), does not have to be the grid
spacing (as long as larger than the grid spacing). So, the terms like GS and SGS may be confusing. This ltering
operation can be thought of as a decomposition of a ow into large eddies(GS) and small eddies(SGS). The smaller the
lter spacing is, the more universal the properties of small eddies can be (Kolmogorovs law: a theory by Kolmogorov,
which is sometimes called K41 theory because it came out in 1941 [52]. See [8, 104] for details). If the lter spacing is
small enough, then, a universal model can be developed: methods applicable to many dierent ows can be developed.
Yes, a smaller lter spacing implies ner computational grids, and hence such simulations are generally very expensive.
We can generalize the ltering operation by writing it in the form,
ZZZ
f (x, t) =
G(x )f (, t) ddd,
(5.1.22)
where the integration is over all space and G is called the lter function. For example, the following lter function
corresponds to the volume-average box lter (5.1.19),

1/3
|xi i | < xi /2,
G(xi i ) =
(5.1.23)
0
otherwise.
There are other types of lters such as the Gaussian lter or the Fourier cut-o lter. See [113] for details.
The large eddy simulation (LES) refers to a simulation based on ltered governing equations with suciently small
lter spacing such that the sub-grid scale will be homogeneous. I like the idea, but it requires a very ne computational
grid (very expensive). If I use a grid ne enough to resolve all scales, then no turbulence models are needed, and the
simulation is called the direct numerical simulations (DNS). I like this one. Its very simple. It is particularly nice that
we do not need turbulence modeling. However it is even more expensive than LES: the grid must be extremely or often

124

CHAPTER 5. TURBULENCE EQUATIONS

prohibitively ne especially for high-Reynolds-number ows encountered in many practical applications. There is also
a class of methods called detached eddy simulations (DES) [98, 100]. In DES, the near-wall region (too expensive to
resolve by LES) is solved by RANS and the rest of the domain (where relatively large eddies dominate) is solved by
LES. I like the idea of DES, but I really think that it would be very very nice if DNS would become feasible for practical
ows. It is so simple.
Properties of Spatial Filter
Generally, ltering once and twice, we obtain dierent values:
f 6= f ,

(5.1.24)

which is not the case in the Reynolds averaging. Therefore, ltered governing equations and averaged governing
equations can be quite dierent. We must be careful about the following also:
f

6= 0,

(5.1.25)

f g

6= 0.

(5.1.26)

Do I like it? Well, sure, of course, I like it.

5.2

Reynolds-Averaged Incompressible Navier-Stokes Equations

Take the Reynolds average of the incompressible Navier-Stokes equations to get the Reynolds-averaged incompressible
Navier-Stokes equations ( = constant):
div (v)

= 0,

(5.2.1)

t (v) + div(vv) + grad p div

= 0,

(5.2.2)

where

The extra term,



= v v = grad v + (grad v)t v v .
v v ,

(5.2.3)

(5.2.4)

has been generated by the averaging operation. This is usually interpreted as a stress and called the Reynolds stress.
Without the Reynolds stress, the system would have been closed and solved for the average quantities (just like the
laminar equations). It is possible to derive its own governing equations; but it is so much simpler to model this
term (i.e., to relate somehow to the average quantities) by the Boussinesq approximation (or the gradient transport
hypothesis) [11]:
v v

 2

T grad v + (grad v)t kI,
3

(5.2.5)

where T is called the eddy viscosity or the turbulence viscosity, and


k=

1
v v,
2

(5.2.6)

is called the turbulent energy. Basically, we assume that this uctuation stress is proportional to the gradient of the
average quantities (similarly to Newtonian uids). The second term 23 kI is needed in order for the Boussinesq
approximation to be valid when traced: the trace of the right hand side must be equal to that of the left hand side
vi vi = 2k. But this term is usually ignored if we have no ways to evaluate k, e.g., in zero-equation or oneequation models. To evaluate k, we would probably have to derive and solve the governing equation for k. Typically,
two-equation models include such an option (see Section 5.6).
I like ignoring k and employing the Boussinesq approximation because then I can write the viscous stress term as


(5.2.7)
= ( + T ) grad v + (grad v)t ,

5.3. FAVRE-AVERAGED COMPRESSIBLE NAVIER-STOKES EQUATIONS

125

so that practically the form of the Reynolds-averaged incompressible Navier-Stokes equations is the same as that of
the original (laminar) incompressible Navier-Stokes equations except that it has one extra viscosity coecient, T ,
+ T .

(5.2.8)

So, the focus is now on estimating the turbulent viscosity, T . You might want to evaluate it algebraically (algebraic
models), by deriving and solving a governing equation for T (one-equation models), or by deriving and solving
governing equations for T as well as k (or any relevant two quantities: two-equation models).

5.3

Favre-Averaged Compressible Navier-Stokes Equations

Apply the Favre averaging (instead of the Reynolds averaging) to the compressible Navier-Stokes equations to obtain
the following relatively simple form of the averaged Navier-Stokes Equations:
e) = 0,
t + div( v

e) + div( v
e e
t ( v
v) + grad p

= div ,

e + div( v
e
eH)
=
t (E)

where
p
e
E

e
H

(5.3.1)

e) div q
+ div K,
div (
v

= RTe,
ev
e
v
+ k,
= ee +
2
ev
e
v
= e
h+
+ k,
2
v v
,
=
2

(5.3.2)
(5.3.3)

(5.3.4)
(5.3.5)
(5.3.6)
(5.3.7)

 2

e)I v v ,
e + (grad v
e)t (div v
= v v = grad v
3

= grad h v h
Pr

(5.3.8)
(5.3.9)

and also
K

= v v (v v )/2,

(5.3.10)

but this one is considered to be small and often ignored. Also, as a matter of fact, because v 6= 0, we actually have



 2
 2
e)I + grad v + (grad v )t (div v )I,
e + (grad v
e)t (div v
= grad v
3
3

(5.3.11)

but the last two terms are considered to be small and often ignored. So, I have done so in (5.3.8). Also, the turbulent
e and H
e are often ignored. Now, with these terms all ignored, we apply the Boussinesq approximation:
energy k in E
v v
v h


 2
2
e)I kI,
e + (grad v
e)t T (div v
= T grad v
3
3
T
e
=
grad h,
P rT

(5.3.12)

(5.3.13)

where of course, k will have to be ignored if there are no ways to estimate it; P rT is called the turbulent Prandtl number
and P rT = 0.9 is a good approximation for the sea-level air. So, we ignore k and obtain the following Favre-averaged
Navier-Stokes equations:
e) = 0,
t + div( v

e) + div( v
e e
t ( v
v) + grad p

= div ,

e + div( v
e
eH)
t (E)
=

e) div q
,
div (
v

(5.3.14)
(5.3.15)
(5.3.16)

126

CHAPTER 5. TURBULENCE EQUATIONS

where
p
e
E

e
H

= RTe,
ev
e
v
,
= ee +
2
ev
e
v
= e
h+
,
2
 2

e)I,
e + (grad v
e)t ( + T ) (div v
= ( + T ) grad v
3



T
=
grad e
h.
+
P r P rT

(5.3.17)
(5.3.18)
(5.3.19)
(5.3.20)
(5.3.21)

Therefore, the dierences between these equations and the laminar equations are the turbulent viscosity and the
turbulent Prandtl number:
+ T ,

Pr

(5.3.22)

T
+
,
P r P rT

(5.3.23)

But since we may take P rT = 0.9, it is again a matter of how to estimate T just like in the Reynolds-averaged
incompressible Navier-Stokes equations. This is nice and simple. I like it.

5.4

Filtered Incompressible Navier-Stokes Equations

Apply ltering to the incompressible Navier-Stokes equations to get the ltered incompressible Navier-Stokes equations:
div (v)

= 0,

(5.4.1)

t (v) + div(vv) + grad p div

= 0,

(5.4.2)

where
SGS

= (vv vv),

(5.4.3)

is called the SGS stress, which is usually expanded as


SGS

(vv vv) + (v v + vv ) + v v ,

(5.4.4)

and on the right hand side the rst term is called the Leonard stress, the second the cross-term stress, the third the
SGS Reynolds stress. It may look a little bit more complicated than the Reynolds stress in the Reynolds-averaged
incompressible Navier-Stokes equations (5.2.4), but I like it.

5.5

Filtered Compressible Navier-Stokes Equations

Apply mass-averaged ltering to the compressible Navier-Stokes Equations to obtain the simple ltered compressible
Navier-Stokes Equations:
e) = 0,
t + div( v

e) + div( v
e e
t ( v
v) + grad p = div ,

e + div( v
e
eH)
e) div q
+ div KSGS ,
t (E)
= div (
v

(5.5.1)
(5.5.2)
(5.5.3)

5.6. TURBULENCE MODELS

127

where
p = RTe,

e
E

e
H

k SGS
SGS
q

SGS

KSGS

ev
e
v
+ k SGS ,
2
ev
e
v
= e
h+
+ k SGS ,
2

 2
e)I SGS ,
e + (grad v
e)t (div v
= grad v
3

= ee +

grad e
h + qSGS ,
Pr

1
f v
ev
e),
(vv
2
g v
e e
= (vv
v),
f Ee
e v),
= (Ev
=

e) (f
e).
pv pe v
= (fv e v

(5.5.4)
(5.5.5)
(5.5.6)
(5.5.7)
(5.5.8)
(5.5.9)
(5.5.10)
(5.5.11)
(5.5.12)

Usually, if the Mach number is not large, k SGS and KSGS are ignored and only SGS and qSGS are modeled. These
equations may look more complicated than the Favre-Averaged Navier-Stokes Equations, but essentially the same in
that extra terms are introduced in the viscous stress and the heat ux. I like these equations.

5.6

Turbulence Models

In many cases, the Boussinesq type approximation is made, and it leads us to the problem of estimating the eddy
viscosity, T . There are various ways to evaluate the eddy viscosity. The simplest would be the algebraic models where
the eddy viscosity is computed algebraically in terms of the mean ow quantities. This includes, for examples, Prandtls
mixing-length theory [79], the Cebeci-Smith model [95], the Boldwin-Lomax model [5], and their numerous variants.
These methods can give a good estimate for the eddy viscosity in some cases, but its success essentially depends on
the ow because the eddy viscosity is not an intrinsic property of the uid (unlike the molecular viscosity, ). In other
words, the models need to be tuned (e.g., constants somehow adjusted) for each application. Johnson-King model [46]
is a little bit more sophisticated model with an ordinary dierential equation incorporated (often called 1/2 equation
model), but still its applicability is limited because it does not directly estimate T . I like these algebraic models
because they are relatively easy to implement, but I must admit that we denitely need more sophisticated methods for
successful and general turbulence calculations. Beyond the algebraic model, the simplest method would be to directly
solve a governing equation for T . This is good because T will be solved along with the ow equations and thus it
now depend on the ow. This includes, for examples, the Baldwin-Barth model [4, 3], the Spalart-Allmaras model [97],
and their variants. I like these models. They are still simple. It is possible to couple the turbulence equation with the
ow equations, but it is also possible to solve them separately. Personally, I like the latter. In fact, these models work
successfully for many dierent ows, but not so much for separated ows. It looks like that we need more sophisticated
models. Then, the simplest thing to do is to solve another equation for yet another turbulence quantity. This leads to
two-equation models. This includes, for example, the Menter shear stress transport (SST) model [67], and its variants.
These models are widely used; so people must like them. Anyway, I know there are many other turbulence models, e.g.,
Reynolds stress model, Smagorinsky model for LES, etc., but honestly speaking, I am not really an expert in turbulence
modeling. So, I recommend readers to consult other books such as [113] for more details.

Chapter 6

Exact Solutions I
I like studying methods for deriving exact solutions. Various exact solutions have been used for accuracy verication
in CFD, but it is sometimes dicult to nd detailed descriptions on how they were derived. It is nice to know various
methods for deriving exact solutions so that I can generate an exact solution myself whenever I need one.

6.1

Exact Solutions with Separation of Variables

I like separation of variables because it makes it possible to obtain exact solutions for some partial dierential equations.
It is a very powerful technique.

6.1.1

Laplace Equation

Consider the Laplace equation:


uxx + uyy = 0.

(6.1.1)

In separation of variables, we rst assume the solution of the form,


u = X(x)Y (y),

(6.1.2)

and substitute this into the Laplace equation to get


1 d2 X
1 d2 Y
+
= 0,
X dx2
Y dy 2

(6.1.3)

1 d2 X
1 d2 Y
=
= constant.
2
X dx
Y dy 2

(6.1.4)

from which we nd

So, now the problem is to solve the two ordinary dierential equations. If we want the solution to be periodic in
x-direction, then set the constant to be negative, say, k 2 , and we obtain
X(x) = A sin(kx) + B cos(kx),

(6.1.5)

Y (y) = Ceky + Deky ,

(6.1.6)

where A, B, C, and D are arbitrary constants which are determined by boundary conditions. Therefore, we obtain an
exact solution as


(6.1.7)
u(x, y) = X(x)Y (y) = [A sin(kx) + B cos(kx)] Ceky + Deky .
It is, of course, true that any linear combination of the solution with dierent k, i.e.,the Fourier series:
u(x, y)

k=1

Xk (x)Yk (y) =

k=1



[Ak sin(kx) + Bk cos(kx)] Ck eky + Dk eky ,
129

(6.1.8)

130

CHAPTER 6. EXACT SOLUTIONS I

is also an exact solution because the equation is linear. This is called the principle of superposition. It may be useful
for deriving a solution which will t a given domain and boundary conditions. But just one term would be enough for
the purpose of accuracy verication of numerical schemes.
As an example, we consider deriving a solution from the fundamental solution (6.1.7) in a square domain [x, y] =
[0, 1] [0, 1] with the following boundary conditions:
u(x, 0) = u(0, y) = u(1, y) = 0,
u(x, 1) = sin(x).

(6.1.9)
(6.1.10)

These boundary conditions require that we set


B = 0,

C = D,

AC =

1
,
sinh()

(6.1.11)

in (6.1.7), and thus the exact solution is given by


u(x, y) =

sin(x) sinh(y)
.
sinh()

(6.1.12)

Now, consider another set of boundary conditions,


u(0, y) = u(x, 0) = u(x, 1) = 0,
u(1, y) = sin(y),

(6.1.13)
(6.1.14)

to obtain the exact solution,


u(x, y) =

sin(y) sinh(x)
,
sinh()

(6.1.15)

and add this to the previous one to generate a new exact solution,
u(x, y) =

sinh(x) sin(y) + sinh(y) sin(x)


,
sinh()

(6.1.16)

which is the exact solution to the following boundary condition:


u(0, y) = u(x, 0) = 0,

(6.1.17)

u(x, 1) = sin(x),
u(1, y) = sin(y).

(6.1.18)
(6.1.19)

This superposition is possible because the Laplace equation is linear. It is very nice. I like linear partial dierential
equations.

6.1.2

Diffusion Equation

I like the two-dimensional diusion equation also,


ut = (uxx + uyy ) .

(6.1.20)

This can also be easily solved by separation of variables. First, we assume


u(x, y, t) = T (t)X(x)Y (y),

(6.1.21)

substitute it into the diusion equation to nd


1 dT
d2 Y
d2 X
+
,
=
2
T (t) dt
X(x) dx
Y (y) dy 2

(6.1.22)

and so by setting
1 dT
= 2 (a2 + b2 ),
T (t) dt

1 d2 X
= (a)2 ,
X(x) dx2

1 d2 Y
= (b)2 ,
Y (y) dy 2

(6.1.23)

6.1. EXACT SOLUTIONS WITH SEPARATION OF VARIABLES

131

where a and b are arbitrary constants, we nd


T (t) =
X(x) =
Y (y) =

Ce

(a2 +b2 )t

(6.1.24)

A1 sin(ax) + A2 cos(ax),
B1 sin(by) + B2 cos(by),

(6.1.25)
(6.1.26)

where C, A1 , A2 , B1 , and B2 are arbitrary constants. Therefore, we obtain an exact solution as


u(x, y, t) = T (t)X(x)Y (y) = Ce

(a2 +b2 )t

[A1 sin(ax) + A2 cos(ax)] [B1 sin(by) + B2 cos(by)] ,

(6.1.27)

where C, A1 , A2 , B1 , and B2 are arbitrary constants which can be determined by specifying boundary conditions. Of
course, any linear combination of the solution with dierent a and b can also be an exact solution. Constants may
be determined to produce a desired solution for given domain and boundary conditions. But I like a simple one, even
simpler than the solution above. For example, I would set A1 = 1, A2 = 0, B1 = 1, and B2 = 0:
u(x, y, t) = T (t)X(x)Y (y) = Ce

(a2 +b2 )t

sin(ax) sin(by).

(6.1.28)

This solution in a square domain with the Dirichlet boundary condition is enough for verifying the accuracy of a diusion
scheme.

6.1.3

Advection-Diffusion Equation

Consider the two-dimensional advection-diusion equation,


ut + aux + buy = (uxx + uyy ),

(6.1.29)

where a, b, and are constants, and a2 + b2 6= 0. This can be transformed into the following form,
ut
+ u = (u + u ),
a2 + b2

(6.1.30)

where = ax + by and = bx ay (see Section 1.12 for the transformation). Basically, the coordinate system has
been chosen along and normal to the advection direction. So, there is only one advection term present, which is a
derivative along the advection direction. It is always nice to have less terms. I like it. To solve this, I rst assume
u(, , t) = T (t)X()Y (),

(6.1.31)

substitute it into the advection-diusion equation to nd


1 dX
d2 X
d2 Y
dT
1
=

+
+
,
(a2 + b2 )T (t) dt
X() d
X() d 2
Y () d 2

(6.1.32)

and so by setting,
(a2

1
dT
= 2 (B 2 A2 ),
2
+ b )T (t) dt

1 d2 X
1 dX
+
= (A)2 ,
X() d
X() d 2

1 d2 Y
= (B)2 ,
Y () d 2

(6.1.33)

(6.1.34)

where A and B are arbitrary constants (the constants on the right hand sides have been chosen to make the solution
periodic in ), we nd
T (t) = C0 e
X() = C1 exp(1 ) + C2 exp(2 ),
where C0 , C1 , C2 , C3 , C4 are arbitrary constants, and

1 + 1 + 4A2 2 2
,
1 =
2

(a2 +b2 )(B 2 A2 )t

Y () = C3 sin(B) + C4 cos(B),

2 =

1 + 4A2 2 2
.
2

(6.1.35)
(6.1.36)

(6.1.37)

132

CHAPTER 6. EXACT SOLUTIONS I

Therefore, we obtain an exact solution as


u = T (t)X()Y () = C0 e

(a2 +b2 )(B 2 A2 )t

[C1 exp(1 ) + C2 exp(2 )] [C3 sin(B) + C4 cos(B)] . (6.1.38)

Note that it is easy to obtain a steady solution by taking A = B (see Section 7.3). This is very nice. But this solution
looks complicated to me. I cannot even think about taking a linear combination of this solution (which is also exact,
though). I like a simple one such as
!

1 1 + 4A2 2 2
u = C0 cos(B) exp
,
(6.1.39)
2
which has been obtained by taking C1 = 0, C2 = 1, C3 = 0, C4 = 1. I can now imagine what this solution looks like.
Can you?

6.1.4

Oscillating Solutions with Complex Variables

Notice that the exact solutions in the previous subsections will decay as time goes on and eventually vanish (because
of the exponential term). It would be nice also to have solutions which keep changing and never vanish. Then, I like
the idea of using the complex variables in separation of variables because it makes it possible to obtain such solutions
[40]. Consider the one-dimensional diusion equation,
ut = uyy ,

in y (0, d)

(6.1.40)

u(0) = 0,
u(d) = U cos(t),

(6.1.41)
(6.1.42)

with the time-dependent boundary conditions,

where U and are arbitrary constants. Note that it is very hard to apply the solution obtained in Subsection 6.1.2
to this problem because it is not compatible with the boundary condition at y = d. Now, an interesting strategy for
deriving an exact solution to this problem is to rst write the boundary condition as
u(d)

= U exp(it),

(6.1.43)

where i = 1, so that its real part describes the original condition; then, derive a solution by separation of variables,
which possibly involves complex variables; and nally extract the real part of the solution, which is the exact solution
for the original boundary condition. So, assume u(y, t) = Y (y)T (t) and substitute into the diusion equation to get
1 dT
d2 Y
= constant.
=
T (t) dt
Y (y) dy 2

(6.1.44)

The boundary condition suggests that the constant should be i, which leads to
T (t) =

C exp(it),

(6.1.45)

Y (y) =

A exp(y) + B exp(y),

(6.1.46)

where C, A, B are arbitrary constants and

(note that

i = [exp(i/2)]1/2

r
i

= (1 + i)k, k =
,
(6.1.47)

= exp(i/4) = (1+i)/ 2). The constants are determined by the boundary conditions:
=

B = A,

AC =

U
U
=
.
exp(d) exp(d)
2 sinh(d)

(6.1.48)

We thus obtain the complex solution,


u(y, t) = T (t)Y (y) =

sinh(y)
U exp(it).
sinh(d)

(6.1.49)

6.2. EXACT SOLUTIONS WITH COMPLEX VARIABLES

133

Finally, we take the real part of this to get the solution to the original problem,
u(y, t) = Q [sinh(ky) cos(ky) sinh(kd) cos(kd) + cosh(ky) sin(ky) cosh(kd) sin(kd)] cos(t)
+Q [cosh(ky) sin(ky) sinh(kd) cos(kd) + sinh(ky) cos(ky) cosh(kd) sin(kd)] sin(t)

(6.1.50)
(6.1.51)

where
Q=

U
.
cosh (kd) cos2 (kd)
2

(6.1.52)

It looks a little complicated, but I like it. It is really nice that this solution does not decay in time and oscillates forever.
It can be a good test case for studying a long time behavior of a diusion scheme.

6.2

Exact Solutions with Complex Variables

I like the Cauchy-Riemann equations for the velocity potential and the stream function ,
x + y
x y

= 0,
= 0,

(6.2.1)
(6.2.2)

because this implies that and are the real and imaginary parts of an analytic function F of a complex variable
Z = x + iy:
F (Z) = (z, y) + i(z, y),
where i =

(6.2.3)

1, and its derivative is the complex velocity,


W (Z) = F = dF/dZ = u iv.

(6.2.4)

Note that any analytic function of Z represents a ow. In other words, we can generate an exact solution for a steady,
incompressible, inviscid, irrotational two-dimensional ow, just by picking up an analytic function of Z [49]. This is
very nice. In particular, I like the following examples:
(a) Flow around a corner of angle , where is measured with respect to the x-axis,
F = CZ / ,
W = u iv =

(6.2.5)
C /1
Z
.

(6.2.6)

If = , this is a uniform stream with the velocity C which is a constant. If = /2, this can be considered as
a ow against a horizontal wall (stagnation ow).
(b) Uniform Stream at an angle :
F = U Zei ,
i

W = U e

u = U cos ,
v = U sin .

(c) Source/Sink with a strength located at Z = Z0 = x0 + iy0 :

F =
ln(Z Z0 ),
2

,
W =
2(Z Z0 )

(6.2.7)
(6.2.8)
(6.2.9)
(6.2.10)

(6.2.11)
(6.2.12)

u=

x x0
,
2 (x x0 )2 + (y y0 )2

(6.2.13)

v=

y y0
.
2 (x x0 )2 + (y y0 )2

(6.2.14)

134

CHAPTER 6. EXACT SOLUTIONS I

(d) Doublet with a strength m at an angle located at Z = Z0 = x0 + iy0 :


mei
,
2(Z Z0 )
mei
W =
,
2(Z Z0 )2
F =



m (x x0 )2 (y y0 )2 cos + 2(x x0 )(y y0 ) sin
,
u=
2
2
[(x x0 )2 + (y y0 )2 ]


m 2(x x0 )(y y0 ) cos (x x0 )2 (y y0 )2 sin
.
v=
2
2
[(x x0 )2 + (y y0 )2 ]

(6.2.15)
(6.2.16)

(6.2.17)

(6.2.18)

(e) Clockwise Vortex with a positive circulation located at Z = Z0 = x0 + iy0 :


i
ln(Z Z0 ),
2
i
,
W =
2(Z Z0 )
F =

u=

y y0

,
2 (x x0 )2 + (y y0 )2

v=

x x0
.
2 (x x0 )2 + (y y0 )2

(6.2.19)
(6.2.20)

(6.2.21)

(6.2.22)

(f) Superposition:
Above solutions can be superposed to create a new ow: e.g., a uniform ow around a cylinder (of unit radius) at
the origin is obtained by the sum of the uniform stream and the doublet.
F = U Z +

v=

(6.2.23)

U
,
Z2

(6.2.24)

U cos 2
,
r2

(6.2.25)

W = U

u = U

U
,
Z

U sin 2
.
r2

(6.2.26)

Here, the doublet strength m has been set m = 2U , so that the cylinder itself becomes a streamline. Also,
note that = has been taken, i.e. the doublet pointing against the uniform stream.
More examples are given in Section 7.10.

6.3

Superposition for Nonlinear Equations

Generally, the principle of superposition (a sum of solutions is also a solution) is valid only for linear equations. But it is
sometimes possible to superpose a solution onto another solution for nonlinear equations such as the Euler equations.
Consider superposing a perturbation velocity eld v to a mean ow with a constant velocity v :
v(x, t) = v + v (x x0 , t),

(6.3.1)

6.3. SUPERPOSITION FOR NONLINEAR EQUATIONS

135

where x0 indicates some reference center location of the perturbation eld (which may be the origin). More specically,
here we consider a type of solution in which the perturbation is convected at the mean ow velocity, i.e.,
v(x, t) = v + v (x x0 v t).

(6.3.2)

If such a solution exists, it will be very interesting. The perturbation ow eld will not aect the mean ow at all; it
will be simply convected in the uniform stream. Of course, the density, the pressure, and the temperature will also be
convected together at the mean ow velocity:
(x, t)
p(x, t)
T (x, t)

= (x x0 v t),

(6.3.3)

= p(x x0 v t),
= T + T (x x0 v t),

(6.3.4)
(6.3.5)

where only the temperature has been decomposed into the mean T and the perturbation T for the sake of convenience;
others can be obtained from the temperature. In particular, we consider only a ow with constant entropy (homentropic
ow), i.e., the following relations are valid,
p
p
=
,

T
T

1
 1

p
=
p

T
T

 1

(6.3.6)

which can be used to calculate p and from T . Then, we seek such a solution for the Euler equations:

+ div(v)
t

= 0,

(6.3.7)

1
v
+ (grad v)v + grad p
t

= 0.

(6.3.8)

Note that the energy equation is not needed for homentropic ows. Now, substituting the velocity (6.3.2), the density
(6.3.3), the pressure (6.3.4), and the temperature (6.3.5) into the Euler equations, we obtain
div(v ) = 0,
(grad v )v +

R
grad T
1

= 0.

(6.3.9)
(6.3.10)

R
where the isentropic relation dp
= 1 dT has been used to replace the pressure gradient by the temperature gradient.
This is interesting. This means that our desired unsteady solution exists if the perturbations satisfy the above steady
Euler equations. A good example is a vortex-type perturbation in two-dimensions:

ur

0,

(6.3.11)

= f (r),

(6.3.12)

where (ur , u ) is the perturbation velocity in polar coordinates and f (r) is a function to be determined later. Likewise,
the density, the pressure, and the temperature depend only on r. Then, the continuity equation and the -momentum
equation are identically satised, and we are left with the r-momentum equation,
(u )2
R dT
=
.
r
1 dr

(6.3.13)

Integrating this to the far-eld (r ), where the perturbation is assumed to vanish, we get
T =

1
R

f (r)2
dr.
r

(6.3.14)

Now, the form of f (r) needs to be chosen so that this can be fully integrated. A good choice for f (r) is
f (r) =

K (1r2 )/2
re
,
2

(6.3.15)

136

CHAPTER 6. EXACT SOLUTIONS I

which describes a vortex perturbation with the strength K and the rate of decay (it quickly decays to the far-eld
for a large value of ). Integrating (6.3.14) with this f (r), we obtain
T =

K 2 ( 1) (1r2 )
e
.
8 2 R

(6.3.16)

Using this result, we nally obtain the exact solution of a vortex, initially centered at (x0 , y0 ), convected in a uniform
ow:

where a =

p
p / ,

u(x, y, t)
a

2
u
u (x, y)
u
K
ye(1r )/2 ,
+
=

a
a
a
2a

(6.3.17)

v(x, y, t)
a

2
v
v (x, y)
v
K
+
=
+
xe(1r )/2 ,
a
a
a
2a

(6.3.18)

T (x, y, t)
T

T
T (x, y)
K 2 ( 1) (1r2 )
+
=1
e
,
T
T
8 2 a

(6.3.19)

(x, y, t)

T (x, y, t)
T

1
 1

(6.3.20)

p(x, y, t)
p

T (x, y, t)
T

 1

(6.3.21)

x x0 u t,

(6.3.22)

x =
y

y y0 v t,
q
x2 + y 2 .

(6.3.23)
(6.3.24)

I like this solution very much. It is really interesting that it is possible to superpose a vortex on a uniform ow and
that such a simple ow is an exact solution to the Euler equations. Moreover, other exact solutions could be obtained
in a similar way, i.e., by choosing some other steady solution as a perturbation.

6.4
6.4.1

Exact Solutions with Transformations


Cole-Hopf Transformations

One-Dimensional Viscous Burgers Equation


Consider the one-dimensional viscous Burgers equation,
ut + uux = uxx .

(6.4.1)

It is well known that the transformation


u = 2

x
(ln )
= 2 ,
x

(6.4.2)

called the Cole-Hopf transformation, relates u(x, t) and (x, t) > 0 in such a way that if is a positive solution of the
linear diusion equation,
t = xx ,

(6.4.3)

then, u is a solution of the Burgers equation (6.4.1). This means that we can generate various exact solutions of the
viscous Burgers equation simply by substituting exact solutions of the linear diusion equation into (6.4.2). This is
nice. I like it. See [9] for various exact solutions, and also see Subsection 7.7.1 for a few examples.

6.4. EXACT SOLUTIONS WITH TRANSFORMATIONS

137

Two-Dimensional Viscous Burgers Equation


Consider the two-dimensional viscous Burgers equations,
ut + uux + vuy (uxx + uyy ) = 0,
vt + uvx + vvy (vxx + vyy ) = 0.

(6.4.4)
(6.4.5)

Again, we have a nice transformation [28],


u = 2

(ln )
x
= 2 ,
x

v = 2

(ln )
y
= 2 ,
y

(6.4.6)

which relate u(x, t), v(x, t) and (x, t) > 0 in such a way that if is a positive solution of the linear diusion equation,
t = (xx + yy ),

(6.4.7)

then, u and v are solutions of the Burgers equations (6.4.4) and (6.4.5). See [28] for examples, or Subsection 7.7.3
for an example.
Vector Form of the Viscous Burgers Equation (3D)
Consider the vector form of the viscous Burgers equation,
Ut + (grad U)U = div grad U,

(6.4.8)

where U = [u, v, w]t . It is nice to know that there is in fact a vector version of the Cole-Hopf transformation. That
is, the transformation
U = 2 grad (ln ) = 2

grad
,

(6.4.9)

relates the solution vector U and a scalar function (x, y, z, t) > 0 in such a way that if is a positive solution of the
linear diusion equation,
t = div grad ,

(6.4.10)

then, U is a solution of the vector form of the viscous Burgers equation (6.4.8). This is very nice. I like it very much.
Viscous Burgers Equation with Source Terms
Consider the one-dimensional viscous Burgers equation with various source terms,
ut + uux = uxx + u2 ku + d,

(6.4.11)

where , , k, and d are constants. It is nice to be able to nd exact solutions to this equation. I like the following
derivation. The equation is transformed by
u=p

x
(ln )
=p ,
x

(6.4.12)

into
[(t xx )x + kx d/p] 2 + [t (p + 3)xx + px ] x [p + 2](x )3 = 0,

(6.4.13)

which is true for any if


(t xx )x + kx d/p = 0,
t (p + 3)xx + px = 0,
p + 2 = 0,

(6.4.14)
(6.4.15)
(6.4.16)

i.e., p = 2, and
d
= 0,
2
t xx 2x = 0,

(t xx )x + kx +

(6.4.17)
(6.4.18)

138

CHAPTER 6. EXACT SOLUTIONS I

thus resulting
2xx + kx +

d
= 0.
2

(6.4.19)

Insert a trial solution = C(t) ex , where C(t) is an arbitrary function of time, into this to nd the characteristic
equation,
22 + k +

d
= 0.
2

(6.4.20)

Then, this can be solved easily, i.e.,


=

k 2 4d
.
4

(6.4.21)

We now consider three cases: k 2 4d > 0, k 2 4d < 0, and k 2 4d = 0.


(a) Two distinct real roots: k 2 4d > 0

Denote the two distinct real roots by 1 and 2 , i.e.,

k k 2 4d
1 =
,
4
then one solution 1 is given by

2 =

k +

k 2 4d
,
4

1 = C1 (t) e1 x

(6.4.22)

(6.4.23)

where C1 (t) depends only on time, and it can be determined by inserting the solution into (6.4.15) and solving
the resulting ordinary dierential equation:
C1 (t) = K1 e1 (1 +2)t ,

(6.4.24)

where K1 is an arbitrary constant. Therefore, the solution is given by


1 = K1 exp [1 x + 1 (1 + 2)t] .

(6.4.25)

Now, we obtain a similar solution for the other root 2 , and superpose the two to get the general solution,
= K1 exp [1 x + 1 (1 + 2)t] + K2 exp [2 x + 2 (2 + 2)t] ,

(6.4.26)

where K2 is another arbitrary constant. Finally, we obtain an exact solution to the Burgers equation (6.4.11) by
(6.4.12),
u = 2

1 K1 exp [1 x + 1 (1 + 2)t] + 2 K2 exp [2 x + 2 (2 + 2)t]


.
K1 exp [1 x + 1 (1 + 2)t] + K2 exp [2 x + 2 (2 + 2)t]

(6.4.27)

(b) Complex conjugate roots: k 2 4d < 0


Express the complex roots as

1,2 = r ii ,
where
i=

1,

r =

k
,
4

i =

(6.4.28)

4d k 2
,
4

(6.4.29)

then insert these roots directly into (6.4.26), split it into the real and imaginary parts, and form a linear combination
of them to get the general solution,
2

= er x+(r i +2r )t [K1 cos + K2 sin ] ,

(6.4.30)

where K1 and K2 are arbitrary constants, and


= i x + 2(r i + i )t.

(6.4.31)

Therefore an exact solution is given by


u = 2

x
(r K1 + i K2 ) cos + (r K2 i K1 ) sin
.
= 2

K1 cos + K2 sin

(6.4.32)

6.4. EXACT SOLUTIONS WITH TRANSFORMATIONS

139

(c) Multiple roots: k 2 4d = 0


Denote the single root by s ,
s =

k
,
4

(6.4.33)

and nd the general solution of (6.4.19),


= es x [C1 (t) + x C2 (t)] .

(6.4.34)

Insert this into (6.4.15) and solve the resulting system of ordinary dierential equations for C1 (t) and C2 (t) straightforwardly to get
C1 (t) = 2K1 (s + )t es (s +2)t ,
C2 (t) =

K2 es (s +2)t ,

(6.4.35)
(6.4.36)

where K1 and K2 are arbitrary constants, and thus obtain


= e1 x+s (s +2)t [K2 x + 2K1 (s + )t] .

(6.4.37)

Finally, we obtain an exact solution as follows,


u = 2

K (1 + s x) + 2K1 s (s + )t
x
= 2 2
.

K2 x + 2K1 (s + )t

(6.4.38)

Finally, I remark that the method described above is originally studied and exact solutions of a more general equation
is discussed in [6].

6.4.2

Hodograph Transformation

Consider the compressible continuity equation in two dimensions,


(u) (v)
+
= 0.
x
y

(6.4.39)

This is automatically satised by the stream function dened by


0
0
= y ,
y

0
0
= x ,
v=
x

u=

(6.4.40)
(6.4.41)

where the subscript 0 denotes the stagnation state. This stream function is governed by the nonlinear equation,
"
"
 2 2 #
 2 2 #
 2
y
0
x
x y
0
0
1

+
1

+
2
xy = 0,
(6.4.42)
xx
yy

c2

c2

c2
where c is the speed of sound given by
2

c =

c20

2

(x2 + y2 ),

(6.4.43)

and
"
# 1
 2 2
x + y2 1
1 0
0
.
= 1+

c2

(6.4.44)

These are basically derived from the irrotationality condition vx uy = 0 and the momentum equations (see [91]).
Obviously, it is not very easy to solve this nonlinear equation; it looks even more complicated than the nonlinear
potential equation (3.18.14). However, there is a nice way to get around it. That is, we exchange the independent

140

CHAPTER 6. EXACT SOLUTIONS I

variables (x, y) and the dependent variables (V, ), where V is the ow speed and is the ow angle, and transform
the equation (6.4.42) into




2
V 2
V 2 2
V2
+
V
1
+
+
1

= 0,
(6.4.45)
V 2
c2 V
c2 2
(see [91] for derivation). This is a linear dierential equation in and therefore can be solved relatively easily. In fact,
to nd analytical solutions, we dont really need to solve this in a formal way. Pick any function and see if it satises
the equation. If it does, then it is a solution. Moreover, any linear combination of such solutions (i.e., superposition)
is also a solution because the equation is linear. This is very nice. Especially, I like the solution called Ringlebs ow
described in Subsection 7.11.6. See [91] for other examples.

6.5

Exact Solutions for Linear Systems of Conservation Laws

Consider the linear hyperbolic system of one-dimensional conservation laws of the form,
U
U
+A
= 0.
t
x

(6.5.1)

where U = U(x, t) and A is a constant coecient matrix having real eigenvalues and linearly independent eigenvectors.
If we are given an initial solution as
U(x, 0) = U0 (x),
(6.5.2)
then, we can nd the exact solution as follows. First, we multiply (6.5.1) by the left-eigenvector matrix L (of A) from
the left,
L

U
U
+ LARL
t
x

0,

(6.5.3)

where R is the right-eigenvector matrix (the inverse of L). Because the matrix L is constant, we can write
(LU)
(LU)
+ LAR
t
x

= 0.

(6.5.4)

Dening the characteristic variables (or the Riemann invariants) by


W = LU,

(6.5.5)

and the diagonal matrix by = LAR, we arrive at the diagonalized form of the system (6.5.1).
W
W
+
= 0.
t
x

(6.5.6)

We point out that each component is now a linear scalar advection equation
wk
wk
+ k
= 0,
t
x

(6.5.7)

where wk denotes the k-th component of W and k is the k-th eigenvalue. Therefore, the exact solution of the k-th
component is given simply by
wk (x, t) = wk (x k t, 0).
(6.5.8)
Then, by denition (6.5.5), we obtain
U(x, t) = RW(x, t) =

wk (x, t)rk =

or equivalently, (by (6.5.5) again),


U(x, t) =

X
k

X
k

wk (x k t, 0)rk ,

(k U0 (x k t))rk ,

(6.5.9)

(6.5.10)

where k is the k-th row of L (the k-th left-eigenvector) and rk is the k-th column of R (the k-th right-eigenvector).
This is the exact solution for the initial solution (6.5.2).

6.6. SIMPLE WAVE SOLUTIONS FOR NONLINEAR SYSTEMS OF CONSERVATION LAWS

141

Now we consider a simple wave. A simple wave is dened as a solution whose variation is conned in a onedimensional subspace spanned by a single eigenvector. For example, if the initial solution is a j-th simple wave, we
project it onto the j-th eigenspace to write
X
U0 (x) =
(k U0 (x))rk
(6.5.11)
k

(j U0 (x))rj +

ck rk ,

(6.5.12)

k:k6=j

where ck are constant. Then, the exact solution (6.5.10) can be written as
X
U(x, t) =
(k U0 (x j t))rk
k

(j U0 (x j t))rj +

= U0 (x j t).

(6.5.13)
ck rk

(6.5.14)

k:k6=j

(6.5.15)

Therefore, the initial solution is preserved perfectly for a simple wave. This is natural because only one advection speed
is relevant in a simple wave. Finally, we give an example: set the following initial solution,
U0 (x) = U + sin(x) rj ,

(6.5.16)

where U is a constant state and is an amplitude of the sine wave, then the exact solution is given by
U(x, t) = U0 (x j t) = U + sin(x j t) rj .

(6.5.17)

It is indeed simple and also general enough to be applicable to arbitrary linear hyperbolic systems of the form (6.5.1).
Particularly, I like the fact that the result (and all the above discussion) is valid even for steady systems, i.e., (6.5.1)
with (x, t) replaced by (x, y) or (y, x). This is very nice.

6.6

Simple Wave Solutions for Nonlinear Systems of Conservation Laws

Consider the nonlinear hyperbolic system of one-dimensional conservation laws of the form,
U F(U)
+
= 0.
t
x

(6.6.1)

or

U
U
+ A(U)
= 0.
(6.6.2)
t
x
where U = U(x, t) and A(U) is a coecient matrix which is diagonalizable but no longer constant. Unlike the linear
case, for a given initial solution such as
U(x, 0) = U0 (x),
(6.6.3)

we cannot nd the exact solution generally in a closed form. To see this, as in the linear case, we multiply (6.6.2) by
the left-eigenvector matrix L from the left,
L

U
U
+ LARL
t
x

0.

(6.6.4)

Here is a diculty. We can no longer dene the characteristic variables as in (6.5.5) because L is not constant any
more. Instead, I dene the characteristic variables by
W = LU,

(6.6.5)

and arrive at the diagonalized form of the system.


W
W
+
t
x

= 0.

(6.6.6)

142

CHAPTER 6. EXACT SOLUTIONS I

Each component is now a nonlinear scalar advection equation with the exact solution,
wk (x, t) = wk (x k t, 0),

(6.6.7)

which is valid up to the time when a shock forms. Note that this solution is given implicitly in general because k
depends on the solution. Then, we use (6.6.5) to get the solution in the conservative variables, (6.6.5)
X
X
wk (x k t, 0)rk ,
(6.6.8)
wk (x, t)rk =
U(x, t) = RW(x, t) =
k

and so
U(x, t) =

X
k

(k U0 (x k t))rk .

(6.6.9)

I like it, but it is too bad that we cannot get U(x, t) unless this is integrable. We cannot project even the initial
solution onto the space of an eigenvector exactly:
X
(k U0 (x))rk .
(6.6.10)
U0 (x) 6=
k

Then, we consider a simple wave solution because it gives us a hope to get exact solutions. Let h(x, t) be any
smooth function that satises the j-th component of (6.6.6),
h
h
+ j (U)
t
x

0,

(6.6.11)

so that h(x, t) is the j-th characteristic variable wj (x, t) = h(xj (U) t) = h(), and assume that other characteristic
variables are constant. Then, we have from (6.6.5)
U(x, t) = rj (U) h(),

(6.6.12)

or because U(x, t) = U(), we may write


dU()
dh()
= rj (U)
.
(6.6.13)
d
d
If this is integrable, we can nd an exact solution U for the j-th simple wave. This is possible in some cases. Note
that the variable U can be taken to be any variable (e.g., conservative or primitive) as long as the eigenvector rj is
dened consistently. Some examples are given in the next section.

6.7

6.7.1

Some Exact Simple Wave Solutions

Case 1: rj = constant

I like eigenvectors that are independent of the solution because the ordinary dierential equation (6.6.13) is then trivial.
We readily obtain a simple wave solution as
U() = h() rj + constant.

(6.7.1)

The entropy wave in the Euler equations is a good example: the eigenvector, based on the primitive variables V =
[, u, p]t , is given by

1
(6.7.2)
rj = 0 ,
0
with eigenvalue j = u. So, it follows immediately from (6.7.1) that

= h(x u t) + constant,

u = constant,
p = constant.

(6.7.3)
(6.7.4)
(6.7.5)

This shows that the wave does not deform because the speed u is constant (the entropy wave is linearly degenerate).
Any function (even a discontinuous one) can be chosen for h(x). It will be simply convected at the velocity u.

6.7. SOME EXACT SIMPLE WAVE SOLUTIONS

6.7.2

143

Case 2: rj U

Consider the case where the eigenvector is proportional to the solution vector,
rj = M U,

(6.7.6)

where M is a constant matrix. In this case, we have from (6.6.13),

dh()
dU()
= MU
= M Uh ().
d
d

(6.7.7)

This is a linear system of ordinary dierential equations and therefore can be solved analytically by a standard technique.
This is nice. A good example is the Alfvn wave of the ideal magnetohydrodynamic equations. For the primitive variables
U = [, vx , vy , vz , Bx , By , Bz , p]t , where (vx , vy , vz ) is the velocity vector and (Bx , By , Bz ) is the magnetic eld, with
the coecient matrix,

vx

0
0
0
0
0

Bz
1
By

0 vx
0
0

4
4

Bx

0
vx
0

0
0
0
4

A=
(6.7.8)
,
Bx

0
0
0
0
v
0

0 B
B
0
v
0
0
y
x
x

0 Bz
0
Bx
0
vx
0

a2

where a is the speed of sound (a2 = p/), the eigenvector for the

Bz

By
r
j =


4 Bz

4 By

with the eigenvalues

vx

Alfvn waves is given by

(6.7.9)

Bx
.

j = vx
4

(6.7.10)

Note that zeroes in (6.7.9) correspond to the density, the velocity component vx , and the pressure. This means that
these variables are constant through the Alfvn waves (see Subsection 1.13.2). Therefore, the eigenvalues are constant;
this wave is linearly degenerate. Now, because the density is constant, the eigenvector is linear in the primitive variable,
(6.7.11)

rj = M U,
where U is taken to be the primitive variable and

0 0
0 0

0 0

M=
0 0
0 0

0 0
0 0

0 0 0
0
0
0 0 0
0
0
0 0 0
0
1
0 0 0
1
0
0 0 0
0
0

0 0 0 0
4
0 0 0
4
0

(6.7.12)

144

CHAPTER 6. EXACT SOLUTIONS I

Since only four variables, vy , vz , p, By , Bz , are


an exact solution by solving (6.6.13):


vy

d
vz =

B
d
y
Bz

relevant, we ignore other components in the following. Now, we derive


0
0
0
0

0
0
0
0

0
1
0
4

vy
1
vz
0

4 By
0
Bz


h ().

The standard diagonalization yields the decoupled system,

d(vy By / 4)
= 0,
d

d(vz Bz / 4)
= 0,
d

d(Bz + i By )
= i a (Bz + i By ) h (),
d

d(Bz i By )
=
i a (Bz i By ) h (),
d

(6.7.13)

(6.7.14)
(6.7.15)
(6.7.16)
(6.7.17)

whose general solution is


vy () =
vz () =
By () =
Bz () =

p
By ()/ 4 + cvy ,
p
Bz ()/ 4 + cvz ,
p
p
KR cos( 4 h()) + KI sin( 4 h()),
p
p
KI cos( 4 h()) KR sin( 4 h()),

(6.7.18)
(6.7.19)
(6.7.20)
(6.7.21)

where cvy , cvz , KR and KI are arbitrary constants. This is the exact simple wave solution for the Alfvn wave in the
most general form. Note that we can use only one solution, i.e., we can take only either
positive or negative sign in
the formula; otherwise it will not be a simple wave. Here is an example: take h() = / 4 and KI = 0, and obtain
the simple wave associated with +
j ,

vy (x +
j t)

(6.7.22)

vz (x

+
j t)

= KR cos(x +
j t) + cvy ,
=

(6.7.23)

Bz (x

+
j t)

By (x +
j t)

+
j t)

KR sin(x
+ cvz ,
p

4 KR cos(x +
=
j t),
p

= 4 KR sin(x +
j t),

(6.7.24)
(6.7.25)

where cvy , cvz , and KR are arbitrary constants, and KR = 4 KR . I like this simple Alfvn wave solution. It is
linearly degenerate, and therefore the wave must be preserved at all times. This can be a good test case for code
verication.

6.7.3

Case 3: Other cases

The acoustic wave in the Euler equations is a good example. In terms of the primitive variables, the acoustic eigenvectors
are given by

/a
1 ,
(6.7.26)
r
j =
a
where a is the speed of sound. The associated eigenvalues are

j = u a.

(6.7.27)

It must be kept in mind that there are two acoustic waves, + and , but we can take only either + or for this
solution to be a simple wave. Now, we insert these into (6.6.13) to get

/a
d
dh()
u = 1
.
(6.7.28)
d
d
p
a

6.7. SOME EXACT SIMPLE WAVE SOLUTIONS

145

This is nonlinear, except for the velocity which can be integrated easily,
Z u
Z h
dh
du =

(6.7.29)

to give
u() =

h() + u ,

(6.7.30)

where we have set h = 0 so that u is a mean ow value and any non-zero h can be thought of as a perturbation
to the mean ow. Now, the density component can also be integrated if the ow is adiabatic, i.e. if
p/ = p / .

(6.7.31)

We take advantage of this adiabatic relation to write the speed of sound in terms of the density as
a
a

 1
2

(6.7.32)

which is substituted into the rst component of (6.7.28) to yield


d
d

 3
2

dh()
.
a d

(6.7.33)

This can be integrated easily,


Z

/
1

 3
2

1
=
a

dh,

(6.7.34)

h =0

resulting
 2

1 h() 1
=
1
,
2 a

(6.7.35)

2


 1
1 u()
=
1
M
,
2
a

(6.7.36)

()

or by (6.7.30)
()

where M = u /a . The pressure follows from the adiabatic relation (6.7.31),


p()
p

()

2


 1
1 u()
.
= 1
M
2
a

(6.7.37)

This completes the derivation of the exact simple wave solution for the acoustic wave. Now, we summarize the exact
acoustic simple wave solution:
u(x
j t)
a

= M +

(x
j t)

"

1
1
2

u(x
j t)
M
a

"

1
1
2

u(x
j t)
M
a

p(x
j t)
p

h(x
j t)
,
a

(6.7.38)
2
!# 1
2
!# 1

(6.7.39)

(6.7.40)

where
j = u a and h is an arbitrary function which must be chosen to keep the density and the pressure positive.
This is a very nice solution, but it is given implicitly, i.e.,
j depends on the solution itself, and also it is valid only
when there are no shocks.

146

CHAPTER 6. EXACT SOLUTIONS I

We point out here that the simple wave solution satises Burgers equation as shown in Section 3.4.3. For example,
the simple wave solution corresponding to +
j = u + a satises (3.4.36) which is repeated here,
Vt + V Vx = 0,

(6.7.41)

2
where V = u + a. I like this because V = u + a can be written in terms of u only, by using the fact that u 1
a=
2
u 1 a = constant:


+1
1
V =
u + a
u ,
(6.7.42)
2
2

so that, by solving this for u, a solution V of Burgers equation (6.7.41) can be translated into the simple wave solution
of the Euler equation by


1
2
2
V ()
u()
1
=

M ,
(6.7.43)
a
( + 1) a
+1
2
where = x V t, and the density and the pressure follow from (6.7.39) and (6.7.40). Again, V must be chosen such
that the density and the pressure stay positive. I like this solution because basically I can add any constant to u (and
still V satises Burgers equation), and so we may set up a solution as
u()
V ()
2
= M +
,
a
( + 1) a

(6.7.44)

i.e., we use the solution V of Burgers equation as a perturbation to the mean ow. Compare this with (6.7.38) and
see how you can determine h() by a solution V () of Burgers equation. See Subsection 7.11.1 for some examples.
The bottom-line is that the exact solution can be obtained if (6.6.5) is integrable so that the Riemann invariants can
be dened explicitly. For example, the shallow-water equations and the isothermal Euler equations have this property.
I like such equations.

6.8

Manufactured Solutions

Pick any function, substitute it into a governing equation you wish to solve, and dene whatever left as a source term.
This way, you can cook up an exact solution to any equations (by introducing a source term). It is so simple. I like it
very much. Many people call such solutions manufactured solutions [83]. Here are some simple examples.
(a) 1D Linear Advection:
Substitute u = sin x into the advection equation (plus a possible source term f ), aux = f , to get
a cos x = f,

(6.8.1)

which suggests to dene f = a cos x. Therefore, we can say that the advection equation,
aux = f

with f = a cos x,

(6.8.2)

has the following exact solution,


u = sin x.

(6.8.3)

(b) Poisson Equation:


Substitute u = sin x + cos y into the Poisson equation, uxx + uyy = f , to get
sin x cos y = f,

(6.8.4)

which suggests to dene f = sin x cos y. Therefore, the Poisson equation,


uxx + uyy = f

with f = sin x cos y,

(6.8.5)

has the following exact solution,


u = sin x + cos y.

(6.8.6)

I like cooking up exact solutions this way, but it always introduces a source term, i.e., an additional complication
to the original equation. Honestly speaking, I dont really like source terms because a scheme could lose its formal
accuracy unless the source term discretization is carefully designed [34, 59, 115].

6.9. FINE GRID SOLUTIONS

147

(c) 2D Linear Advection:


In this example, we manufacture a solution by choosing appropriate coecients rather than introducing a source
term. Substitute u = x2 + y 2 into the two-dimensional advection equation, aux + buy = 0, to get
2xa + 2yb = 0,

(6.8.7)

which can be true if we take a = y and b = x. Hence, the advection equation,


yux xuy = 0,

(6.8.8)

u = x2 + y 2 .

(6.8.9)

has the following exact solution,

After all, I like the method of manufactured solutions very much because it is very convenient and useful especially
for complicated equations, such as the Navier-Stokes equations [60, 87] and turbulence models [26, 89]. Also note that
exact solutions for compressible ow equations can be manufactured by substituting exact incompressible ow solutions
into compressible ow equations and generating appropriate source terms. This will be useful for manufacturing a
physically realistic exact solution, which does look like a ow.

6.9

Fine Grid Solutions

Some people use a numerical solution on a very ne grid as an exact solution: for example, compute the error of a
numerical solution against the ne grid solution, and estimate the order of accuracy of a scheme. I like the idea, but
this is wrong because the ne grid solution is not an exact solution. Such an error convergence study shows only how
quickly the solution converge to this particular ne grid solution, not to the exact solution. Note that the error or the
order of accuracy would not make sense at all if the scheme turned out to be inconsistent. You would then only know
how close your solution is to a wrong solution or how quickly your solution converges to the wrong solution. Anyway,
always remember that a ne grid solution is not an exact solution.

Chapter 7

Exact Solutions II
I like exact solutions because I can directly measure the errors of numerical solutions. In doing so, in many cases, the
domain can be in any shape, and the boundary condition can be specied directly by using the exact solutions (the
Dirichlet condition). Also, a regular domain may be used with a periodic boundary condition so that any boundary
issues can be avoided. In either way, exact solutions are very convenient and useful for code verication. Note that the
verication is to check if a numerical method is correctly implemented, i.e., to see if it is solving the target equation
with a design accuracy. Even if a code has been veried, it still needs to be validated, for example, with experimental
data, i.e., to see if it is solving the right equation. Exact solutions are useful generally for verication, not for validation.
See [83] for more details on the dierence between verication and validation.

7.1
7.1.1

Linear Advection
1D Linear Advection

I like the linear advection equation,


ut + aux = 0,

(7.1.1)

where a is a constant, because it simply means that any initial solution is merely convected at the speed a, preserving
its initial prole. The exact solution in the general form is therefore given by
u = f (x at),

(7.1.2)

for the initial solution u(x, 0) = f (x). Note that we can avoid, in many cases, any boundary issues by using a periodic
boundary condition: u(1) = u(0) in the domain x [0, 1]. I like this periodic boundary condition very much. It is very
interesting that it can be interpreted as transforming the plane domain into a cylinder surface by rolling up the plane
with respect to the vertical axis and connecting the left and right boundaries. Here are some examples.
(a) Smooth solution (Figure 7.1.1):
u = sin[2(x at)],

(7.1.3)

for the initial solution u(x, 0) = sin(2x).


(b) Steep solution (Figure 7.1.2):


(x x0 at)2
u = exp
,
d
h
i
2
0)
for the initial solution u(x, 0) = exp (xx
where d is a constant, e.g., d = 0.01.
d

(7.1.4)

(c) Discontinuous solution (Figure 7.1.3):

u=

if xL + at < x < xR + at,

elsewhere,
149

(7.1.5)

150

CHAPTER 7. EXACT SOLUTIONS II

dx/dt = a

dx/dt = a

-1
0

dx/dt = a

Figure 7.1.1: Smooth solution.

Figure 7.1.2: Steep solution.

Figure 7.1.3: Discontinuous Solution.

where xL and xR are arbitrary constants that specify the width of the non-zero part of the solution. Remember
that discontinuous solutions do not satisfy the dierential form of the advection equation but do satisfy the integral
form (2.1.8).

7.1.2

2D Linear Advection

Of course, I like the linear advection equation in two dimensions also,


ut + aux + buy = 0,

(7.1.6)

where (a, b) is a constant advection vector. Any initial solution is simply convected at the velocity (a, b), preserving
its initial prole. The exact solution in the general form is given by
u(x, y, t) = f (x at, y bt),

(7.1.7)

for the initial solution of the form, u(x, y, 0) = f (x, y). Here are some examples.
(a) One-dimensional wave solution: (a, b) = (a, 0),
u(x, y, t) = U + A sin[2(x at)],

(7.1.8)

where U and A are arbitrary constants.


(b) Two-dimensional plane wave solution:
u(x, y, t) = U + A sin(x + y ct).

(7.1.9)

where U and A are arbitrary constants, and c = a + b.


(c) Discontinuous solution:
In the square domain, (x, y) [0, 1] [0, 1], with a > 0 and b > 0,
(
uL if ay bx > 0,
u=
uR elsewhere,

(7.1.10)

where uL and uR are arbitrary constants, with the inow condition, u(0, y) = uL and u(x, 0) = uR . See Figure
7.1.4.
(d) Steady solution:
I like the characteristic coordinates,
= ax + by,

(7.1.11)

= bx ay,

(7.1.12)

7.1. LINEAR ADVECTION

151
y
1

uL

uR
O

Figure 7.1.4: Discontinuous Solution. Two constant states uL and uR are separated along the
characteristic passing through the origin with the slope 1.

which give
x = x + x = a + b ,
y = y + y = b a ,

(7.1.13)
(7.1.14)

ax + by = (a2 + b2 ) ,

(7.1.15)

and

because in these coordinates, the advection equation (7.1.6) is written as


ut + (a2 + b2 )u = 0,

(7.1.16)

u = 0.

(7.1.17)

so that the steady equation is simply

Hence, any function of is an exact solution to the two-dimensional linear advection equation: e.g.,
u = 3 + 2 + + 1,

u = sin(),

u = exp().

(7.1.18)

This is very nice, isnt it? I like it so much. Note that boundary values must be specied on inow boundaries,
according to the ow direction (a, b).

7.1.3

2D Circular Advection

The circular advection equation,


ut + aux + buy = 0,

(7.1.19)

where (a, b) = (y, x), describes a clockwise circular advection around the origin at the angular speed rad/sec.
I like it because it is a very simple and good test case to see how long a numerical scheme can accurately preserve an
initial prole. Here are some examples.
(a) Rotating Smooth Cone:
In the domain [1, 1] [1, 1], start with the initial solution,
u(x, y, 0) =
where r =

expr

/d

for r 0.25,
otherwise,

(7.1.20)

(x + 0.25)2 + y 2 and (a, b) = (2y, 2x). The cone returns to its initial position at t = 1.

152

CHAPTER 7. EXACT SOLUTIONS II

(b) Rotating Cylinder:


In the same setting as above, we may set instead
u(x, y, 0) =

1
0

for r 0.25,
otherwise,

(7.1.21)

to rotate a cylinder which is discontinuous and more dicult compute accurately than a cone.
(c) Steady solutions:
Here is a steady test case where the initial solution is set up as
(
f (x) for 0.65 x 0.35,
u(x, 0, 0) =
0
elsewhere,

(7.1.22)

in the domain [1, 1] [0, 1]. The initial prole f (x) is then convected in a clockwise circular direction; the exact
steady solution is given, in the polar coordinates (r, ), by
(
f (r) for 0.65 r 0.35,
(7.1.23)
u(r, ) =
0
elsewhere.
At a steady state, for example, we may compare the solution at the outow boundary where x > 0 and y = 0 with
the initial prole to see how well its initial shape has been preserved. Here are examples of f (x):
(c-1) Smooth solution:
f (x) = exp(x+0.5)

/0.01

(c-2) Discontinuous solution:


(
1 for 0.65 x 0.35,
f (x) =
0 elsewhere.

(7.1.24)

(7.1.25)

I like the smooth one better because the numerical error should converge to zero as I rene the mesh whereas
it will not converge generally if the solution is discontinuous. But, of course, if I am interested to study the
non-oscillatory behavior of numerical solutions, I would use the discontinuous one for which numerical oscillations
are more likely to occur.

7.1.4

3D Circular (Helicoidal) Advection

I like the 3D circular advection equation,


ut + aux + buy + cuz = 0,

(7.1.26)

(a, b, c) = (z, V, x),

(7.1.27)

where

and > 0 and V > 0. This describes a ow rotating clockwise around (at the angular speed rad/sec) and
simultaneously transported (at the speed V ) along the y-axis. So, any initial solution imposed on the (x, y)-plane at
z = 0 is rotated around and transported along the y-axis. For example, in the domain dened by
(x, y, z) [1, 0] [0, 1] [0, 1],

(7.1.28)

if we specify the initial solution,





u(x, y, 0) = exp 50 (x + 0.5)2 + (y 0.5)2 ,

in the (x, y)-plane at z = 0, then the exact steady solution in the (y, z)-plane at x = 0 is given by



u(0, y, z) = exp 50 (y 0.5 V )2 + (z 0.5)2 .

It is a very simple and useful solution for evaluating the accuracy of a three-dimensional advection scheme.

(7.1.29)

(7.1.30)

7.2. DIFFUSION EQUATION

153

t=0

t=0.2
t=0.6

-1

Figure 7.1.5: Unsteady solution of the 1D diusion equation. n = 2.

7.2

Diffusion Equation

I like the diusion equation because it is easy to obtain exact solutions by separation of variables (see Section 6.1).

7.2.1

1D Diffusion Equation

The one-dimensional diusion equation,


ut = uxx ,

in [0, 1],

(7.2.1)

has the following exact solutions.


(a) Time dependent solution (Figure 7.1.5):
2 2
u = en t sin(nx),

(7.2.2)

for the initial solution u(x, 0) = sin(nx) with the boundary conditions u(0, t) = u(1, t) = 0. where n is an
integer. I like this simple solution, but if you are looking for something more involved, you can generate it yourself
by superposition (see Section 6.1).
(b) Steady solution (a simple linear function):
u(x) = (1 x)uL + xuR ,

(7.2.3)

with the boundary conditions u(0) = uL and u(1) = uR . This is too simple. Any diusion scheme should be able
to compute this exactly.

7.2.2

2D Diffusion Equation

The two-dimensional diusion equation,


ut = (uxx + uyy ),

in (0, 1) (0, 1),

(7.2.4)

has exact solutions of the form,


2 2
2
u(x, y, t) = e (n + m )t sin(nx) sin(my),

(7.2.5)

where n and m are integers so that u = 0 on the boundary. Various other exact solutions can be obtained by
superposition as mentioned earlier in Section 6.1. I like the two-dimensional diusion equation especially because it is
nothing but the Laplace equation at a steady state and therefore it has many many exact steady solutions (see Section
7.8).

154

CHAPTER 7. EXACT SOLUTIONS II

Re=10.0
0
0

Re=25

Figure 7.2.1: Boundary Layer.

7.2.3

0
0

Re=25

Figure 7.2.2:
ap = 0.3.

Friedrichs model.

0
0

Figure 7.2.3: Manufactured solution. C = 1/Re .

3D Diffusion Equation

The three-dimensional diusion equation,


ut = (uxx + uyy + uzz ),

in (0, 1) (0, 1) (0, 1),

(7.2.6)

has exact solutions such as


2 2
2
2
u(x, y, z, t) = e (n + m + l )t sin(nx) sin(my) sin(lz),

(7.2.7)

where n, m, and l are integers so that u = 0 on the boundary. Other exact solutions can be obtained by superposition
as mentioned earlier in Section 6.1. Of course, I like this equation because it is again nothing but the Laplace equation
at a steady state and it has many many many exact solutions (see Section 7.8).

7.3

Advection-Diffusion Equation

7.3.1

1D Advection-Diffusion Equation

The one-dimensional advection-diusion equation,


ut + aux = uxx ,

(7.3.1)

where a and (> 0) are constants, has the following exact solutions.
(a) Time-dependent solution:
u = exp(k 2 t) sin k(x at)

in [0, 1],

(7.3.2)

where k is an arbitrary constant, for the initial condition u(x) = sin(kx) with a periodic boundary condition.
(b) Steady boundary-layer type solution (Figure 7.2.1):
u=

1 exRe
1 eRe

in [0, 1],

(7.3.3)

where Re = a/, with the boundary conditions u(0) = 0 and u(1) = 1.


(c) Steady boundary-layer type solution (Figure 7.2.2):
The Friedrichs model is given by
uxx + ux c = 0

in (0, 1),

(7.3.4)

7.3. ADVECTION-DIFFUSION EQUATION

155

(a) t = 0.0

(b) t = 0.05

(c) t = 0.1

Figure 7.3.1: Unsteady solution (7.3.12): C = 0.01, = 0.5, a = 1, b = 0, A = 0.5, B = 2.0.


where c is an arbitrary constant (modeling the pressure gradient). This has the exact solution,
u = cx + (1 c)

1 exRe
,
1 eRe

(7.3.5)

where Re = 1/, with the boundary conditions u(0) = 0 and u(1) = 1. Particularly I like this one because it
has an interesting geometrical interpretation. The solution curve in the three-dimensional space with coordinates
(u, x, p = ux ) is an intersection of two surfaces dened by
p + u cx = constant,

x + ln(p c) = constant,

(7.3.6)
(7.3.7)

where the constants are determined by the boundary condition. See [70] for details. The solution shown in Figure
7.2.2 is a projection of this curve onto (x, u)-plane.
(d) Manufactured solution (Figure 7.2.3):
u=

1 exRe
+ C sin(x) in [0, 1],
1 eRe

(7.3.8)

where C is an arbitrary constant, is the exact solution of the following steady equation,
aux = uxx + C [a cos(x) + sin(x)] .

(7.3.9)

I like this solution because it is non-trivial in the diusion limit (Re 0).

7.3.2

2D Advection-Diffusion Equation

The two-dimensional advection-diusion equation,


ut + aux + buy = (uxx + uyy ),

(7.3.10)

where a, b, and (> 0) are constants, has the following exact solutions.
(a) Unsteady solution 1 (Figure 7.3.1):
As derived in Section 6.1.3, we have the following exact unsteady solution,
!

2 2 2
2
2
2
2
2
1

1
+
4A
,
u(x, y, t) = Ce (a +b )(B A )t cos(B) exp
2

(7.3.11)

where = ax + by, = bx ay, and A, B, and C are arbitrary constants. If we rationalize the exponent, we
obtain


2A2 2
2 (a2 +b2 )(B 2 A2 )t

u(x, y, t) = Ce
cos(B) exp
,
(7.3.12)
1 + 1 + 4A2 2 2
which can be used safely in the diusion limit, i.e., as 0. So, I like this one better.

156

CHAPTER 7. EXACT SOLUTIONS II

(a) t = 0.0

(b) t = 0.5

(c) t = 1.0

Figure 7.3.2: Unsteady solution (7.3.13): C = 50.0, = 0.15, a = 2.5, b = 2.5, c1 = 1.0, c2 = 1.0.
(b) Unsteady solution 2 (Figure 7.3.2):
Here is another exact unsteady solution to the advection-diusion equation (7.3.10):


C
(x at c2 )2
(y bt c2 )2
u(x, y, t) =
,
exp

4t + c1
(4t + c1 )
(4t + c1 )

(7.3.13)

where C, c1 , and c2 are arbitrary constants. I like the fact that this will reduce to an exact solution of the
two-dimensional diusion equation if we set a = b = 0.
(c) Polynomial solutions:
Quadratic:
Cubic:

Quartic:


u(x, y) = u0 + C1 + C2 2 + 2 ,

(7.3.14)





3
2
+ C5 +
,
u(x, y) = u0 + C3 + C4 +
2
6




3
2
+ C8 +
u(x, y) = u0 + C6 + C7 +
2
6


2
4
2 2


,
+
+
+ C9 3 +
2
2
24

(7.3.15)

(7.3.16)

where u0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 are all arbitrary constants. I like these polynomial solutions


because I can directly check, for example, whether a numerical scheme can preserve a quadratic/cubic/quartic
exact solution. Such a polynomial-preserving property can be a useful measure of the accuracy of a scheme,
especially on unstructured grids.
(d) Exponential solution (Figure 7.3.3):
Simply by setting A = B in (7.3.12), we obtain the following steady exact solution:


2A2 2

u(x, y) = C cos(A) exp


,
1 + 1 + 4A2 2 2

(7.3.17)

where C and A are arbitrary constants. I like this solution because it is very smooth and thus can be easily used
to verify the accuracy of numerical schemes.
(e) Boundary-layer type solution 1 (Figure 7.3.4):

 

1 exp (x 1) a
1 exp (y 1) b




u(x, y) =
1 exp a
1 exp b

in [0, 1] [0, 1].

(7.3.18)

This solution can be useful when we test a scheme for resolving boundary layers [103]. How would you avoid
spurious oscillations? Would you use a stretched mesh or an upwind scheme?

7.4. ADVECTION-REACTION EQUATION(3D)

157

Figure 7.3.3: Exponential steady solution (7.3.17): C =


0.009, = 0.1, a = 1.0, b = 0.0, A = 2.0.

Figure 7.3.4: Boundary-layer type solution (7.3.18): =


0.05, a = 1.0, b = 1.0.

(f) Boundary-layer type solution 2:


It is possible to construct an exact solution by superposing two one-dimensional exact solutions: e.g.,
u(x, y) = Cx

1 eby/
1 eax/
+ Cy
a/
1e
1 eb/

in [0, 1] [0, 1],

(7.3.19)

where Cx and Cy are arbitrary constants. Note that the rst term satises aux = uxx and the second term satises
buy = uyy : the sum of them satises the two-dimensional advection-diusion equation, aux +buy = (uxx +uyy ).
I like this type of solution because it has no cross-derivatives such as uxy or uxxy .

7.4

Advection-Reaction Equation(3D)

The advection-reaction equation,


ut + aux + buy + cuz = ku,

(7.4.1)

has the exact solution of the form,


u(x, y, z, t) = ekt f (x at, y bt, z ct),

(7.4.2)

where u(x, y, z, 0) = f (x, y, z); and its two-dimensional version,


ut + aux + buy = ku,

(7.4.3)

u(x, y, t) = ekt g(x at, y bt),

(7.4.4)

has the exact solution of the form,

where u(x, y, 0) = g(x, y); and its one-dimensional version,


ut + aux = ku,

(7.4.5)

u(x, t) = ekt h(x at),

(7.4.6)

has the exact solution of the form,

158

CHAPTER 7. EXACT SOLUTIONS II

where u(x, 0) = h(x). Basically, I like all these solutions because they can be derived very easily. All are derived from
the fact that
du
= ku,
dt

(7.4.7)

along the characteristic (dx/dt, dy/dt, dz/dt) = (a, b, c), or by the change of variables,
u = e 3 ( a + b + c ) v,
k

(7.4.8)

which transforms (7.4.1) into a pure advection equation of v. Either way, it is very simple to derive an exact solution.

7.5

Spherical Advection Equation (3D)

Consider the spherical advection equation:


u
ut + ur = ,
r

(7.5.1)

where r is the distance from the origin. This equation was used in [50] as a model for aeroacoustics for studying the
long-time behavior of advection schemes in a large domain r [5, 400]. I like this equation because it can be written
as
(ru)t + (ru)r = 0,

(7.5.2)

so that the exact solution is simply ru(r, t) = f (r t), i.e.,


u(r, t) =

1
f (r t),
r

where f is determined by the initial condition, say u(r, 0) =

7.6
7.6.1

1
r

(7.5.3)

sin(2r), meaning f (r) = sin(2r). This is very nice.

Burgers Equation
1D Burgers Equation

For the one-dimensional Burgers equation,



t u + x u2 /2 = 0,

or

t u + u x u = 0,

(7.6.1)

(7.6.2)

basically a shock is developed if the initial solution is monotonically decreasing (characteristics converging) while a
rarefaction is developed if monotonically increasing (characteristics diverging). What is nice about this equation is that
u is constant along the characteristics dx/dt = u, which in turn means that the characteristics are straight lines. So,
it is very easy to nd the exact solution (simply trace back along a characteristic line) until characteristics collide with
each other to form a shock. In particular, I like the following exact solutions.
(a) Smooth solution turning into a shock (Figure 7.6.1):
A smooth initial solution such as
u=

1
sin(2x),
2ts

x [0, 1],

(7.6.3)

with the periodic boundary condition u(0, t) = u(1, t) = 0, leads to the following exact solution,
u=

1
sin[2(x ut)],
2ts

(7.6.4)

7.6. BURGERS EQUATION

159

A
0

A
0

Figure 7.6.1: Smooth solution turning into a shock:


solid line at t = 0, dashed line at t = 0.5, and dotted
1
with ts = 1.
line at t = 0.9. A = 2t
s

Figure 7.6.2: Smooth solution spreading out: solid


line at t = 0, dashed line at t = 0.5, and dotted line
at t = 0.9. A = 0.2 and k = 20.

where ts is a free parameter that species the time when a shock is formed, i.e., x u at x = 0.5. Note that
it is given implicitly and therefore must be solved numerically at each point and time (x, t): for example, for a
given location xi at time tn , iterate on uki by a simple xed-point iteration,
uk+1
=
i

1
sin[2(xi uki tn )],
2ts

(7.6.5)

until |uk+1
uki | < 1015 . I like this solution because it can be used continuously to measure the numerical
i
accuracy up to the shock formation as well as to test the shock-capturing capability after the shock formation.
(b) Smooth rarefaction (Figure 7.6.2):
A smooth initial solution such as
u = A tanh(k(x 0.5)),

(7.6.6)

u = A tanh(k(x 0.5 ut)),

(7.6.7)

leads to the following exact solution,

where A and k are arbitrary constants. Of course, it is given implicitly again, but can be computed numerically as
in the previous one.
(c) Compression turning to a shock (Figure 7.6.3):
A linear initial condition such as

u(x, 0) =

3
2

if x 0,

3
2x if 0 < x < 1,

1
if x 1,
2

(7.6.8)

160

CHAPTER 7. EXACT SOLUTIONS II

t
1

u = uL

u = 3/2
0.5

u=

u=

Shock

1
2

3 4x
2 4t

0.75

u = uR (x 1)
1

1 x

Figure 7.6.3: Compression wave turning into a straight


shock at (x, t) = (0.5, 0.75).

Figure 7.6.4: Accelerating shock wave solution with the


uR exp(uR /2)
.
parameters: uR = 5.0 and uL =
exp(uR /2) 1

leads to the following exact solution: the solution before a shock is formed,

if x 3t

2,

3 4x
t
u(x, t < 1/2) =
if 3t
2 < x < 1 2,

4t

1
if x 1 2t ,
2

(7.6.9)

and the solution after the shock is formed at t = 1/2,

It is quite simple. I like it.

3
2
u(x, t 1/2) =

1
2

if x

1+t
2 ,

if x

1+t
2 ,

(7.6.10)

(d) Accelerating shock (Figure 7.6.4):


A linear initial condition,
u(x, 0) =

uL

if x 0,

u (x 1) if x > 0,
R

where uL and uR (< uL ) are arbitrary constants, leads to the following exact solution:

uL
if x xs (t),

u(x, t) =
u (x 1) if x x (t),
R
s

(7.6.11)

(7.6.12)

where xs (t) is the location of the shock. See Figure 7.6.4; observe that the shock is accelerating. The shock path
can be obtained by solving the ordinary dierential equation for the shock speed (2.9.3),
Vs (t) =

dxs (t)
uL + uR (x 1)
=
,
dt
2

(7.6.13)

7.6. BURGERS EQUATION


t

161
Vs =

uL + uR
2

t dx = uL
dt
dx
= uR
dt

u = uL (> uR )

u = uL (< uR )

u = uR

u = uR

Figure 7.6.5: Isolated Shock for the 1D Burgers equation.

Figure 7.6.6: Rarefaction for the 1D Burgers equation.

with the initial condition xs (0) = 0. The solution is




 u i
uL h
R
t .
1 exp
xs (t) = 1
uR
2

(7.6.14)

uR exp(uR /2)
, we have xs (1) = 1, i.e., the shock will reach x = 1 at t = 1. uR is then the only
exp(uR /2) 1
free parameter. For the solution in Figure 7.6.4, we have taken uR = 5. I like this solution very much. This is a
very good test case to check if a numerical scheme can compute a shock wave with the correct traveling speed. It
is well-known that conservation is very important to ensure a correct shock speed. The shock wave computed by
a non-conservative scheme is unlikely to reach x = 1 at t = 1.
If we set uL =

7.6.2

1D Burgers Equation: Riemann Problems

The Riemann problem consists of a hyperbolic equation and piecewise constant initial data with a single discontinuity.
I like it especially because I can cook up exact solutions easily. Consider the Riemann problem for Burgers equation,

(7.6.15)
t u + x u2 /2 = 0,
u(x, 0) =

uL
uR

if x < 0,
if x > 0.

(7.6.16)

This has the following exact solutions.


(a) Shock (Figure 7.6.5):
Choose uL and uR such that
uL > u R ,

(7.6.17)

then a shock is created and it will travel at the speed,


Vs =

uL + uR
,
2

(7.6.18)

and so, the exact solution is given by


u(x, t) =

uL
uR

if x/t < Vs ,
if x/t > Vs .

(7.6.19)

(b) Rarefaction (Figure 7.6.6):


Choose uL and uR such that
uL < u R ,

(7.6.20)

162

CHAPTER 7. EXACT SOLUTIONS II


t

u = uR (> 0)

u = uL = uR

Figure 7.6.7: Sonic Rarefaction for the 1D Burgers equation.

then a rarefaction wave is created, and the exact solution is given by

uL
if x/t < uL ,

x/t uL
x/t uR
u(x, t) =
uL +
uR if uL < x/t < uR ,

u
u R uL
L
R

uR
if x/t > uR .

(7.6.21)

(c) Sonic Rarefaction (Figure 7.6.7):


Choose uL and uR such that

uL < 0,

uR > 0,

and uL = uR ,

(7.6.22)

then a rarefaction wave is created at the center, expanding to the left and the right at the same speed, which is
called a sonic rarefaction. The exact solution is given by

uL if x/t < uL ,

x/t if uL < x/t < uR ,


(7.6.23)
u(x, t) =

uR if x/t > uR .

Some numerical schemes fail to compute this solution, preserving the initial discontinuity which must break up
immediately.

7.6.3

2D Burgers Equation

The two-dimensional Burgers equation of the form,


uux + uy = 0,

(7.6.24)

is basically a one-dimensional equation with y considered as time. So, any time-dependent one-dimensional solutions
can be exact solutions of this equation if t is replaced by y. Namely, any exact solutions for ut +uux = 0 in (x, t)-space,
such as those in Subsections 7.7.2 and 7.6.2, are exact solutions for uy + uux = 0 in (x, y)-space. For example, those
in Figures 7.6.3, 7.6.4, 7.6.5, 7.6.6, and 7.6.7 can be directly interpreted, with t replaced by y, as the exact solutions
of the two-dimensional equation (7.6.24). This is very convenient. I love it. Actually, the curved shock solution in
Figure 7.6.4 is my favorite, and I have used it as a test case for mesh adaptation [74].

7.7. VISCOUS BURGERS EQUATION

163

Vs=0.5

Figure 7.7.1: Unsteady solution of the 1D viscous Burgers equation. uL = 1, uR = 0, = 0.01.

7.7

Viscous Burgers Equation

7.7.1

1D Viscous Burgers Equation

Figure 7.7.2: Steady solution of the 1D viscous Burgers


equation. x0 = 0.5, b = 1.0, c = 0.5, = 0.01.

The one-dimensional viscous Burgers equation,


ut + uux = uxx ,

(7.7.1)

has the following exact solutions.


(a) Unsteady/Steady solution (Figure 7.7.1):
1 + (2a 1) exp((1 a)/)
,
1 + exp((1 a)/)
= x at x0 ,

(7.7.2)

u=

(7.7.3)

x0 , a, and are constants, e.g., x0 = 0.1, a = 0.5, = 0.001 (see [47]). This solution is nice because it can be
expressed also in the following form,



1
(uL uR )(x Vs t)
u = uR + (uL uR ) 1 tanh
,
(7.7.4)
2
4
where
Vs =

u L + uR
,
2

uL = lim u,
x

uR = lim u,
x

u L > uR .

(7.7.5)

Personally, I like this form better. It is very simple and intuitive. Moreover, if we take uR = uL , then the shock
speed Vs vanishes and thus we obtain a steady solution. This is also very nice.
(b) Steady solution (Figure 7.7.2):
A slightly modied version of the viscous Burgers equation [103],
ut + (bu c)ux = uxx ,

(7.7.6)




c(x x0 )
c
1 tanh
,
b
2

(7.7.7)

has the exact steady solution,


u=

where b(6= 0), c(6= 0), and x0 are arbitrary constants.

164

CHAPTER 7. EXACT SOLUTIONS II

Figure 7.7.3: Exact solution of the 1D viscous Burgers equation with source terms:
Solid t=0.0, Dash t=0.125, Dash-Dot t=0.25.

I like this version also [102],


ut + uux =

(uux )x ,
2

x (0, 1),

(7.7.8)

because it has the following very smooth steady exact solution:


u(x) = ex .

7.7.2

(7.7.9)

1D Viscous Burgers Equation with Source Terms

As shown in Subsection 6.4.1, the one-dimensional Burgers equation with source terms,
ut + uux = uxx + u2 ku + d,

(7.7.10)

where (> 0), , k, and d are arbitrary constants, has the following analytical solutions, depending on the value of
D = k 2 4d.
(a) D > 0
u = 2

1 K1 exp [1 x + 1 (1 + 2)t] + 2 K2 exp [2 x + 2 (2 + 2)t]


,
K1 exp [1 x + 1 (1 + 2)t] + K2 exp [2 x + 2 (2 + 2)t]

(7.7.11)

where K1 and K2 are arbitrary constants, and

k D
,
1 =
4

k + D
2 =
.
4

(7.7.12)

(b) D < 0
u = 2

(r K1 + i K2 ) cos + (r K2 i K1 ) sin
,
K1 cos + K2 sin

(7.7.13)

where K1 and K2 are arbitrary constants, and


= i x + 2(r i + i )t,

k
r =
,
4

i =

D
.
4

(7.7.14)

(c) D = 0
u = 2

K2 (1 + s x) + 2K1 s (s + )t
,
K2 x + 2K1 (s + )t

(7.7.15)

where K1 and K2 are arbitrary constants, and


s =

k
.
4

(7.7.16)

7.7. VISCOUS BURGERS EQUATION

165

Figure 7.7.4: Steady solution for the 2D viscous Bergers equation, (7.7.24) with = 0.05.

In particular, I like the case (a) because the following set of parameters generates a nice and smooth traveling wave
solution shown in Figure 7.7.3:
= 0.01,

K1 = 100.0,

K2 = 0.01,

= 0.1,

k = 0.5,

d = 0.6.

(7.7.17)

To be honest, I dont like other cases very much since I have not been able to discover a set of parameters which
produces a solution with no singularities.

7.7.3

2D Viscous Burgers Equations

The two-dimensional viscous Burgers equations,


ut + uux + vuy (uxx + uyy ) = 0,
vt + uvx + vvy (vxx + vyy ) = 0,

(7.7.18)
(7.7.19)

have an exact steady solution in the form [28],





2 a2 + a4 y + a5 e(xx0 ) e(xx0 ) cos(y)

,
u=
a1 + a2 x + a3 y + a4 xy + a5 e(xx0 ) + e(xx0 ) cos(y)



2 a3 + a4 x a5 e(xx0 ) e(xx0 ) sin(y)

,
v=
a1 + a2 x + a3 y + a4 xy + a5 e(xx0 ) + e(xx0 ) cos(y)

(7.7.20)
(7.7.21)

where a1 , a2 , a3 , a4 , a5 , x0 are arbitrary constants. In [28], the following set of parameters,


a1 = a2 = 1.3 1013 ,

a3 = a4 = 0,

a5 = 1,

= 25,

x0 = 1,

= 0.04,

(7.7.22)

are used to generate a smooth boundary-layer type solutions. Well, in fact, my favorite is the following two-dimensional
viscous Burgers equation,
ut + uux + uy uxx = 0.
This is nice because it is a scalar equation and also it has a simple and interesting exact steady solution:


y + 2x
1
u(x, y, t = ) = 4 tanh
.

(7.7.23)

(7.7.24)

As shown in Figure 7.7.4, this solution has a very simple boundary-layer type feature. A similar solution was used in
[18] to verify the accuracy of high-order schemes.

166

7.8

CHAPTER 7. EXACT SOLUTIONS II

Laplace Equation

I like the Laplace equation very much because it has a variety of solutions in two and three dimensions although it has
only a trivial linear solution in one dimension (7.2.3).

7.8.1

2D Laplace Equation

I like the two-dimensional Laplace equation:


uxx + uyy = 0.

(7.8.1)

It has various smooth solutions:


(a)

u = xy,

(7.8.2)

(b)

u = (x y)2 ,

(7.8.3)

(c)

u=

(d)

u = exp(kx) sin(ky),

(e)

u=

2y
,
(1 + x)2 + y 2

sinh(x) sin(y) + sinh(y) sin(x)


,
sinh()

(7.8.4)
(7.8.5)
(7.8.6)

where k is an arbitrary constant. We may take the domain to be [0, 1][0, 1] for all, and specify the boundary condition
directly by using the exact solutions (the Dirichlet condition)

7.8.2

3D Laplace Equation

The three-dimensional Laplace equation,


uxx + uyy + uzz = 0,

(7.8.7)

or in the spherical coordinates,


1
r2 r





2

1
r2
+ 2 2
sin

= 0,
+
r
r2 sin

r sin 2

(7.8.8)

has the following exact solutions.


k
,
r

(a)

u=

(b)

u = exp( 2kx) sin(ky) sin(kz),

(7.8.9)

(7.8.10)
p
where r = x2 + y 2 + z 2 and k is an arbitrary constant. In addition, it is possible to generate more solutions by
superposition: e.g.,

(7.8.11)
(c) u = A1 exp( 2k1 x) sin(k1 y) sin(k1 z) + A2 exp( 2k2 z) sin(k2 x) sin(k2 y)

+ A3 exp( 2k3 y) sin(k3 z) sin(k3 x),


(7.8.12)
where Ai and ki with i = 1, 2, 3 are arbitrary constants. This is nice. I like it.
Note also that any two dimensional solutions in the previous subsection and their linear combinations are exact
solutions to the three-dimensional Laplace equation. For example, these solutions,
(d)

u = xy + yz + zx,

(7.8.13)

(e)

u = (x y)2 + (y z)2 + (z x)2 ,

(7.8.14)

(f)

u = exp(kx) sin(ky) + exp(ky) sin(kz) + exp(kz) sin(kx),

(7.8.15)

7.9. POISSON EQUATIONS

167

are all exact solutions to the three-dimensional Laplace equation. There are many many many possible exact solutions
for the Laplace equation.

7.9

Poisson Equations

I like the Poisson equation because exact solutions can be easily manufactured (see Section 6.8). Basically, you can
easily cook up an exact solution simply by picking up a function u(x, y, z), substituting it into the left hand side of the
Poisson equation (i.e., the Laplacian part), and dening whatever left as the source term f (x, y, z).

7.9.1

2D Poisson Equations

The two-dimensional Poisson equation,


uxx + uyy = f (x, y)

(7.9.1)

has the following manufactured solutions:


(a)

u = exy

(b)

u = exp(kx) sin(ky) +

(c)

u = sinh x


x2 + y 2
u = exp
d

(d)

A 2
(x + y 2 )
4

with

f = (x2 + y 2 )exy ,

(7.9.2)

with

f = A,

(7.9.3)

with

f = sinh x,

(7.9.4)

with

 2

x + y2
4(x2 + y 2 + d)
exp
f=
,
d2
d

(7.9.5)

where k, A and d are arbitrary constants. Of course, as in two dimensions, we may take the domain to be [0, 1] [0, 1]
for all, and specify the boundary conditions directly by using the exact solutions. Also, we can superpose some of these
solutions to generate a new exact solution such as
u = Aexy + B sinh x

(e)

with f = A(x2 + y 2 )exy + B sinh x,

(7.9.6)

where A and B are arbitrary constants.

7.9.2

3D Poisson Equations

The three-dimensional Poisson equation,


uxx + uyy + uzz = f (x, y, z)

(7.9.7)

has the following manufactured solutions:

kxyz

(a)

u=e

(b)

u=

(c)

u = Cx sinh x + Cy sinh y + Cz sinh z

(d)

u = exp

A 2
(x + y 2 + z 2 )
6

r2
d

with f = k(x2 + y 2 + z 2 )exyz ,

(7.9.8)

with f = A,

(7.9.9)

with f = Cx sinh x + Cy sinh y + Cz sinh z,

(7.9.10)

 2
2(2r2 + 3d)
r
,
exp
d2
d

(7.9.11)

with f =

where k, A, Cx , Cy , Cz , and d are arbitrary constants, and r2 = x2 + y 2 + z 2 .

168

CHAPTER 7. EXACT SOLUTIONS II

7.10

Incompressible Inviscid Flows: Laplace/Cauchy-Riemann equations

Two-dimensional incompressible potential ows are governed by the Cauchy-Riemann equations, in terms of the streamfunction and the velocity potential ,
x + y

= 0,

(7.10.1)

x y

= 0,

(7.10.2)

ux + vy
vx uy

= 0,
= 0,

(7.10.3)
(7.10.4)

or in terms of the velocity components u and v,

or the Laplace equations:


xx + yy
xx + yy

= 0,
= 0,

(7.10.5)
(7.10.6)

uxx + uyy

= 0,

(7.10.7)

vxx + vyy

= 0.

(7.10.8)

or

Note that the incompressible potential ows satisfy the Euler equations in the incompressible limit. These ows can be
used to test a compressible Euler code. Some fundamental ows are given in Section 6.2. Actually, I like more realistic
ows such as those described in this section.

7.10.1

Cavity Flow

In a square domain [0, 1] [1, 0], a ow that comes out at the upper left corner and sinks in the upper right corner
is given by the following complex potential1 ,


g(Z)
F (Z) = + i = m ln
,
(7.10.9)
g( a2 )
!
sinh2 Z
2
 k=even 1

sinh2 k
Z
2
!,
(7.10.10)
g(Z) = sinh
2 Z
2a
sinh 2
k=odd 1
sinh2 k
2
where Z = x + iy, k = 1, 2, 3, , and m and a are arbitrary constants. This solution converges very fast: say, k = 20
is sucient in practice. For example, we take
2
m= ,

a = 1,

(7.10.11)
(7.10.12)

so that (x, y) and (x, y) take the following boundary values,


(x, 0) = 0,
(x, 1) = (0, y) = (1, y) = 1,
(0.5, 0) = 0,

(7.10.13)
(7.10.14)
(7.10.15)

i.e., the boundary becomes a wall (see Figures 7.10.1 and 7.10.2: the solutions with k = 22.).
The solution is singular at the upper corners: obviously, the stream function is multi-valued and the potential goes
positive/negative innity. But I like this solution. I can easily avoid the singularity, if I really wish, by restricting the
domain with the upper boundary taken somewhere a bit below y = 0.
1 This

solution was derived by Professor P. L. Roe at the University of Michigan.

7.10. INCOMPRESSIBLE INVISCID FLOWS: LAPLACE/CAUCHY-RIEMANN EQUATIONS

-0.5

-1

169

0.5

-0.5

-1

0.5

Figure 7.10.1: Cavity Flow: Velocity potential.

Figure 7.10.2: Cavity Flow: Streamlines

7.10.2

Flow over a Circular Cylinder

A ow over a circular cylinder is obtained by superposing a uniform stream, a doublet, and possibly a vortex, in the
form of the complex potential,


R2 ei
i
i
F (Z) = + i = V Ze
+
+
ln Z,
(7.10.16)
Z
2
i.e., with Z = rei ,


R2

= V cos( ) r +

,
r
2




R2
+
ln r,
= V sin( ) r
r
2

(7.10.17)

(7.10.18)

which give
ur =

u =




1
R2
=
= V cos( ) 1 2 ,
r
r
r



1

R2

=
= V sin( ) 1 + 2
.
r
r
r
2r

(7.10.19)

(7.10.20)

Alternatively, either from the complex velocity W (Z),




R2 ei
i
i
W (Z) = dF/dZ = u iv = V e

+
,
2
Z
2Z

(7.10.21)

u = ur cos u sin ,
v = ur sin + u cos ,

(7.10.22)
(7.10.23)

or from the relations,

we obtain the Cartesian velocity components,


u = V cos

y
(x2 y 2 ) cos + 2xy sin
V R 2 +
,
r4
2r2

(7.10.24)

v = V sin +

(x2 y 2 ) sin 2xy cos


x
V R 2
.
r4
2r2

(7.10.25)

170

CHAPTER 7. EXACT SOLUTIONS II

Figure 7.10.3: Pressure coecient Cp of the cylinder


ow: V = 1, = 0, =

Figure 7.10.4: Streamlines of the cylinder ow: V =


1, = 0, =

This describes a ow past a circular cylinder of radius R with the free stream V coming from the left at an angle of

attack . With non-zero , it can be a ow over a rotating cylinder whose rotating speed is given by 2R
. I like it
very much because I think that it is one of the most beautiful ows. The pressure can be obtained directly from the
Bernoullis equation (3.17.4), or in the form of the pressure coecient Cp ,
Cp =

u2r + v2
u2 + v 2
p p
=
1

=
1

.
1
2
2
2
V
V
2 V

(7.10.26)

The ow is symmetric with respect to both x-axis and y-axis if is zero. If it is not zero, the symmetry breaks
down (see Figures 7.10.3 and 7.10.4). The stagnation points (zero tangential velocity at r = R) are given by
sin stag =

,
4RV

(7.10.27)

where stag gives the location of a stagnation point. Note that the stagnation points do not exist on the cylinder
surface if
|| > 4RV .
Note also that a force F = (Fx , Fy ) acting on the cylinder can be obtained by the Blasius formula,
I
i
2
Fx iFy =
[W (Z)] dZ,
2 Cylinder

(7.10.28)

(7.10.29)

giving
Fx iFy = V ei(/2+) .

(7.10.30)

Therefore, the force acts perpendicular to the free stream, and so the drag D and the lift L are given by
L = V ,

D = 0.

(7.10.31)
(7.10.32)

This result is called the Kutta-Joukowsky theorem. Of course, I like it. It is very nice that the drag is zero. This is
actually called dAlemberts paradox since the drag will be non-zero in reality. But an Euler code (being without any
viscous eects) should be able to produce this paradoxical result. Can your Euler code predict a zero-drag potential
ow?

7.10. INCOMPRESSIBLE INVISCID FLOWS: LAPLACE/CAUCHY-RIEMANN EQUATIONS

171

y
-plane

Z-plane

f (), w()

F (Z), W (Z)
Z = g()

B
R

Figure 7.10.5: Conformal mapping from a circle to an ellipse. A = R + 2 /R2 and B = R 2 /R2 .

7.10.3

Flow over an Elliptic Cylinder

Analytic function g that maps a point = + i into a point Z = x + iy (see Figure 7.10.5):
Z = g(),

(7.10.33)

is called a conformal mapping. Consider a ow in Z-plane dened by the complex potential F (Z). This ow can be
mapped onto -plane easily by Z = g(). The corresponding ow in -plane is then described by the complex potential
f () given by
f () = F (g()),

(7.10.34)

and the complex velocity w() is given by


w() =

dF dZ
df ()
=
= W (g()) g ().
d
dZ d

(7.10.35)

Now, reverse the viewpoint. As a matter of fact, the mapping is useful in obtaining a complicated ow in Z-plane
from a simple ow in -plane: f () F (Z) and w() W (Z). For example, the Joukowsky transformation,
Z=+

2
,

(7.10.36)

maps a circle in -plane onto an ellipse in Z-plane with the foci at Z = 2, and a circle with radius onto a line
segment of length 4. I like the Joukowsky transformation, but I like its inverse better because it is more useful.
Suppose we wish to compute a velocity at a point Zp in Z-plane, but we know only f (), i.e., the complex velocity in
-plane (the simpler ow). Then, rst, we must map a point Zp back to the corresponding point p in -plane,
p = g 1 (Zp ),

(7.10.37)

W (Zp ) = W (g(p )) = w(p )/g (p ) = f (p )/g (p ).

(7.10.38)

and then compute the desired velocity by

This way, we can compute the velocity at a point Zp in Z-plane. The key is to have the inverse transformation g 1 at
hand. It is generally dicult to obtain the inverse transformation, but it is often possible to do so. For the Joukowsky
transformation (7.10.36), since it can be written in the form,
2


Z 2
,
(7.10.39)
=
Z + 2
+

172

CHAPTER 7. EXACT SOLUTIONS II

Figure 7.10.6: Pressure coecient Cp of the ow over


an ellipse:
V = 1, R = 3/4, = 10 , = 0,

= 3/4

Figure 7.10.7: Streamlines of the ow over


an ellipse:
V = 1, R = 3/4, = 10 , = 0, = 3/4.

an inverse is found to be
1

(Z + 2) 2 + (Z 2) 2
1 .
1
(Z + 2) 2 (Z 2) 2

(7.10.40)

With this, it is now possible to obtain the velocity in a ow over an elliptic cylinder (or a at plate) in Z-plane from a
ow over a circular cylinder in -plane, by setting up the complex potential,


i
R2 ei
f () = V ei +
+
ln ,
(7.10.41)

2
where R > (or R = for a at plate), leading to the velocity
W (Z) = u iv = f ()/g (),



R2 ei
i
i
V e

+
2

2
=
.
2
1 2

(7.10.42)

Note that we would have to use LHopitals rule to evaluate it at = .


The surface of the elliptic cylinder is dened by
x = A cos ,

(7.10.43)

y = B sin ,

(7.10.44)

A=R+

2
,
R

(7.10.45)

B =R

2
,
R

(7.10.46)

where

which can be inverted to get


R=
=

A+B
,
2

(7.10.47)

A2 B 2
.
4

(7.10.48)

7.10. INCOMPRESSIBLE INVISCID FLOWS: LAPLACE/CAUCHY-RIEMANN EQUATIONS

173

= + i

T E =

Figure 7.10.8: Circle that is mapped onto an airfoil.

So, now we can do the following.


Construction of an Ellipse:
1. Choose the major axis A and the minor axis B of the ellipse.
2. Generate an ellipse by (7.10.43) and (7.10.44) in Z-plane.
Computation of Exact Solution:
1. Determine R and by
A+B
,
2

R=

A2 B 2
.
4

(7.10.49)

2. Choose V , , and .
3. Pick any point Zp = xp + iyp (on or outside the ellipse), and get the corresponding p by (7.10.40).
4. Compute the exact velocity at the point Zp by (7.10.42), using p , and the pressure by
Cp =

p p
u2 + v 2
.
=
1

1
2
2
V
2 V

(7.10.50)

An example is shown in Figures 7.10.6 and 7.10.7.

7.10.4

Flow over an Airfoil

To generate a ow over an airfoil, rst set up a ow over a shifted circular cylinder in -plane as follows. Consider a
circle of radius a, centered at
= ,

(7.10.51)

= ,

(7.10.52)

and passing through the point,

where is a real value (nearly a half chord of the resulting airfoil) while is a complex value (see Figure 7.10.8). This
circle is represented by the formula,
= + aei ,

(7.10.53)

174

CHAPTER 7. EXACT SOLUTIONS II

where
0 2,

(7.10.54)

= ( + i),
p
a = (1 + )2 + 2 ,

(7.10.55)

T E = = + aei ,

(7.10.57)

(7.10.56)

and and are positive constants that are related to the thickness and the camber respectively of the resulting airfoil.
In fact, the point T E = corresponds to the trailing edge of the resulting airfoil and if we denote the angle that
indicates this point by , i.e.,

then we nd
= sin1


a

(7.10.58)

Note that the point here is to shift the circle o from the origin. Recall that a circle centered at the origin -plane is
Joukowsky-transformed onto an ellipse in Z-plane. Now imagine that a circle o from the origin will be Joukowskytransformed onto something dierent from an ellipse, which turns out to be an airfoil-like shape in Z-plane.
The complex potential that describes a ow over the circle dened above is given by
a2 ei
f ()
= ei + i 2a sin( + ) ln( ) +
,
V

(7.10.59)

which leads to the complex velocity,


2a sin( + )
a2 ei
w()
= ei + i
.

V

( )2

(7.10.60)

Note that the circulation has been determined such that the velocity be nite at the trailing edge (the Kutta
(T E )
, but dg/d vanishes for the Joukowsky
condition). In fact, the velocity at the trailing edge is given by Wdg/d
transformation. Therefore, in order for the velocity to be nite, it is required that W (T E ) = 0. This gives =
4aV sin . For other types of transformations, even if dg/d does not vanish, we must have W (T E ) = 0 (i.e., the
trailing edge must be a stagnation point) because otherwise a ow is not uniquely determined and there are a plenty
of experimental evidences that support this.
Now, we are ready to transform the circle (and a ow around it) onto something like an airfoil (and a ow around
it). Specically, we create a ow around an airfoil from a ow around the circle by a mapping Z = g(), and compute
a velocity at any point in the airfoil ow by transforming the point back to the -plane by = g 1 (Z) and then
evaluate the velocity by
u iv
w()/g ()
W (Z)
=
=
.
V
V
V

(7.10.61)

For this purpose, I give two examples for the mapping Z = g(): the Joukowsky transformation and the KrmnTretz transformation. Airfoils generated by these transformations are called the Joukowsky and Krmn-Tretz airfoils
respectively.
Joukowsky Airfoils
The Joukowsky transformation:
Z = g1 () = +

2
.

(7.10.62)

An inverse is given by
1

= g11 () =

(Z + 2) 2 + (Z 2) 2
1 .
1
(Z + 2) 2 (Z 2) 2

(7.10.63)

7.10. INCOMPRESSIBLE INVISCID FLOWS: LAPLACE/CAUCHY-RIEMANN EQUATIONS

175

The derivative of the transformation,

g1 () = 1

2
,
2

(7.10.64)

is needed to compute the velocity by (7.10.61).


I like the Joukowsky airfoils because they look very smooth, especially near the trailing edge. In fact, the trailing
edge is cusped, i.e., zero thickness, and so the velocity there is not zero but nite (not a stagnation point). This can
be nice because the ow is then smooth everywhere.
Note that if is not zero (cambered airfoils), there may be a region (below the airfoil but above the x axis) where
the inverse (7.10.63) does not work. I would suggest the use of the Krmn-Tretz transformation to avoid this trouble.

Krmn-Trefftz Airfoil
The Krmn-Tretz transformation:
Z n
=
Z + n

n

n=2

(7.10.65)

where is a free parameter to specify the trailing edge angle. This transformation can be written as

Z = g2 () =

( + )n + ( )n
n.
( + )n ( )n

(7.10.66)

An inverse transformation is then given by


1

g21

(Z + n) n + (Z n) n
=
1
1 .
(Z + n) n (Z n) n

(7.10.67)

Note that the inverse transformation does not work if is too large for the same reason as in the inverse Joukowsky
transformation (increasing the thickness parameter may help in keeping a valid inverse transformation with a relatively
large ). The derivative of the transformation is given by
n1

g2 () =

4n2 [( + )( )]

[( + )n ( )n ]

(7.10.68)

which is needed to compute the velocity by (7.10.61).


I like Krmn-Tretz airfoils because these airfoils have a trailing edge with a nite angle. This is more realistic
and practical than the cusped trailing edge. Note also that the Joukowsky transformation is in fact a special case of
the Krmn-Tretz transformation: the Krmn-Tretz transformation with = 0 is the Joukowsky transformation.
Anyway, so, I focus on the Krmn-Tretz transformation in the rest of the section.

176

CHAPTER 7. EXACT SOLUTIONS II

Figure 7.10.9: Pressure coecient Cp of the ow over


a Krmn-Tretz airfoil: = 0.5, = 10 , = 0.1,
= 0, = 0.

Figure 7.10.10: Streamlines of the ow over a


Krmn-Tretz airfoil: = 0.5, = 10 , = 0.1,
= 0, = 0.

Construction of a Krmn-Trefftz Airfoil:


1. Specify the parameters:
: Chord length 2,
: Angle of attack (radian) ,

(7.10.69)
(7.10.70)

: Thickness ,
: Camber ,

(7.10.71)
(7.10.72)

: Trailing edge angle (radian) .

(7.10.73)

2. Compute the following quantities:


p
a = (1 + )2 + 2

= sin1
a
(c , c ) = (, )

: Radius of the circle,

(7.10.74)

: Trailing edge location,

(7.10.75)

: Center of the circle.

(7.10.76)

This completely denes the circle by (7.10.53).


3. Substitute points on the circle, i = (i , i ), i = 1, 2, 3, . . . , N , represented by
i = a cos(i ) + c ,
i = a sin(i ) + c ,

(7.10.77)
(7.10.78)

with i in [0, 2] into the transformation (7.10.66) to obtain the points Z that form an airfoil (NB:
= 0 corresponds to the trailing edge).
4. (Optional) Compute the velocity at the airfoil points by substituting the points generated in the
previous step into (7.10.61). Note that the inverse transformation g21 is not needed here, so that
the velocity on the surface of the airfoil can be safely computed for any values of camber, thickness,
and trailing edge angle.

7.10. INCOMPRESSIBLE INVISCID FLOWS: LAPLACE/CAUCHY-RIEMANN EQUATIONS

177

Computation of Exact Solution (the whole flow field):


1. Pick a point Zp = xp + iyp (on and anywhere outside the airfoil!) where you want to compute the
velocity.
2. Transform the point Zp by (7.10.67) onto the corresponding point p in -plane.
3. Compute the velocity by substituting p into (7.10.61).
An example is given in Figures 7.10.9 and 7.10.10; it is in fact a Joukowsky airfoil since = 0.

7.10.5

Flow over Airfoils

It is possible to compute an exact solution for a ow around multiple airfoils by the conformal mapping technique. But
the solution is usually available only on the surface of the airfoils (not the whole ow eld). See [35, 41, 101, 114] for
more details. In particular, the four-element conguration computed in [101] is widely used. The geometry of the four
airfoils and the pressure coecient over the airfoils are tabulated (with a limited precision) in [101].

7.10.6

Flow over a Sphere (3D)

A ow over a sphere is a three-dimensional ow governed by the Laplace equation for the velocity potential. The
following velocity potential is an exact solution that represents a ow over a sphere of radius R,


R3
= V cos r + 2 .
2r

(7.10.79)

Note that the ow is in the z-direction (see Figure 1.5.2). The velocity components in the spherical coordinates (r, , )
are then given by
ur =



R3

= V cos 1 3 ,
r
r

(7.10.80)

u =

1
= 0,
r sin

(7.10.81)

u =



1
R3
= V sin 1 + 2 .
r
2r

(7.10.82)

Note that the maximum speed on the sphere is


|u |=/2,3/2 =

3
V ,
2

(7.10.83)

which is smaller than that for a ow over a cylinder, obtained from (7.10.20),
|u |=/2,3/2 = 2V ,

(7.10.84)

where the two-dimensional ow has been considered in the (z, y)-plane. The pressure coecient for the sphere is given
by
Cp =

p p
=1
1
2
2 V

u |r=R
V

2

=1

9
sin2 .
4

(7.10.85)

I like this solution. It is very simple and smooth. But it is not really simple to compute numerically. First, it
is not trivial to generate a computational grid around a sphere (unlike generating a grid around a two-dimensional
cylinder): structured grids need some eort to avoid possible geometric singularities. Second, it is often hard to obtain
a clean symmetric solution with respect to the (x, y)-plane by an Euler code, particularly with unstructured grids. How
accurately can your Euler code compute this ow?

178

7.10.7

CHAPTER 7. EXACT SOLUTIONS II

Fraenkels Flow: Constant Vorticity Flow over a Cylinder

Fraenkels ow [30] is an exact solution of the incompressible Euler equations with a non-zero constant vorticity, i.e.,
linearly varying free stream. It was used to study the accuracy of an Euler code in [73, 80]. Although it is basically
a ow over a cylinder (of radius 1 located at the origin), it contains recirculation zones in the front and back of the
cylinder (see Figure 7.10.11). These recirculation zones can be quite dicult to capture numerically if a scheme is very
dissipative. Can your code capture the recirculation zones (especially those in the rear)?
Here is the stream function which is presented with complex variables in [30] but here given in terms of real
variables,


 2

1 2
xy(r4 1)
1

r 2x + 1
= y +
1 2 y+
(7.10.86)
ln 2
2
2
r
2r4
r + 2x + 1







2y
1
1
1
2
2
(7.10.87)
1 + 4 (x y ) 2 arctan 2
+ U 1 2 y,
+
2
r
r 1
r
p
where r = x2 + y 2 , is the constant vorticity, and U is the free stream velocity of the irrotational part of the
ow. The velocity (u, v) is obtained simply by dierentiating the stream function,
u=

,
y

v=

,
x

but the result is very complicated:




  2



2y 2
x
r 2x + 1
1
4y 2
1
u = y +
+ 1 2 +
1 4 + 6 ln 2
2 r4
r
2
r
r
r + 2x + 1

 




4x2 y 2 1 r14
2y
1
2y(x2 y 2 )
+ 2
+ 1 + 4 y arctan 2

(r 2x + 1)(r2 + 2x + 1)
r6
r
r 1
#





1 + r14 (x2 y 2 ) 2 (x2 y 2 1)
x2 y 2
+
+
U
,
1

(r2 1)2 + 4y 2
r4
  2



1
y
4x2
r 2x + 1
2xy
1 4 + 6 ln 2
++
v=
2 r4
2
r
r
r + 2x + 1

 




2xy(x2 y 2 1) 1 r14
2y
2x(x2 y 2 )
1
+ 2

1 + 4 x arctan 2
(r 2x + 1)(r2 + 2x + 1)
r6
r
r 1
#



2xy 1 + r14 (x2 y 2 ) 2
2xy

U 4 .
(r2 1)2 + 4y 2
r

(7.10.88)

(7.10.89)

(7.10.90)

(7.10.91)

(7.10.92)

(7.10.93)

(7.10.94)

These functions were used to generate the streamline plot in Figure 7.10.11. Note that the above exact solution is
valid only on the upper half of the domain, i.e., y 0, and to make it valid on the lower half, I have to change the
sign of y, i.e., y y. Also, Note also that the above exact solution is singular at (x, y) = (1, 0) and (1, 0) where
it should be set to be a stagnation point u = v = 0. By the way, it is very interesting that such a complicated ow
(as in Figure 7.10.11) can be represented by an analytical formula.

7.10. INCOMPRESSIBLE INVISCID FLOWS: LAPLACE/CAUCHY-RIEMANN EQUATIONS

Figure 7.10.11: Streamlines of Fraenkels ow.

179

180

CHAPTER 7. EXACT SOLUTIONS II

7.11

Euler Equations

I like compressible Euler Equations. Basically, all the incompressible ows described in the previous section are the
exact solutions to the compressible Euler Equations with constant density. Here, we consider exact solutions for the
compressible Euler Equations with variable density.

7.11.1

One-Dimensional Simple Acoustic Waves

Consider the simple wave solution derived in Subsection 6.7.3:


u(x, t)
2
V ()
= M +
,
a
( + 1) a
(x, t)

p(x, t)
p

(7.11.1)

2


 1
1 u()
,
1+
M
2
a

(7.11.2)

2


 1
1 u()
1+
M
,
2
a

(7.11.3)

where = x V t, V = u + a, and V is a solution of Burgers equation. This is valid for smooth ows and the exact
solutions of Burgers equation given in Subsection 7.7.2 can be directly employed for V .
(a) Smooth solution turning into a shock:
Set an initial solution with
1
sin(2x),
2ts

(7.11.4)

1
sin(2(x V t)),
2ts

(7.11.5)

V (x) =
then it gives the exact solution with
V () =

where ts is a free parameter that species the time when a shock is formed. This solution is given implicitly and
therefore must be computed numerically (see Subsection 7.7.2).
(b) Smooth rarefaction:
Set an initial solution with
V (x) = A tanh(k(x 0.5)),

(7.11.6)

V () = A tanh(k(x 0.5 V t)),

(7.11.7)

then it gives the exact solution with

where A and k are arbitrary constants. Again, this is given implicitly and therefore must be computed numerically.
These solutions are very similar to those in Figures 7.6.1 and 7.6.2. These types of solutions were actually used in
[64] for verication of higher-order schemes. It is nice to have smooth exact solutions for nonlinear systems such as
the Euler equations. In particular, it is very nice that we can generate various exact solutions through the solutions of
Burgers equation. I really like it.

7.11.2

Entropy Waves

The entropy wave is an exact simple wave solution of the compressible Euler equations. The one-dimensional entropy
wave is given by
=
u =
p =

+ A sin [(x U t)]


U ,
P ,

(7.11.8)
(7.11.9)
(7.11.10)

7.11. EULER EQUATIONS

181

where , U and P are constants. The two-dimensional version is given by


= + A sin [(x + y Q t)]

u
v
p

= U ,
= V ,
= P ,

(7.11.11)
(7.11.12)
(7.11.13)
(7.11.14)

where V is a constant and Q = U + V . The three-dimensional version is given by


= + A sin [(x + y + z Q t)]

(7.11.15)

w = W ,
p = P ,

(7.11.18)
(7.11.19)

u = U ,
v = V ,

(7.11.16)
(7.11.17)

where W is a constant and Q = U + V + W . With a periodic boundary condition, the entropy wave should
travel through the domain, preserving its initial prole. Certainly, I like the entropy wave. It is very useful in verifying
the accuracy of a time-dependent Euler code.

7.11.3

Two-Dimensional Unsteady Isentropic Vortex Convection

As derived in Section 6.3, the following is an exact solution to the full unsteady two-dimensional compressible Euler
equations:
u(x, y, t)
a

v(x, y, t)
a

T (x, y, t)
T

= 1

(x, y, t)

p(x, y, t)
p

2
u
K

ye(1r )/2 ,
a
2a
2
v
K
xe(1r )/2 ,
+
a
2a

(7.11.20)
(7.11.21)

K 2 ( 1) (1r2 )
e
,
8 2 a

(7.11.22)

T (x, y, t)
T

1
 1

(7.11.23)

T (x, y, t)
T

 1

(7.11.24)

where
x = x x0 u t,
y = y y0 v t,
q
r =
x2 + y 2 .

(7.11.25)
(7.11.26)
(7.11.27)

This exact solution describes a vortex simply convected isentropically with the free stream velocity (u , v ). It is often
employed to measure the accuracy of an Euler code [21, 94, 116]. For example, I like the following set of parameters:
= 1, = 1, p = 1/, u = v = 2, (x0 , y0 ) = (10, 10), K = 5, because then the vortex starts at
(x, y) = (10, 10), moves to the origin at t = 5, and then will nally reach at (x, y) = (10, 10) precisely at t = 10
as shown in Figure 7.11.1. You may measure the accuracy of your Euler code at the nal location.

7.11.4

Linearized Potential Equations

The linearized potential equation (see Section 3.19),


2
(1 M
) xx + yy = 0,

(7.11.28)

182

CHAPTER 7. EXACT SOLUTIONS II

20

10

t = 10.0

0
t = 5.0

10
t = 0.0

20
20

10

0
x

10

20

Figure 7.11.1: Density contours for the two-dimensional isentropic vortex convection. = 1, K = 5.0, = 1,
p = 1/, u = v = 2.0, (x0 , y0 ) = (10, 10).
or the equivalent system for the perturbation velocity components (see Section 3.20),
2
) ux + vy
(1 M
vx uy

=
=

0,
0,

(7.11.29)
(7.11.30)

has various exact solutions.


Subsonic solution
As discussed in Section 3.20, the Prandtl-Glauert transformation
p
p
2 ,
2 ,
= x, = y 1 M
= 1 M

U=

p
2 u,
1 M

V = v,

(7.11.31)

turns the governing equations into the Laplace equation for the potential,
+ = 0,

(7.11.32)

and the Cauchy-Riemann system for the velocity components,


U + V

0,

(7.11.33)

V U

0,

(7.11.34)

where we have assumed here that M < 1. This means that any incompressible ow solution (, ), i.e., the solution
of the Laplace equation (7.11.32), can be transformed into a compressible ow solution, i.e., the solution of (7.11.28),
as follows,
p
2 )
(x, y 1 M

p
.
(7.11.35)
(x, y) =
2
1 M
Alternatively, we may start from a set of solutions for the Cauchy-Riemann system, U (, ) and V (, ), and then
obtain the velocity components in the equivalent compressible ow as follows,
p
2 )
U (x, y 1 M
p
,
(7.11.36)
u(x, y) =
2
1 M
v(x, y)

= V (x, y

p
2 ).
1 M

(7.11.37)

7.11. EULER EQUATIONS

183

0
0

Figure p
7.11.2: Subsonic solution. Streamlines calculated by the total velocity (U + u, v) with U = 1.0,
2 and M
k = / 1 M
= 0.5.
For example, the exact solution (7.8.5) from Subsection 7.8.1,
(, ) = exp(k) sin(k),

(7.11.38)

where k is an arbitrary constant, can be transformed into the corresponding compressible solution as follows,
 p

2
exp(kx) sin ky 1 M
p
(x, y) =
.
(7.11.39)
2
1 M
To see what ow this represents, we derive the perturbation velocity components,

 p
2
k exp(kx) sin ky 1 M
p
,
u(x, y) = x (x, y) =
2
1 M
 p

2
v(x, y) = y (x, y) = k exp(kx) cos ky 1 M
.

(7.11.40)
(7.11.41)

The streamlines calculated from these are plotted in Figure 7.11.2. It does look like a ow. This is simple and smooth
enough for accuracy verication, possibly with the Dirichlet condition. I like this very much. It is really nice that any
solution of Laplaces equation can be transformed into a subsonic ow solution.
Supersonic solution
As shown in Section 3.20, for supersonic ows (M > 1), the governing equations become hyperbolic. The method
of characteristics can then be used to generate various exact solutions: applying the following characteristic relations,
p
p
2 1 v = constant, along dy/dx = 1/ M 2 1,
u M
(7.11.42)

p
p
2 1 + v = constant, along dy/dx = 1/ M 2 1,
(7.11.43)
u M

with appropriate boundary conditions, we can construct a ow eld, starting from a supersonic free stream of the
Mach number M > 1 (see [103] for more details if needed).
An example is a supersonic ow through a dust: a

mean-ow coming from the left at Mach number M = 2 with the perturbation velocity (u, v) = (0, 0.1), through
a parallel duct. The small incidence introduced by the non-zero v causes compression and expansion waves created
at the leading edges and reected through the duct, recovering the inow condition at the exit. This is sketched in
Figure 7.11.3. Solution at each region can be easily found by drawing characteristic lines from a known upstream state
and applying the appropriate characteristic relation above. I like this solution because it can be a very simple test case
(with a simple rectangular domain) for solving linear hyperbolic systems involving discontinuities. In fact, this solution
was used to demonstrate the capability of a particular mesh adaptation technique in [86].

184

CHAPTER 7. EXACT SOLUTIONS II

(u, v) = (0, 0)

M = 2
(u, v) = (0, 0.1)

(u, v) = (0, 0)

(u, v) = (0, 0.1)

(u, v) = (0, 0)

(u, v) = (0, 0)

Figure 7.11.3: Supersonic solution.


Inow perturbation velocity components are u = 0 and v = 0.1, with the
mean-ow Mach number M = 2. Thin lines are characteristics dividing the constant states.

7.11.5

Nozzle Flows

Basic Equations
Nozzle ows are governed by the equations in Section 3.15 which for a steady adiabatic ow reduce to
uA = constant,

(7.11.44)

a
u
+
= constant,
2
1
p/ = constant.

(7.11.45)
(7.11.46)

We then obtain from these (see [61] for derivation) the fundamental relations for generating exact solutions:


(+1)/(1)
 2
2
1 2
1
A
1+
M
=
,
(7.11.47)
A
M +1
2

=
0

1 2
1+
M
2

1
 1

(7.11.48)

p
=
p0

1 2
1+
M
2

 1

(7.11.49)

T
=
T0

1+

1 2
M
2

1

(7.11.50)

where = 1.4 for air, A is the critical area corresponding to sonic speed u = a, M = u/a, and 0 , p0 , and T0 are the
stagnation density, pressure, and temperature. It follows from (7.11.47) that there exist two dierent Mach numbers
for a given area-ratio AA : subsonic and supersonic solutions (see [61]).
Dierentiate the continuity equation (7.11.44),
1 d
1 du
1 dA
+
+
= 0,
dx u dx A dx

(7.11.51)

and substitute the momentum equation,


u

d
dp
du
=
= a2 ,
dx
dx
dx

(7.11.52)

to obtain
1 du
1 dA
1
=
.
u dx
1 M 2 A dx

(7.11.53)

This shows that a subsonic ow is accelerated (du > 0) through a converging nozzle (dA < 0); and a supersonic ow
accelerated (du > 0) through a diverging nozzle (dA > 0). This is very interesting. I like it.
Now, suppose that a nozzle shape A(x) is given in x [0, 1], having the minimum (or throat) area at x = xthroat .
Then, there exist three types of solutions: subsonic-supersonic, fully subsonic, and subsonic-supersonic with a shock.

7.11. EULER EQUATIONS

185
1

2.5

0
0

0.4

0
0

Figure 7.11.4: Mach number: the unique subsonicsupersonic ow.

0.4

Figure 7.11.5: Pressure:


supersonic ow.

the unique subsonic-

Subsonic-Supersonic Flow
This is a unique solution for a given nozzle shape: a subsonic inow achieves M = 1 precisely at the throat x = xthroat
so that A = A(xthroat ), and then smoothly becomes supersonic and accelerates towards the exit. It should be noted
that the inow Mach number is not zero but a small value. Theoretically, we see from (7.11.47) that M 0 when
A 0. That is, a reservoir exists at x . In a way, we are looking at only a small part of a big nozzle coming
out from a reservoir. Or it may be interpreted as a ow through the nozzle in [0, 1] caused by a pressure dierence
applied to the inlet and outlet of the nozzle with a nite length.
Computation of Exact Solution:
We can numerically compute this unique ow solution at a set of N points {xi } = {x1 =
0, x2 , x3 , , xN = 1} as follows:
1. Set A = A(xthroat ).
2. Compute M (xi ) by solving (7.11.47) for given A(xi ) and A for all i.
(subsonic for xi [0, xthroat ]; supersonic for xi [xthroat , 1].)
3. Compute (xi ), p(xi ), and T (xi ) by (7.11.48), (7.11.49), and (7.11.50).
Note that (7.11.47) needs to be solved for the Mach number numerically. For this purpose, we may employ the
bisection method for the following equation,


(+1)/(1)
 2
1
2
1 2
A

= 0,
(7.11.54)
1+
M
f (M ) =
A
M +1
2
with adaptive initial bounds: [0, 1] to nd a subsonic solution or [1, 100] to nd a supersonic solution. Of course, other
methods can be used, but I like the bisection method because it is very simple. In fact, I actually used it to obtain the
solution shown in Figures 7.11.4 and 7.11.5.
Fully Subsonic Flow
In this case, there exist an innite number of solutions for a given nozzle shape; the exit pressure pe must be specied
to make the solution unique. Observe also that in this case a ow can never reach M = 1 (A 6= A(x) anywhere in
the nozzle). Therefore, A is just a parameter determined by rst computing Me from (for a specied pe )
pe
=
p0



1 2 1
1+
Me
,
2

(7.11.55)

and then solving




Ae
A

2

(+1)/(1)


1
2
1 2
= 0,

1+
Me
Me + 1
2

(7.11.56)

186

CHAPTER 7. EXACT SOLUTIONS II


1

2.5

0
0

0.4

0
0

Figure 7.11.6: Mach number: a fully subsonic ow.

0.4

Figure 7.11.7: Pressure: a fully subsonic ow.

for A . Here, obviously, Ae = A(xN ) = A(1.0), Me = M (xN ) = M (1.0), and pe = p(xN ) = p(1.0).
Note that the exit pressure pe must satisfy
pe < p0 ,
pcrit
e

(7.11.57)

where pcrit
is the pressure corresponding to the ideal subsonic solution, i.e., the one with A = A(xthroat ) of (7.11.56),
e
at the exit This pcrit
can be computed by rst solving (7.11.56) with A = A(xthroat ) to obtain Mecrit , and then
e
substituting this Mach number Mecrit into (7.11.49).
Computation of Exact Solution:
A fully subsonic ow solution can be computed numerically as follows:
1. Compute Mecrit by solving (7.11.56) and A = A(xthroat ).
(Assume that the ow is subsonic.)
(7.11.48).
2. Compute pcrit
e
3. Specify the exit pressure pe under the condition (7.11.57).
4. Compute Me from pe by (7.11.49).
5. Re-compute A by solving (7.11.47) with A = Ae and M = Me .
6. Compute M (xi ) by solving (7.11.47) for given A(xi ) and A for all i.
(Note that the ow is subsonic everywhere.)
7. Compute (xi ), p(xi ), and T (xi ) by (7.11.48), (7.11.49), and (7.11.50).
An example is given in Figures 7.11.6 and 7.11.7.
Shocked Flow
In shocked ows also, the exit pressure pe must be specied to make the solution unique. This time, the exit pressure,
pe , must satisfy
pps pexit < pcrit
e ,

(7.11.58)



1 2 1
Mps
,
pps = 1 +
2

(7.11.59)

where pps is a post-shock pressure given by

Mps

v
u
u 1 + 1 M crit 2
u
e
2
=u
.
t

1
2
Mecrit
2

(7.11.60)

7.11. EULER EQUATIONS

187
1

2.5

0
0

0.4

Figure 7.11.8: Mach number: a shocked ow.

0
0

0.4

Figure 7.11.9: Pressure: a shocked ow.

This is a pressure obtained based on the assumption that there exists a shock exactly at the exit in the ideal subsonicsupersonic ow, i.e., the ow with A = A(xthroat ). The condition (7.11.58) ensures the presence of a shock somewhere
between the throat (x = xthroat ) and the exit.
Computation of Exact Solution:
A shocked ow solution can be computed numerically as follows:
1. Specify the exit pressure pe under the condition (7.11.58).
2. Compute Me from pe by (7.11.49).
3. Compute and store the ideal solution Mideal (xi ) by solving (7.11.47) with A = A(xthroat ) for all i.
(subsonic for xi [0, xthroat ]; supersonic for xi [xthroat , 1.0].)
4. Re-compute A by solving (7.11.47) with A = Ae and M = Me .
5. From the exit (towards the throat), start computing the subsonic solution Msub (xi ) by solving
(7.11.47) for each A(xi ).
6. In doing so, check if the condition,
Mpost-shock (xi1 ) < Msub (xi ) < Mpost-shock (xi ),

(7.11.61)

where Mpost-shock (xi ) is a Mach number behind an assumed shock located at xi in the ideal subsonicsupersonic ow given by
v
u
2
u 1 + 1 [M
u
ideal (xi )]
2
,
(7.11.62)
Mpost-shock (xi ) = u
t
1
2
[Mideal (xi )]
2
is satised. If it is, there is a shock between xi1 and xi , and you dene i = ishock and stop
calculating M (xi ).

7. The solution is then given by, for i = 1, 2, 3, , N ,


(
Mideal (xi ) if i < ishock ,
M (xi ) =
Msub (xi ) otherwise,
and (xi ), p(xi ), and T (xi ) are computed by (7.11.48), (7.11.49), and (7.11.50).
An example is given in Figures 7.11.8 and 7.11.9.

(7.11.63)

188

CHAPTER 7. EXACT SOLUTIONS II

M
p

Entrance
0.4517
0.8694

Exit
2.1972
0.0939

Table 7.11.1: Data for the subsonic-supersonic ow in Figures 7.11.4 and 7.11.5.

M
p

Entrance
0.2972
0.9405

Exit
0.2091
0.9700

Table 7.11.2: Data for the fully subsonic ow in Figures 7.11.6 and 7.11.7. pe = 0.97 was specied.

M
p

Entrance
0.4517
0.8694

Exit
0.3909
0.9000

Table 7.11.3: Data for the shocked ow in Figures 7.11.8 and 7.11.9. pe = 0.9 was specied. The shock was found to
be at x = 0.8.

Figure 7.11.10: Upper half of a quadratic nozzle (7.11.64) with Ae = 0.4 and At = 0.2.

Example
Consider a quadratic shape nozzle,
2

2
25
+ At ,
(Ae At ) x
A(x) =
9
5

(7.11.64)

where Ae and At are the exit area and the throat area respectively (Figure 7.11.10). Note that xthroat = 2/5. Applying
the algorithms described above, I obtained the results in Figures 7.11.6 to 7.11.9, and the data in Tables 7.11.1 to
7.11.3.
These exact solutions can be used to verify a numerical code for the quasi-1D Euler equations in Section 3.15. But
it is also possible to use these exact solutions as references in two-dimensional calculations. Generate a two-dimensional
grid based on the area function (only the upper half of the nozzle will suce because of the symmetry), and perform
a two-dimensional CFD calculation on it for one of the exact solutions described above. Then, we may compare the
numerical solution with the exact solution at the centerline of the nozzle. In this case, the exact solution is no longer
strictly exact. But it should be close for a smooth nozzle with Ae At .
I like the nozzle ow very much because it is useful also in magnetohydrodynamic ows: the solution can be used
without any modication for aligned ows (the magnetic eld parallel to the stream line) [33], and also with minor
modications for transverse ows (the magnetic eld perpendicular to the stream line) [62].

7.11.6

Ringlebs Flow

Ringlebs ow is an exact solution to the Euler equations for = 1.4 obtained by Ringleb in 1940 [82]. It is often
used to measure the accuracy of an Euler code (see [20] and references therein). This ow is obtained as a solution
(a stream function ) of the hodograph equation (6.4.45), so that the physical location (x, y) is given in terms of the

7.11. EULER EQUATIONS

189

Inflow
V= Vmin

= max

M<1

1
M

=1

= min

M>1

0
-1

Outflow
y = 0 (symmetric line, u= 0)

Figure 7.11.11: A computational grid for Ringlebs ow,


generated with a uniform spacing in rather than V , with
parameters min = 0.69, max = 1.2, Vmin = 0.5.

Figure 7.11.12: Ringlebs ow: a ow around the edge


of a at plate or a ow in a channel, being smoothly
accelerated from subsonic to supersonic. The supersonic
region can be avoided by taking suciently large values
of .

physical variables (V, ), i.e., the ow speed and angle (see [92] for details):
sin
,
V


L
1
1
2

+ ,
x(, V ) =
2V 2
2
=

y(, V ) =
where and L are functions of V :

p
1 V 2 2 ,
V

= b5 ,
L=
b=

(7.11.65)
(7.11.66)

(7.11.67)

(7.11.68)



1
1
1
1
1+b
,
+ 3 + 5 ln
b 3b
5b
2
1b

p
1 0.2V 2 ,

(7.11.69)
(7.11.70)

and the pressure p is given by p = b7 . The isotachs (lines of constant speed) are circles given by

2
2

1
L
2
+y =
.
x
2
2V 2

(7.11.71)

Note that the variables have been nondimensionalized by the stagnation values; and so they should be understood
actually as
x
,
l

y
,
l

,
c0 l

V
,
c0

,
0

p
,
p0

(7.11.72)

where l is a reference length, 0 , p0 , and c0 are the stagnation density, pressure, and the speed of sound respectively.
Now, choose some values for min , max , Vmin , and allow V to increase up to a limit of the domain, e.g., y = 0,
thus (7.11.67) giving Vmax = 1/. Then, we will have a domain like those in Figures 7.11.11 and 7.11.12; we can
generate its boundary points very easily.

190

CHAPTER 7. EXACT SOLUTIONS II

Figure 7.11.13: Flow speed, density, and pressure have


the same contours .

Figure 7.11.14: Flow angle .

Generation of Boundary Points:


The following generates NR points on the right boundary, NT points on the top boundary, NL points
on the left boundary, NB points on the bottom boundary (with corner points being shared, i.e., the total
number of points on the whole boundary is NL + NR + +NB + NT 4).
1. Right Boundary:
Generate (xi , yi ) by (7.11.66) and (7.11.67) with = min and
Vi [Vmin , 1/min ], i = 1, 2, 3, , NR .
2. Top Boundary:
Generate (xi , yi ) by (7.11.66) and (7.11.67) with V = Vmin and
i [min , max ], i = 1, 2, 3, , NT .
3. Left Boundary:
Generate (xi , yi ) by (7.11.66) and (7.11.67) with = max and
Vi [Vmin , 1/max ], i = 1, 2, 3, , NL .
4. Bottom Boundary:
Generate (xi , yi ) by (7.11.66) and (7.11.67) with V = 1/i and
i [min , max ], i = 1, 2, 3, , NB . (yi should be zero for all i here.)
Note that we might want to reverse the node ordering in the step 2, so that boundary points are generated and
ordered counterclockwise over the entire boundary. Also, note that a uniform distribution of points in [Vmin , 1/min ]
does not lead to the uniform distribution in the physical plane (points will be clustered near the midpoint). First,
i
. This will generate a
generate a uniform grid in [sin1 (min Vmin ), /2], and then convert it to Vi by Vi = sinmin
smoother grid in the physical plane such as the one shown in Figure 7.11.11.
Once we generate boundary points, we can generate a computational grid over the domain by connecting them in
some way (structured or unstructured). Or you can directly generate a structured grid by applying the above boundarypoint generation algorithm to the interior points with varying stream function values over the interval [min , max ].
Whatever kind of grid you generate, you would want to run an Euler code on it with the appropriate boundary
conditions: uniform inow at the top boundary; wall boundary conditions on the left and right boundaries; outow
condition on the bottom boundary. Then, of course, you would certainly want to compute the error by comparing the
numerical solution with the exact solution.

7.11. EULER EQUATIONS

191

Figure 7.11.15: Velocity component, u = V cos .

Figure 7.11.16: Velocity component, v = V sin .

Computation of Exact Solution:


The exact solution at a given location (xp , yp ) can be computed as follows.
1. Numerically solve (7.11.71) for V with the bounds [Vmin , 1/min ].
2. Compute b by (7.11.70), and then , p, and L.
3. Compute by (7.11.66) in the form,
s



1
L
.

p
2V 2
2

(7.11.73)

4. Compute by (7.11.65) in the form,


= sin1 (V ),

[/2, /2].

(7.11.74)

5. Compute the velocity (u, v) = V (cos , sin ) where the negative sign is put to make the upper
boundary the inow).
6. Compute the actual Mach number (if you wish) by
M=
where the factor

1.4 p

V
=p
,
1.4 p/
p/

(7.11.75)

1.4 is needed because V , p, and are in fact V /c0 , p/p0 , and /0 .

For solving (7.11.71), we may employ the xed-point iteration: write the equation as
V

k+1

1
,
2k [(x Lk /2)2 + y 2 ]

(7.11.76)

where k and Lk are evaluated with the previous value V k , then iterate on V k starting with V 1 = (Vmin + 1/min )/2
until |V k+1 V k | < 1015 , for example. I like this method because it is very simple.
I like Ringlebs ow very much because in particular the ow accelerates from subsonic to supersonic very smoothly
without shocks. That is, it can be very useful to verify the accuracy of an Euler code simultaneously for both subsonic
and supersonic ows.

192

CHAPTER 7. EXACT SOLUTIONS II


Shock Wave
M > 1

Figure 7.11.17: Supersonic ow over a cylinder: the shock


is locally normal to the streamline along the centerline indicated by the dashed line.

7.11.7

Supersonic Flow over a Cylinder (Stagnation Pressure)

The formula that relates the upstream Mach number M and stagnation pressure (p0 ) to the stagnation pressure
p0 behind the shock is given by
/(1)
1/(1) 

2
2
( + 1)M
p0
2
,
(7.11.77)
= 1+
(M 1)
2 +2
(p0 )
+1
( 1)M
(see [61] for details). This will give the exact pressure at the stagnation point of a cylinder behind a bow shock created
by a supersonic ow (the bow shock is a normal shock at the line of symmetry). This is useful, for example, when I
want to see how accurately my Euler code can compute a supersonic ow over a cylinder (so that there will be a bow
shock in front of it) by comparing a computed pressure at the front stagnation point of the cylinder with the exact
value. For this purpose, I like to use the nondimensionalization by the stagnation values in Section 3.10 because it
allows me to directly compare the computed pressure value with the exact value.

7.11.8

Normal/Oblique Shock Waves

Propagating Normal Shock Wave


I like propagating normal shock waves, especially the one running to the right at the speed Vs into the gas at rest (this
state is denoted by R),
WR = [R , uR , pR ]t = [1, 0, 1/]t .

(7.11.78)

It is nice that once I specify the shock speed Vs (> 0), then all upstream quantities, WL = [L , uL , pL ]t , are automatically determined (by the Rankine-Hugoniot relation) as follows:


 1
2
pL = 1 +
Vs2 1
,
(7.11.79)
+1

+1
pL
1
L =
,
+1
+ pL
1
1+

pL 1
.
uL = q
1 + +1
2 (pL 1)

(7.11.80)

(7.11.81)

This can be used in the same form also in two and three dimensions with v = w = 0. It is very useful. Note that it is
very important to be able to compute a moving shock because the predicted shock speed could be wrong if a method
is not conservative.

7.11. EULER EQUATIONS

193

Shock Wave
Vs
L

Figure 7.11.18: Normal shock wave: propagating Vs > 0,


or stationary Vs = 0.

Steady Normal Shock Wave


I like steady normal shock waves. In fact, it is very easy to cook up one: specify the upstream state, WL ,

t
WL = [L , uL , pL ] = 1, 1,

1
ML

t

(7.11.82)

where ML > 1, then the downstream state, WR = [R , uR , pR ]t is automatically determined in terms of ML ,


R =

( + 1)ML2
,
( 1)ML2 + 2

(7.11.83)

uR =

( 1)ML2 + 2
1
=
,
R
( + 1)ML2

(7.11.84)



2
1
2
pR = 1 +
(ML 1)
.
+1
ML

(7.11.85)

Besides, if we express the two states in terms of the conservative variables, UL and UR , then they look rather simple:

UL = [L , L uL , EL ] = 1, 1,
t

1
1
+
( 1)ML
2

t

t

pR
uR
t
UR = [R , R uR , ER ] = R , 1,
+
,
1
2

(7.11.86)

(7.11.87)

where R , pR , and uR are given by (7.11.83), (7.11.84), and (7.11.85). Of course, this steady shock solution can be
used in the same form also in two and three dimensions with v = w = 0.
Oblique Shock Waves
We can easily create an oblique shock solution in a square domain by setting a free stream on the left at an angle
(< 0) coming towards the bottom wall, thus creating a oblique shock at the bottom-left corner. Specify the upstream
angle and a desired oblique shock angle s (see Figure 7.11.19), and then we can determine the corresponding
upstream Mach number by
M =

2
,
sin(s + ) cos(s + ) [( + 1) tan(s ) ( 1) tan(s + )]

(7.11.88)

where it is safe to use the values that satisfy s + < 60 (this is a rough estimate not a precise condition) so that
only the weak solution, i.e., the one with the supersonic downstream, is allowed. If we specify this Mach number and

194

CHAPTER 7. EXACT SOLUTIONS II

Shock Wave

M > 1

Figure 7.11.19: Oblique shock wave.

= 1 and p = 1/, for example, then we can determine the downstream state M2 , 2 , and p2 by
v
u
u 1 + 1 M 2 sin2 ( + )
s

1 u
2
u
M2 =
,
t
1
sin s
2
M
sin2 (s + )
2

(7.11.89)

2
sin2 (s + )
( + 1)M
,
2
( 1)M sin2 (s + ) + 2

(7.11.90)

2 =

p2 = 1 +

2
(M 2 sin2 (s + ) 1).
+1

(7.11.91)

(see [61] for details). It is very nice that the domain is a square; it will be very easy to generate a grid and also to
implement a numerical scheme.

7.12

Riemann Problems for the Euler Equations

7.12.1

Basic Equations

The 1D Euler equations have three characteristic elds:


1 = u c,

2 = u,

3 = u + c.

(7.12.1)

1 -eld and 3 -eld are genuinely nonlinear and therefore have nonlinear waves (shocks/rarefactions), but 2 -eld is
linearly degenerate and so has a contact wave only.
In the following equations, whenever they have double signs, the negative sign is associated with waves in 1 -eld
and the positive sign is associated with waves in 3 -eld. Also note that the subscript 0 indicates an undisturbed state.

7.12. RIEMANN PROBLEMS FOR THE EULER EQUATIONS

195

Shocks
The Rankine-Hugoniot relation across a shock gives

p p0

= 0 c0

+1
1+
2


p
1 (u u0 ),
p0

+1 p
1 p0
.
+1
p
+
1 p0

(7.12.2)

1+

(7.12.3)

These are obtained directly from the Rankine-Hugoniot relation in Section 1.17 (See [106] for derivation). Equation
(7.12.2) denes a curve in (p, u)-space, and it is called the Hugoniot curve. The shock speed Vs is given by

Vs

= u0 c0

1+

+1
2


p
1 .
p0

(7.12.4)

Rarefactions
Integral relation across a rarefaction is given by

2
c0 ,
1

2
c =
1

u0

p p0

0 c0

(7.12.5)

1 1 (p/p0 )
(u u0 ).
2 1 (p/p0 ) 1
2

(7.12.6)

2c
These equations are obtained from the isentropic relations and the Riemann invariant u + 1
= constant (See [106]
for derivation). Equation (7.12.6) denes a curve in (p, u)-space, and it is called the Poisson curve. Through the
rarefaction wave, u and c vary linearly, and p and are given by

7.12.2

= p0

c
c0

2
 1

= 0

p
p0

 1

(7.12.7)

(7.12.8)

Construction of a Riemann Problem

I like the Riemann problem because it is simple. In fact, it is very easy to construct one. For example, if I want to
create a ow where a shock travels to the right, a contact wave follows to the right, and a rarefaction wave travels to
the left (see Figure 7.12.1), I can create it as follows.

196

CHAPTER 7. EXACT SOLUTIONS II


y

tail

R1

C2
S3

head

WL

WR

WL

WR

Figure 7.12.1: The Riemann problem I want to create: 3 -shock (S3 ), the contact
(C2 ), and 1 -rarefaction (R1 ).

Construction of a Riemann Problem:


1. Specify the right state WR = [R , uR , pR ]t .
2. Specify p (> pR ), and determine u by the shock relation (7.12.2), i.e.,
u = uR +
R cR

p pR
,

p

1
1 + +1
2
pR

(7.12.9)

and determine R by (7.12.3), i.e.,


+ 1 p
1 pR
.
p
+1
+
1 pR

1+
R = R

(7.12.10)

3. Specify L . Across the contact, the velocity and the pressure do not change: uL = uR = u and
pL = pR = p .
4. Specify pL (> p ), and determine L by (7.12.8), i.e.,
L

pL
p

 1

(7.12.11)

and the velocity by (7.12.6), i.e.,


1

2
1 (p /pL ) 2
uL = u +
(p pL ).
( 1)L cL 1 (p /pL )

(7.12.12)

This completes the construction of a Riemann problem.


For the Riemann problem created above, the shock speed is given by
VS3 = uR + cR

+1
1+
2


p
1 ,
pR

(7.12.13)

the contact speed by


VC2 = u ,

(7.12.14)

7.12. RIEMANN PROBLEMS FOR THE EULER EQUATIONS

197

and the tail and head speeds of the rarefaction by

VRtail
1

= uL cL ,

(7.12.15)

VRhead
1

= uL c L .

(7.12.16)

These wave speeds may be useful when we choose the quantities like p so that we create a problem with a desired
shock speed, for example. By the way, in order to compute the solution inside the rarefaction wave, rst compute the
velocity (which varies linearly), and then compute all others:

L
L
u L + u ,
L L
L
L

u()

c()

= u() ,

p()

= pL

()

= L

(7.12.17)
(7.12.18)

c()
cL

2
 1

p()
pL

 1

(7.12.19)

(7.12.20)

where L = uL cL and L
= u cL . Note that you can construct any Riemann problem you want. For example, if

I stop after determine WR and set WL = WR


, then I end up with a Riemann problem with a single shock; or if I set

L = R , then there will be no contact waves.

7.12.3

Exact Riemann Solver

I like making up a Riemann problem, but not so much solving a given Riemann problem because it is not very simple
(sometimes the solution doesnt even exist).
If I am given a set of initial data, WL = [L , uL , pL ] and WR = [R , uR , pR ], then I will try to nd a solution as
follows.

198

CHAPTER 7. EXACT SOLUTIONS II


Exact Riemann Solver:
1. Find the pressure p in the middle by solving the equation,
p =

mR pL + mL pR + mL mR (uL uR )
,
mL + mR

where for Q = L or R,

s



+ 1 p

1
1
+

c
Q Q

2
pQ

p
mQ =
1

pQ
1

Q cQ


 1

pQ

if

(7.12.21)

p
> 1 : shock,
pQ
(7.12.22)

p
if
< 1 : rarefaction.
pQ

This must be solved iteratively as the right hand side depends on p .

2. Compute u by the equation,


u =

mL uL + mR uR + (pL pR )
.
mL + mR

(7.12.23)

3. Compute L and R by

+ 1 p

1+

1 pQ

p
+1

Q =
1 pQ

  1

Q
pQ

if

p
> 1 : shock,
pQ
(7.12.24)

if

p
< 1 : rarefaction.
pQ

where Q = L or R. Now, the middle states have been completely determined, and this completes
the solution of a Riemann problem.

Some remarks are in order. First, if a rarefaction wave is detected, the solution inside the wave can be computed
by (7.12.17) to (7.12.20). Second, it may happen that

uL +

2
2
cL < uR +
cR ,
1
1

(7.12.25)

then the pressure p will be negative and thus a solution does not exist. We need to check this condition and make
sure that a solution exists, before solving a Riemann problem. Third, the intermediate pressure equation (7.12.21) is
obtained by solving the following system for p ,
p pL

p pR

= mL (u uL ),

= mR (u uR ),

1 -shock/rarefaction,
3 -shock/rarefaction.

(7.12.26)
(7.12.27)

These are the shock/rarefaction relations across the right-running and left-running waves respectively. Solving this for
u gives the equation to determine u for a given p , i.e., Equation (7.12.23). Fourth, to solve (7.12.21), any iterative
method, such as the xed-point iteration, Newtons method, or the bisection method can be employed. In doing so, it

7.12. RIEMANN PROBLEMS FOR THE EULER EQUATIONS

199

is good to have an upper bound and a lower bound for the solution p :

Upper bound:

p =

p =

Lower bound:

"

1
2 (uL

cL (pL )

uR ) + (cL + cR )
1
2

+ cR (pR )

1
2

2
# 1

mR pL + mL pR + mL mR (uL uR )
,
mL + mR

(7.12.28)

(7.12.29)

where mL = L cL and mR = R cR . The upper bound comes from a solution for two rarefaction waves (the intersection
of the two Poisson curves); the lower bound comes from a linearization, i.e., the solution of (7.12.26) and (7.12.27)
with mL = L cL and mR = R cR . Fifth, the condition (7.12.25) indicates that the intersection between the two
Poisson curves (i.e., the upper bound) goes down to the negative part of the p-axis in the (p, u)-space.
Here are some examples where I assume a domain [5, 5] for all problems and denote the nal time by tf .
(a) Sods Problem 1 (Figures 7.12.2):
I like this problem. This is a famous shock tube problem by Sod [96].
WL = [L , uL , pL ]t = [1.0, 0, 1.0]t ,
t

(7.12.30)
t

WR = [R , uR , pR ] = [0.125, 0, 0.1] ,
tf = 1.7.

(7.12.31)
(7.12.32)

(b) Sods Problem 2 (Figures 7.12.3):


I like this one also. This is another famous shock tube problem by Sod [96].
WL = [L , uL , pL ]t = [1.0, 0, 1.0]t ,
t

(7.12.33)
t

WR = [R , uR , pR ] = [0.01, 0, 0.01] ,
tf = 1.4.

(7.12.34)
(7.12.35)

I like this one particularly because it contains a sonic point in the rarefaction wave and some schemes create a
small gap there.
(c) Sonic Rarefaction (Figures 7.12.4):
This is a sonic rarefaction and some schemes cannot break the initial discontinuity at all.
WL = [L , uL , pL ]t = [3.857, 0.92, 10.333]t ,
t

WR = [R , uR , pR ] = [1.000, 3.55, 1.000] ,


tf = 0.7.

(7.12.36)
(7.12.37)
(7.12.38)

(d) Slowly Moving Shock (Figures 7.12.5):


For this one, many schemes produce oscillations behind the shock [2].
WL = [L , uL , pL ]t = [3.86, 0.81, 10.33]t ,
t

WR = [R , uR , pR ] = [1.00, 3.44, 1.00] ,


tf = 1.7.

(7.12.39)
(7.12.40)
(7.12.41)

(e) Left-Moving Waves in a Right-Moving Supersonic Flow:


I like this one,
WL = [L , uL , pL ]t = [1.4, 1.1, 1]t ,
t

(7.12.42)
t

WR = [R , uR , pR ] = [1.4, 110, 100] ,

(7.12.43)

thus ML = MR = 1.1. This is an interesting case where both states are supersonic to the right but some waves
will propagate to the left. This is indeed confusing because we tend to assume that all waves propagate to the
right if both states are supersonic to the right. That is true for scalar conservation laws but not for systems. See
it for yourself using your Euler code, or see [63] for details.

200

CHAPTER 7. EXACT SOLUTIONS II

Density

Pressure

0.13

0.1

0.93

1.66

Entropy

0
(c) Velocity, u.

(b) Pressure, p.

Velocity

(a) Density, .

0
(d) Entropy, s/R =

Figure 7.12.2: Solutions for Sods problem 1.

1
1

x
log(p/ ).

7.12. RIEMANN PROBLEMS FOR THE EULER EQUATIONS

Pressure

Density

201

0.01

0.01

1.92

5.2

Entropy

0
(c) Velocity, u.

(b) Pressure, p.

Velocity

(a) Density, .

0
(d) Entropy, s/R =

Figure 7.12.3: Solutions for Sods problem 2.

1
1

log(p/ ).

3.86

10.33

Pressure

CHAPTER 7. EXACT SOLUTIONS II

Density

202

0.76

3.6

1.11

Entropy

0.92

0
(c) Velocity, u.

(b) Pressure, p.

Velocity

(a) Density, .

0
(d) Entropy, s/R =

Figure 7.12.4: Solutions for a sonic rarefaction.

1
1

log(p/ ).

3.86

10.33

Pressure

203

Density

7.12. RIEMANN PROBLEMS FOR THE EULER EQUATIONS

(a) Density, .

(b) Pressure, p.

1.11

Velocity

Entropy

0.81

3.44
5

0
(c) Velocity, u.

0
(d) Entropy, s/R =

Figure 7.12.5: Solutions for a slowly moving shock.

1
1

log(p/ ).

204

CHAPTER 7. EXACT SOLUTIONS II

-1
-1

Figure 7.13.1: Unsteady solution for the 2D incompressible Navier-Stokes equations.


The velocity eld at t = 0.0 for k = 0.5 and = 0.01. The velocity will be damped
out as time goes on.

7.13

Incompressible Navier-Stokes Equations

7.13.1

Smooth 2D Time-Dependent Solution

The two-dimensional incompressible Navier-Stokes equations,


ux + vy = 0,
ut + uux + vuy = px + (uxx + uyy ),
vt + uvx + vvy = py + (vxx + vyy ),

(7.13.1)
(7.13.2)
(7.13.3)

have the exact solution given by


2

u(x, y, t) = cos(kx) sin(ky) e2k t ,

(7.13.4)

v(x, y, t) = sin(kx) cos(ky) e


,
2
1
p(x, y, t) = [cos(2kx) + cos(2ky)] e4k t ,
4

(7.13.5)

2k2 t

(7.13.6)

where k is an arbitrary constant [17, 25]. This solution can also be expressed in terms of the vorticity = vx uy
and the stream function ,
2

(x, y, t) = 2k cos(kx) cos(ky) e2k t ,


2
1
(x, y, t) = cos(kx) cos(ky) e2k t ,
k

(7.13.7)
(7.13.8)

which is exact for the equation set, (4.15.1) and (4.15.3), i.e.,
t + u x + v y
xx + yy

= (xx + yy ) ,
= ,

(7.13.9)
(7.13.10)

where u = y and v = x . I like this solution very much because it is a rather simple solution for such a complicated
nonlinear system. See Figure 7.13.1 for the velocity eld generated by this solution. It is very interesting, isnt it?

7.13. INCOMPRESSIBLE NAVIER-STOKES EQUATIONS


y

205

Figure 7.13.2: Couette or Couette-Poiseuille ow: dp/dx = 0 or dp/dx 6= 0.

7.13.2

Smooth 3D Time-Dependent Solution

The three-dimensional incompressible Navier-Stokes equations,


ux + vy + wz = 0,
ut + uux + vuy + wuz = px + (uxx + uyy + uzz ),

vt + uvx + vvy + wvz = py + (vxx + vyy + vzz ),


wt + uwx + vwy + wwz = pz + (wxx + wyy + wzz ),

(7.13.11)
(7.13.12)
(7.13.13)
(7.13.14)

have the exact solution given by


2

u(x, y, t) = a [eax sin(ay + dz) + eaz sin(ax + dy)] ed


ay

v(x, y, t) = a [e

az

ax

sin(az + dx) + e

(7.13.15)

d t

(7.13.16)

sin(ay + dz)] e

d2 t

ay

w(x, y, t) = a [e sin(ax + dy) + e sin(az + dx)] e


,
2 
a
p(x, y, t) =
e2ax + e2ay + e2az + 2 sin(az + dx) cos(ay + dz)
2
2
+2 sin(ay + dz) cos(ax + dy) + 2 sin(ax + dy) cos(az + dx)] e2d t ,

(7.13.17)

(7.13.18)
where a and d are arbitrary constants [27]. I like this solution very much because it is, again, a very simple solution for
such a complicated nonlinear system of equations. I just want to point out that there is a typo in the original paper
[27].

7.13.3

Couette Flow

Consider a constant-density ow between two innite plates that are h apart with the upper plate moving at speed U
relative to the lower. Also, we assume that the upper plate is held at temperature T1 and the lower plate at T0 . I like
this setting because it brings a dramatic simplication to the incompressible Navier-Stokes equations. In this situation,
naturally, x-derivative of any quantity is zero as well as the y-component of the velocity is zero everywhere. Also the
pressure is constant everywhere since the ow does not accelerate in any direction. Then, the continuity equation is
trivially satised (all terms drop out), and we have the momentum and the energy equations as follows,
0 = uyy ,

(7.13.19)
2

0 = Tyy + (uy ) .

(7.13.20)

where is the viscosity coecient and is the heat conductivity. This is very nice. We can easily obtain the exact
solutions: integrate the momentum equation to obtain the velocity, and then integrate the energy equation to obtain
the temperature as follows,
y
(7.13.21)
u(y) = U ,
h


U 2  y 2 y
y
.
(7.13.22)

T (y) = T0 + (T1 T0 )
h
2
h
h

206

CHAPTER 7. EXACT SOLUTIONS II

dp
<0
dz
uz
O

R
r
Figure 7.13.3: Hagen-Poiseuille ow.

This simple ow is called the Couette ow. It can be a nice and simple test case for a two-dimensional Navier-Stokes
code in a rectangular domain with a periodic boundary condition in x-direction, i.e., no in-ow and out-ow. Note
that the velocity is a linear function of y. Most practical incompressible Navier-Stokes codes should be able to produce
the exact velocity prole since they are typically designed to be exact for linear solutions.

7.13.4

Unsteady Couette Flow

The Couette ow can be made unsteady by oscillating the upper plate with the following time-dependent speed,
u(h) = U cos(t),

(7.13.23)

where is a constant which denes the frequency. In this case, the momentum equation is given by
ut = uyy .

(7.13.24)

This problem was solved in Subsection 6.1.4 by the separation of variable with complex variables. The solution is
u(y, t) = Q [sinh(ky) cos(ky) sinh(kd) cos(kd) + cosh(ky) sin(ky) cosh(kd) sin(kd)] cos(t)

(7.13.25)

+Q [cosh(ky) sin(ky) sinh(kd) cos(kd) + sinh(ky) cos(ky) cosh(kd) sin(kd)] sin(t)

(7.13.26)

where
U
,
Q=
2
cosh (kd) cos2 (kd)

k=

.
2

(7.13.27)

I like this one because the solution does not decay in time and oscillates forever, preserving the same amplitude. It
would be interesting to see how long a numerical scheme can simulate this solution accurately, of course with a periodic
boundary condition in x-direction.

7.13.5

Couette-Poiseuille Flow

I like ows with constant pressure gradient because it is often possible to obtain the exact solution. For example, I like
the Couette-Poiseuille ow, which is the Couette ow with an added constant pressure gradient, dp/dx = constant.
The momentum equation and the energy are then given by
0 = px + uyy ,

(7.13.28)
2

0 = kTyy + (uy ) .

(7.13.29)

We can integrate these equations straightforwardly and obtain





y  y 2
dp
h2
y

,
u(y) = U +
h 2
dx
h
h
3
y
T (y) = T0 + (T1 T0 )
h 12k

dp
dx

2 h

(7.13.30)

V (y) V (0) {V (h) V (0)}

yi
,
h

(7.13.31)

7.13. INCOMPRESSIBLE NAVIER-STOKES EQUATIONS

207

U1

U0
z

r0
r1
r
Figure 7.13.4: Axially moving co-centric cylinders.

where
V (y) = (uy )4 =

h
U
+
h
2



4
dp 
y

12
.
dx
h

(7.13.32)

It is more complicated than the solution of the Couette ow, but the ow itself is very simple. If your incompressible
Navier-Stokes code is accurate enough to preserve quadratic solutions, it should be able to produce the exact velocity
prole.

7.13.6

Hagen-Poiseuille Flow

The Hagen-Poiseuille ow is an incompressible ow through a pipe of radius R driven by a constant pressure gradient
in the z-direction in the cylindrical coordinates. The only non-zero velocity component is uz and all variables are
functions of r only, i.e., uz = uz (r). Then, the continuity equation is satised identically, and the momentum equation
is given by


duz
dp
1 d
r
.
(7.13.33)
+
0=
dz
r dr
dr
Here, I like the fact that dp/dz is constant because it makes it very easy to integrate this equation. Simply integrating
twice and applying the boundary conditions, i.e., uz (R) = 0 and uz (0) is nite, we obtain


dp
1

(R2 r2 ).
(7.13.34)
uz (r) =
4
dz
The velocity distribution is therefore parabolic, just like that of the Couette-Poiseuille ow. Oh, I forgot to work out a
temperature distribution. Did you say that you wanted to derive it by yourself? OK, Ill leave it to you.

7.13.7

Axially Moving Co-centric Cylinders

Consider an incompressible ow between axially moving cylinders at constant speeds (see Figure 7.13.4). For this ow,
clearly, the velocity components (ur , u , uz ) are such that uz = uz (r) and ur = u = 0. So, the continuity equation
is satised identically, and the momentum and energy equations become


duz
1 d
0=
r
,
(7.13.35)
r dr
dr



2
dT
duz
1 d
kr
+
.
(7.13.36)
0=
r dr
dr
dr
Assume that the inner cylinder moves at uz (r0 ) = U0 with a constant temperature T0 and the outer cylinder moves
at uz (r1 ) = U1 with a constant temperature T1 . Using these as the boundary conditions, we integrate the momentum

208

CHAPTER 7. EXACT SOLUTIONS II

r1 1

r0 0
r0
r1

r
Figure 7.13.5: Rotating co-centric cylinders.

and energy equations and obtain the following set of exact solutions:
uz (r) = U1

ln(r/r0 )
ln(r1 /r)
+ U0
,
ln(r1 /r0 )
ln(r1 /r0 )

(7.13.37)


2
T1 T0
T0 ln r1 T1 ln r0
U1 U0
ln(r/r1 ) ln(r/r0 ) +
ln r +
.
T (r) =
2k ln(r1 /r0 )
ln(r1 /r0 )
ln(r1 /r0 )

(7.13.38)

I like this solution because it is straightforward to generate a computational grid in the domain (i.e., a structured grid
can be easily created between the two boundaries). Incidentally, there are lots of logarithms in the solutions, but many
of them are identical. So, for example, ln(r1 /r0 ) needs to be evaluated just once and we use this value elsewhere.

7.13.8

Rotating Co-centric Cylinders

Consider an incompressible ow between rotating co-centric cylinders: the inner cylinder has radius r0 , angular velocity
0 , and temperature T0 , while the outer cylinder has r1 , 1 , and T1 respectively. Note that the only non-zero velocity
component is u , and all variables are functions of r only. Then, the continuity equation is trivially satised, and the
momentum equations and the energy equation are simplied as follows,
0=

dp u2
+
,
dr
r

(7.13.39)

0=

d  u 
d 2 u
+
,
2
dr
dr r

(7.13.40)

0=

k d
r dr

(7.13.41)




2
dT
du
u
r
+

.
dr
dr
r

These are so simple that we can integrate them analytically to get the exact solutions:
u = r 0 0

r1 /r r/r1
r/r0 r0 /r
+ r1 1
,
r1 /r0 r0 /r1
r1 /r0 r0 /r1

T T0
r02 02 r14 (1 1 /0 )2
=
T 1 T0
k(T1 T0 )
r14 r04




ln(r/r0 )
ln(r/r0 )
r02
1
+
.
1 2
r
ln(r1 /r0 )
ln(r1 /r0 )

(7.13.42)

(7.13.43)

Oh, I forgot to calculate the pressure. Well, you can get the pressure easily (if you wish) by integrating the momentum
equation (7.13.39). I think that it can be a good exercise. By the way, unlike the previous cases, in this ow the
pressure varies across the shear layer. This is because the domain is curved: the pressure gradient is needed to balance
the centrifugal force, or equivalently, to create the centripetal force.

7.13. INCOMPRESSIBLE NAVIER-STOKES EQUATIONS

209

Figure 7.13.6: Flow over a at plate.

7.13.9

Flat Plate Boundary Layer

The at plate boundary layer solution is a solution to the boundary layer equations,
u v
+
x y
u

u
u
+v
x
y

0,

(7.13.44)

2u
,
y 2

(7.13.45)

for a ow over a semi-innite at plate that extends x (Figure 7.13.6). First, to satisfy the continuity equation,
we introduce the stream function ,
U x
f (),
=
Rex

(7.13.46)

where U is the free stream velocity, and


=
so that the velocity components are given by

yp
Rex ,
x

Rex =

Ux
,

(7.13.47)

u
= f ,
U
1
v
=
(f f ).
U
2 Rex

(7.13.48)
(7.13.49)

Therefore, the velocity component u depends only on , i.e., self-similar. This is very nice. The solution is valid at any
location on the at plate (possibly far enough from the leading edge). On the other hand, v depends both on and
x. This may not sound very nice, but it makes sense. The boundary layer grows rapidly from the leading edge, but it
will not grow so much in the downstream (x ) simply because there are no reasons for that. In order to compute
the velocity components, we have to nd f () by solving the momentum equation which is written now in terms of f ,
1
f + f f = 0,
2

(7.13.50)

with the boundary conditions,


u(x, 0) = v(x, 0) = 0
u(x, ) = U

f (0) = f (0) = 0,

f () = 1.

(7.13.51)
(7.13.52)

To solve this numerically, we rewrite this as a system of ordinary dierential equations (ODE):
dF
= G(F),
d

(7.13.53)

where

F=
f1 ,
f2

G(F)

f1
f2
1
f f2
2

(7.13.54)

210

CHAPTER 7. EXACT SOLUTIONS II

15

0
0

u / U

Figure 7.13.7: Velocity prole over a at plate.

with
f (0) = f1 (0) = 0,

(7.13.55)

f1 () = 1.

(7.13.56)

Note that f1 () = 1 is not really at because f1 becomes 1 at some large nite value of , say = 10. To
solve this system, some people employ the shooting method where they integrate (7.13.53) from = 0 to = with
an initial guess for f2 (0), see if f1 () = 1 is satised after the integration, and if it is not, update f2 (0) and repeat
the calculation until they get f1 () = 1. This is not very simple to me; it doesnt make me feel like that I like it.
In fact, I know how to solve it in just two steps (no iterations!). As pointed out in [78], it is easily veried that
if g() is the solution of (7.13.50), i.e., if it satises g + 21 gg = 0, with g(0) = g (0) = 0 and g (0) = Cg2 for an
arbitrary constant Cg2 , then
f = g(),

1
,
= p
g ()

(7.13.57)

is the solution of (7.13.50) that satises the desired boundary condition f () = 1. So, this means that the correct
initial condition for f2 is given by
f2 (0) = f (0) = 3 g (0) = 3 Cg2 .

(7.13.58)

That is, integrating with this initial condition, you get what you want in one shot. So, here is a two step method. The
following computes the velocity (u, v) at a given location (x, y) = (xp , yp ), = p .
Computation of Exact Solution:
To really call this exact, you have to solve the ODE by a very high-order method with extremely small
steps (e.g., the 4th-order Runge-Kutta method with = 105 ). Note also that we set Cg2 = 1.
1. Numerically solve (7.13.53) with
p f (0) = f1 (0) = 0 and f2 (0) = 1, say, up to = 20; call this
solution g() and set = 1/ g (20).

2. Numerically solve (7.13.53) with f (0) = f1 (0) = 0 and f2 (0) = 3 , up to the desired location
= p .
3. Compute the velocity there by
u
= f1 (p ),
U
v
1
(f1 (p ) f (p )).
= p
U
2 Rexp

(7.13.59)
(7.13.60)

7.13. INCOMPRESSIBLE NAVIER-STOKES EQUATIONS

211

Honestly speaking, I dont really like the rst step, so I have computed (by using the 4th-order Runge-Kutta method
with = 5.0 106 and integrating the ODE up to = 100) the value of g ():
g (100) = 2.085409176437910,

(7.13.61)

 p
3
f2 (0) = 3 = 1/ g (100) = 0.3320573362151946.

(7.13.62)

and thus

So, I can skip the rst step from now on, and just perform the second step using this value. This is a very nice and
simple one step method. I like it. I hope that you like it too.

7.13.10

Stokes Flow over a Sphere

The Stokes ow over a sphere is an exact solution to the steady Stokes equations (see Section 4.17), which may be
expressed by
div v

0,

(7.13.63)

div grad

0,

(7.13.64)

where = curl v. We may introduce the spherical coordinates (r, , ) with axisymmetry with respect to (i.e.,
= 0), and write the continuity equation as
1 (u sin )
1 (r2 ur )
+
r2 r
r sin

0.

(7.13.65)

Then, we can dene the stream function as


ur =

1
,
r2 sin

u =

1
,
r sin r

(7.13.66)

to automatically satisfy the continuity equation. In terms of the stream function, the other equation (7.13.64) becomes

 2
1 2
1

= 0.
(7.13.67)
+ 2 2 2
r2
r
r tan
Now consider a uniform ow with the speed U (in the direction of z) over a sphere of radius R at the origin, i.e.,

=
= 0, on the sphere, r = R,
r

1 2 2
U r sin + constant, as r .
2

(7.13.68)

Stokes discovered the following exact solution,


=

1
U R2 sin2
4

R 3r 2r2

+ 2
r
R
R

(7.13.69)

so that the velocity components are




R3
3R
ur = U cos 1 + 3
,
2r
2r

(7.13.70)



3R
R3
,
u = U sin 1 3
4r
4r

(7.13.71)

the pressure is found from the momentum equation, grad p = div grad v, to be
p(r, ) p =

3RU
cos ,
2r2

(7.13.72)

212

CHAPTER 7. EXACT SOLUTIONS II

Figure 7.13.8: Pressure p p of the Stokes ow


over a sphere.

Figure 7.13.9: Streamlines of the Stokes ow over a


sphere

(see Figures 7.13.8 and 7.13.9), the viscous stress on the sphere is given by


u
u
3R3 U sin
1 ur
+

3
,
r (r, ) =
r
r
r
2r
r
and therefore the drag force F is found by combining the viscous drag and the pressure drag,
Z
Z
2
p(R, ) cos (2R2 sin d)
r (R, ) sin (2R sin d)
F =

(7.13.73)

(7.13.74)

= 4U R + 4U R

(7.13.75)

= 6U R

(7.13.76)

I like this solution. The streamline pattern is similar to the inviscid ow over a cylinder, but here the uid is at
rest on the cylinder while the inviscid one is not (slip boundary). In fact, the pressure contours are very dierent from
those for the inviscid ow. It is very interesting. By the way, this solution is exact only for the Stokes equations, not
for the Navier-Stokes equations.

7.14

Compressible Navier-Stokes Equations

7.14.1

Compressible Couette Flow

An exact solution is available for the compressible Navier-Stoke equations for the Couette ow (Figure 7.13.2) [61].
With the same assumptions as made in Subsection 7.13.3, the continuity equation is again trivially satised, and the
momentum equation and the energy equation are simplied as follows,


du
d

,
(7.14.1)
0=
dy
dy


 2
dT
du
d
.
(7.14.2)

+
0=
dy
dy
dy
Note that the pressure is constant everywhere (no acceleration) but the density and the temperature change in the
y-direction. We also assume
= (T ),

= (T ),

(7.14.3)

7.14. COMPRESSIBLE NAVIER-STOKES EQUATIONS

213

i.e., the viscosity and the heat conductivity are functions of T only. Moreover, we assume that the Prandtl number
P r is constant,
cp
= constant.

(7.14.4)

Now, rst, we integrate the momentum equation (7.14.1) once to get,



du
du
= w ,

=
dy
dy y=0

(7.14.5)

Pr =

where w denotes the shear stress at the bottom wall. Then, integrating once more, we obtain
Z y
dy
.
u(y) = w
0 (T )

(7.14.6)

We will nd that this is a very nice relation when we use it later to eliminate the same integral arising in an energy
integral. Also, remember that we will integrate (7.14.5) (in a slightly dierent way) to nally obtain the velocity
distribution.
We now consider integrating the energy equation. First, we note that
d
dy

du
dy

=u

d
dy



 2
 2
du
du
du

+
=
,
dy
dy
dy

(7.14.7)

where the momentum equation has been used in the last step. Using this, we can write the energy equation (7.14.2)
as


d
du
dT
0=
+ u

,
(7.14.8)
dy
dy
dy
so that it can be easily integrated once,


dT
du
du
dT

+ u
= qw ,
+ u
=
dy
dy
dy y=0
dy y=0

(7.14.9)

where qw is the heat ux at the bottom wall (into the wall when qw < 0) and the no-slip condition u(0) = 0 has been
applied. This can be integrated once more by introducing the Prandtl number which is constant,


u2
d cp T
= qw ,
(7.14.10)
+

dy P r
2
thus,
cp (T Tw ) u2
+
= qw
Pr
2

dy
.
(T )

(7.14.11)

It is nice here that the integral on the right hand side can be eliminated by (7.14.6):
cp (T Tw ) u2
qw u
+
=
.
Pr
2
w

(7.14.12)

It is very nice that the integral is gone. Just for convenience, we eliminate also Tw from above as follows: evaluate it
at y = d (the upper plate),
2
qw U
cp (T Tw ) U
,
+
=
Pr
2
w

(7.14.13)

where the subscript denotes the state at the upper plate, then subtract (7.14.12) from this to get
2
cp (T T ) u2 U
qw (u U )
+
=
,
Pr
2
w

(7.14.14)

214

CHAPTER 7. EXACT SOLUTIONS II

y/d

0
0

u/U

Figure 7.14.1: Velocity prole for the compressible Couette ow with P r = 0.73, = 1.4; M = 20 (thick
solid line), M = 3 (dashed line), M = 0, i.e., incompressible ow (thin solid line). Note that this is
exact only when the viscosity obeys the power law (7.14.16) with = 1.

which can be arranged into the following form,





u
u2
1
qw
T
2
2
1
1 2 ,
+
=1+
( 1)P rM
P rM
T
w U
U
2
U

(7.14.15)

where we have used cp = R/( 1). Finally, in order to obtain the velocity distribution, we assume a power low


T

,
(7.14.16)
=

T
where = 0.76 is a good approximation for air, and insert this into the momentum equation (7.14.5) and integrate
to get

Z u
Z u
w y

T
=
du =
du
(7.14.17)

T
0
0




Z u
u
u2
1
qw
2
2
1+
=
1
1 2
+
( 1)P rM
P rM
du.
(7.14.18)
w U
U
2
U
0
This can be integrated analytically (using the beta function), but the result will be very complicated. For code
verication purpose, it suces to take = 1 and qw = 0. Then, nally, we obtain the following implicit expression for
the velocity distribution,





u
1 u2
1
1
y
2
2
=
1
1+
1+
P rM
P rM
,
(7.14.19)
2
d
3
U
2
3 U
where w has been determined by the boundary condition u(d) = U and eliminated. This can be solved numerically.
The velocity proles in Figure 7.14.1 were obtained by the xed-point iteration: compute V k+1 (k = 1, 2, 3, . . .), at a
desired location y, by


2
1 + 1
3 P rM
,

(7.14.20)
V k+1 =
1
2
k 2
1 + 1
2 P rM 1 3 (V )

until |V k+1 V k | < 1015 , where V k = uk /U , = y/d, and the initial guess V 1 may be set any value between 0
and 1. Temperature can be calculated by (7.14.15) for a given velocity prole, and density can then be calculated by
the equation of state. Of course, I like this solution. It is very nice that the domain is very simple but the solution is
not trivial. If you want a solution for a more general case, e.g., qw 6= 0 or 6= 1, you can derive it analytically. Good
luck.

7.14. COMPRESSIBLE NAVIER-STOKES EQUATIONS

7.14.2

215

Manufactured Solutions

We can manufacture exact solutions for the compressible Navier-Stokes equations. In fact, many people do. See
[60, 66, 87] for examples. In particular, I like the idea of using exact solutions of the incompressible Navier-Stokes
Equations as manufactured solutions for the compressible Navier-Stokes Equations: substitute incompressible solutions
into the compressible equations and generate appropriate source terms. This way, we can have an exact solution
which looks like a physical ow. For example, in [77], the Couette-Poiseuille solution described in Subsection 7.13.5
was used for verifying the accuracy of a high-order compressible Navier-Stokes code. You want to try it now? Then,
pick any incompressible ow solution from Section 7.13, and generate appropriate source terms for the compressible
Navier-Stokes equations (possibly by using a math software).

Bibliography
[1] S. Abarbanel and D. Gottlieb. Optimal time splitting for two and three dimensional Navier-Stokes equations with
mixed derivatives. ICASE Report 80-6, 1980.
[2] M. Arora and P. L. Roe. On postshock oscillations due to shock capturing schemes in unsteady ow. Journal of
Computational Physics, 130:124, 1997.
[3] B. S. Baldwin and T. J. Barth. A one-equation turbulence transport model for high reynolds number wall-bounded
ows. NASA TM-102847, 1990.
[4] B. S. Baldwin and T. J. Barth. A one-equation turbulence transport model for high reynolds number wall-bounded
ows. AIAA Paper 91-0610, 1991.
[5] B. S. Baldwin and H. Lomax. Thin-layer approximation and algebraic model for separated turbulent ows. AIAA
paper 78257, 1978.
[6] A. F. Barannyk and I. I. Yuryk. Construction of exact solutions of diusion equation. In Proceedings of Institute
of Mathematics of NAS of Ukraine, volume 50, Part 1, pages 2933. Institute of Mathematics, 2004.
[7] T. J. Barth. Numerical methods for gasdynamic systems on unstructured meshes. In D. Kroner, M. Ohlberger,
and M. Rohde, editors, An Introduction to Recent Developments in Theory and Numerics for Conservation Laws,
pages 195285. Springer, 1997.
[8] G. K. Batchelor. The Theory of Homogeneous Turbulence. Cambridge University Press, 1970.
[9] E. R. Benton and G. W. Platzman. A table of solutions of the one-dimensional burgers equation. Quarterly of
Applied Mathematics, 30:195212, 1972.
[10] A. Bonglioli. Fluctuation splitting schemes for the compressible and incompressible Euler and Navier-Stokes
equations. CFD, 14:2139, 2000.
[11] J. Boussinesq. Essai sur lar thorie des eaux courantes. Mem. Prsents Acad. Sci., 23:46, 1877.
[12] W. L. Briggs, V. E. Henson, and S. F. McCormick. A Multigrid Tutorial. SIAM, second edition, 2000.
[13] R. G. Campbell. Foundations of Fluid Flow Theory. Addison-Wesley Publishing Company, 1973.
[14] D. Caraeni and L. Fuchs. Compact third-order multidimensional upwind scheme for Navier-Stokes simulations.
Theoretical and Computational Fluid Dynamics, 15:373401, 2002.
[15] C. Cattaneo. A form of heat-conduction equations which eliminates the paradox of instantaneous propagation.
Ct. R. Acad. Sci., Paris, 247:431433, 1958.
[16] A. J. Chorin. A numerical method for solving incompressible viscous ow problems. Journal of Computational
Physics, 2:1226, 1967.
[17] A. J. Chorin. Numerical solution of the Navier-Stokes equations. Mathematics of Computation, 22(104):745762,
1968.
[18] C.-S. Chou and C.-W. Shu. High order residual distribution conservative nite dierence WENO schemes for
steady state problems on non-smooth meshes. Journal of Computational Physics, 214:698724, 2006.
[19] B. Cockburn and C.-W. Shu. Runge-Kutta discontinuous Galerkin methods for convection-dominated problems.
Journal of Scientic Computing, 16(3):173261, 2001.
217

218

BIBLIOGRAPHY

[20] W. J. Coirier and K. G. Powell. An accuracy assessment of Cartesian-mesh approaches for the Euler equations.
Journal of Computational Physics, 117:121131, 1995.
[21] C. Corre, G. Hanss, and A. Lerat. A residual-based compact schemes for the unsteady compressible Navier-Stokes
equations. Computers and Fluids, 34:561580, 2005.
[22] G.-H. Cottet and P. D. Koumoutsakos. Vortex Methods: Theory and Practice. Cambridge University Press,
2000.
[23] A. Csik, M. Ricchiuto, and H. Deconinck. A conservative formulation of the multidimensional upwind residual
distribution schemes for general nonlinear conservation laws. Journal of Computational Physics, 179:286312,
2002.
[24] H. Deconinck, P. L. Roe, and R. Strus. A multi-dimensional generalization of Roes ux dierence splitter for
the Euler equations. Computers and Fluids, 22:215222, 1993.
[25] Weinan E and C.-W Shu. A numerical resolution study of high order essentially non-oscillatory schemes applied
to incompressible ow. Journal of Computational Physics, 110:3946, 1994.
[26] L. Eca, M. Hoekstra, A. Hay, and D. Pelletier. On the construction of manufactured solutions for one and
two-equation eddy-viscosity models. International Journal for Numerical Methods in Fluids, 54:119154, 2007.
[27] C. R. Ethier and D. A. Steinman. Exact fully 3D Navier-Stokes solutions for benchmarking. International Journal
for Numerical Methods in Fluids, 19:369375, 1994.
[28] C. A. J. Fletcher. Generating exact solutions of the two-dimensional Burgers equations. International Journal
for Numerical Methods in Fluids, 3:213216, 1983.
[29] C. A. J. Fletcher. Computational Techniques for Fluid Dynamics, volume 2. Springer, 1991.
[30] L. E. Fraenkel. On corner eddies in plane inviscid shear ow. Journal of Fluid Mechanics, 11:400406, 1961.
[31] E. Godlewski and P.-A. Raviart. Numerical Approximation of Hyperbolic Systems of Conservation Laws. Springer,
1996.
[32] S. K. Godunov. An interesting class of quasilinear systems. Dokl. Akad. Nauk. SSSR, 139:521523, 1961.
[33] H. Grad. Reducible problems in magneto-uid dynamic steady ows. Review of Modern Physics, 32(4):830847,
1960.
[34] M. E. Habbard and P. Garcia Navarro. Flux dierence splitting and the balancing of source terms and ux
gradients. Journal of Computational Physics, 165:89125, 2000.
[35] N. D. Halsey. Potential ow analysis of multielement airfoils using conformal mapping. AIAA Journal, 17:1281
1288, 1979.
[36] C. Hirsch. Numerical Computation of Internal and External Flows, volume 1. A Wiley - Interscience Publications,
1990.
[37] C. Hirsch. Numerical Computation of Internal and External Flows, volume 2. A Wiley - Interscience Publications,
1990.
[38] C. W. Hirt, A. A. Amsden, and J. L. Cook. An arbitrary Lagrangian-Eulerian computing method for all ow
speeds. Journal of Computational Physics, 14(3):227257, 1974.
[39] W. F. Hughes and J. A. Brighton. Schaums Outline Series, Fluid Dynamics. McGraw-Hill, 1995.
[40] I. Imai. Fluid Dynamics, volume 1. Shokabo, 1973.
[41] D. C. Ives. A modern look at conformal mapping including multiple connected region. AIAA Journal, 14:1006
1011, 1976.
[42] Jr. J. D. Anderson. Computational Fluid Dynamics: The Basic with Applications. McGraw-Hill, 1995.
[43] A. Jerey and T. Taniuti. Nonlinear Wave Propagation. Academic Press, 1964.

BIBLIOGRAPHY

219

[44] B.-N. Jiang. The Least-Squares Finite Element Method. Springer, 1998.
[45] S. Jin and C. D. Levermore. Numerical schemes for hyperbolic conservation laws with sti relaxation terms.
Journal of Computational Physics, 126:449467, 1996.
[46] D. A. Johnson and L. S. King. A mathematically simple turbulence closure model for attached and separated
turbulent boundary layers. AIAA Journal, 23(11):16841692, 1985.
[47] I. W. Johnson, A. J. Wathen, and M. J. Baines. Moving nite element methods for evolutionary problems II:
Applications. Journal of Computational Physics, 79:270297, 1988.
[48] K. Karamcheti. Principles of Ideal-Fluid Aerodynamics. Krieger Publishing Company, reprinted edition, 1980.
[49] J. Katz and A. Plotkin. Low-Speed Aerodynamics. Cambridge University Press, second edition, 2001.
[50] C. Kim. Multi-Dimensional Upwind Leapfrog Schemes and Their Applications. PhD thesis, University of Michigan,
Ann Arbor, Michigan, 1997.
[51] B. L. Kleb. Optimizing Runge-Kutta Schemes for Viscous Flow. PhD thesis, University of Michigan, Ann Arbor,
Michigan, 2004.
[52] A. N. Kolmogorov. The local structure of turbulence in incompressible viscous uid for very large reynolds
numbers. Doklady Akademiya Nauk SSSR, 30:299303, 1941.
[53] A. M. Kuethe and C.-Y. Chow. Foundations of Aerodynamics. John Wiley & Son Ltd., fth edition, 1998.
[54] D. Kwak, J. L. C. Chang, S. P. Shanks, and S. K. Chakravarthy. A three-dimensional incompressible Navier-Stokes
solver using primitive variables. AIAA Journal, 24:390396, 1986.
[55] L. D. Landau and E. M. Lifshitz. Fluid Mechanics. Butterworth-Heinemann, second edition, 1987.
[56] Dohyung Lee. Local Preconditioning of the Euler and Navier-Stokes Equations. PhD thesis, University of
Michigan, Ann Arbor, Michigan, 1996.
[57] W.-T. Lee. Local Preconditioning of the Euler Equations. PhD thesis, University of Michigan, Ann Arbor,
Michigan, 1991.
[58] R. J. Leveque. Finite Volume Methods for Hyperbolic Problems. Cambridge University Press, 2002.
[59] R. L. LeVeque. Balancing source terms and ux gradients in high-resolution Godunov methods - the quasi-steady
wave-propagation algorithm. Journal of Computational Physics, 146:346365, 1998.
[60] W. Liao, B. Diskin, Y. Peng, and L.-S. Luo. Textbook-eciency multigrid solver for three-dimensional unsteady
compressible Navier-Stokes equations. Journal of Computational Physics, 227:71607177, 2008.
[61] H. W. Liepmann and A. Roshko. Elements of Gasdynamics. Dover, 2002.
[62] K. Liman and A. Siora. Magnetosonic jet ow. Mon. Not. R. Astron. Soc., 290:629635, 1997.
[63] T. Linde and P. Roe. On a mistaken notion of of "Proper Upwinding". Journal of Computational Physics,
142:611614, 1998.
[64] R. B. Lowrie. Compact Higher-Order Numerical Methods for Hyperbolic Conservation Laws. PhD thesis,
University of Michigan, Ann Arbor, Michigan, 1996.
[65] R. B. Lowrie and J. E. Morel. Methods for hyperbolic systems with sti relaxation. International Journal for
Numerical Methods in Fluids, 40:413423, 2002.
[66] J. M. McDonough. A class of model problems for testing compressible Navier-Stokes solvers. AIAA paper
883646, 1988.
[67] F. R. Menter. Two-equation eddy-viscosity turbulence models for engineering applications. AIAA Journal,
32(8):15981605, 1994.
[68] L. M. Mesaros. Multi-Dimensional Fluctuation Splitting Schemes for The Euler Equations on Unstructured Grids.
PhD thesis, University of Michigan, Ann Arbor, Michigan, 1995.

220

BIBLIOGRAPHY

[69] K. W. Morton and P. L. Roe. Vorticity-preserving Lax-Wendro-type schemes for the system wave equation.
SIAM Journal on Scientic Computing, 23:170192, 2001.
[70] H. Nishikawa. On Grids and Solutions from Residual Minimization. PhD thesis, University of Michigan, Ann
Arbor, Michigan, August 2001.
[71] H. Nishikawa. A rst-order system approach for diusion equation. I. Second-order residual-distribution schemes.
Journal of Computational Physics, 227:315352, 2007.
[72] H. Nishikawa. Adaptive quadrature uctuation-splitting schemes for the Euler equations. International Journal
for Numerical Methods in Fluids, 57:112, 2008.
[73] H. Nishikawa, M. Rad, and P. Roe. A third-order uctuation-splitting scheme that preserves potential ow. In
15th AIAA Computational Fluid Dynamics Conference, AIAA Paper 01-2595, Anaheim, 2001.
[74] H. Nishikawa, M. Rad, and P. L. Roe. Grids and solutions from residual minimisation. In Computational Fluid
Dynamics 2000, pages 119124. Springer-Verlag, 2000.
[75] H. Nishikawa, P. Roe, Y. Suzuki, and B. van Leer. A general theory of local preconditioning and its application to
the 2D ideal MHD equations. In 16th AIAA Computational Fluid Dynamics Conference, AIAA Paper 2003-3704,
Orlando, 2003.
[76] H. Nishikawa and P. L. Roe. On high-order uctuation-splitting schemes for Navier-Stokes equations. In Computational Fluid Dynamics 2004, pages 799804. Springer-Verlag, 2004.
[77] T. A. Oliver. Multigrid solution for high-order discontinuous Galerkin discretizations of the compressible NavierStokes equations. Masters thesis, Massachusetts Institute of Technology, August 2004.
[78] C. Pozrikidis. Introduction to Theoretical and Computational Fluid Dynamics. Oxford University Press, 1997.
[79] L. Prandtl. Uber die ausgebildete turbulenz. Z.A.M.M., 5:136139, 1925.
[80] M. Rad. Residual Distribution Approach to the Euler Equations that Preserves Potential Flow. PhD thesis,
University of Michigan, Ann Arbor, Michigan, August 2001.
[81] M. Ricchiuto, N. Villedieu, R. Abgrall, and H. Deconinck. On uniformly high-order accurate residual distribution
schemes for advection-diusion. Journal of Computational and Applied Mathematics, 214:698724, 2007.
[82] F. Ringleb. Exakte losungen der dierentialgleichungen einer adiabatischen gasstromung. Z.A.M.M., 20(4):185
98, 1940.
[83] P. J. Roache. Verication and Validation in Computational Science and Engineering. Hermosa, 1998.
[84] P. L. Roe. Approximate Riemann solvers, parameter vectors, and dierence schemes. Journal of Computational
Physics, 43:357372, 1981.
[85] P. L. Roe and M. Arora. Characteristic-based schemes for dispersive waves I. the method of characteristics for
smooth solutions. Numerical Methods for Partial Dierential Equations, 9:459505, 1993.
[86] P. L. Roe and H. Nishikawa. Adaptive grid generation by minimising residuals. International Journal for Numerical
Methods in Fluids, 40:121136, 2002.
[87] C. J. Roy, C. C. Nelson, T. M. Smith, and C. C. Ober. Verication of Euler/Navier-Stokes codes using the
method of manufactured solutions. International Journal for Numerical Methods in Fluids, 44:599620, 2004.
[88] J. Roy, M. Hafez, and J. J. Chattot. Explicit methods for the solution of the generalized cauchy-riemann equations
and simulation of inviscid rotational ows. Computers and Fluids, 31:769786, 2002.
[89] C. L. Rumsey and J. L. Thomas. Application of FUN3D and CFL3D to the third workshop on CFD uncertainty
analysis. NASA TM-2008-215537, 2008.
[90] H. Schlichting and K. Gersten. Boundary Layer Theory. Springer, eighth edition, 2000.
[91] A. H. Shapiro. The Dynamics and Thermodynamics of Compressible Fluid Flow, volume 1. The Ronald Press
Company, 1953.

BIBLIOGRAPHY

221

[92] A. H. Shapiro. The Dynamics and Thermodynamics of Compressible Fluid Flow, volume 2. The Ronald Press
Company, 1954.
[93] A. Sherif and M. Hafez. Computation of three-dimensional transonic ows using two stream functions. International Journal for Numerical Methods in Fluids, 8:1729, 1988.
[94] C.-W. Shu. Essentially non-oscillatory and weighted essentially non-oscillatory schemes for hyperbolic conservation laws. In A. Quarteroni, editor, Lecture Notes in Mathematics, volume 1697, pages 325432. Springer,
1998.
[95] A. M. O. Smith and T. Cebeci. Numerical Solution of the Turbulent Boundary-Layer Equations. Douglas Aircraft
Division Report DAC 33735, 1967.
[96] G. A. Sod. A survey of several nite dierence methods for systems of nonlinear hyperbolic conservation laws.
Journal of Computational Physics, 27:131, 1978.
[97] P. R. Spalart and S. R. Allmaras. A one-equation turbulence model for aerodynamic ows. AIAA paper 92-0439,
1992.
[98] P. R. Spalart, W.-H. Jou, M. Stretlets, and S. R. Allmaras. Comments on the feasibility of LES for wings
and on the hybrid RANS/LES approach. Advances in DNS/LES, Proceedings of the rst AFOSR international
conference on DNS/LES, 1997.
[99] J. L. Steger and R. F. Warming. Flux vector splitting of the inviscid gas-dynamic equations with applications to
nite dierence methods. Journal of Computational Physics, 40:263293, 1981.
[100] M. Strelets. Detached eddy simulation of massively separated ows. 2001.
[101] A. Suddhoo and I. M. Hall. Test case for the plane potential ow past multi-element aerofoils. Aeronautical
Journal, pages 403414, December 1985.
[102] Y. Sun, Z. J. Wang, and Y. Liu. Spectral (nite) volume method for conservation laws on unstructured grids
VI: Extension to viscous ow. Journal of Computational Physics, 215:4158, 2006.
[103] J. C. Tannehill, D. A. Anderson, and R. H. Pletcher. Computational Fluid Mechanics and Heat Transfer. Taylor
& Francis, second edition, 1997.
[104] H. Tennekes and J. L. Lumley. A First Course in Turbulence. The MIT Press, 1972.
[105] G. T. Tomaich. A Genuinely Multi-Dimensional Upwinding Algorithm for for the Navier-Stokes Equations on
Unstructured Grids Using A Compact, Highly-Parallelizable Spatial Discretization. PhD thesis, University of
Michigan, Ann Arbor, Michigan, 1995.
[106] E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics: A Practical Introduction. Springer,
second edition, 1999.
[107] E. van der Weide, H. Deconinck, E. Issman, and G. Degrez. A parallel, implicit, multi-dimensional upwind,
residual distribution method for the Navier-Stokes equations on unstructured grids. Computational Mechanics,
23:199208, 1999.
[108] B. van Leer. Computational uid dynamics: Science or Toolbox? In 15th AIAA Computational Fluid Dynamics
Conference, AIAA Paper 2001-2520, Anaheim, 2001.
[109] B. van Leer. Upwind and high-resolution methods for compressible ow: From doner cell to residual-distribution
schemes. Communications in Computational Physics, 1(2):192206, 2006.
[110] S. Venkateswaran and C. L. Merkle. Analysis of time-derivative preconditioning for the Navier-Stokes equations.
In Fifth International Symposium on Computational Fluid Dynamics, 1995.
[111] F. M. White. Viscous Fluid Flow. McGraw-Hill, second edition, 1991.
[112] G. Whitham. Linear and Nonlinear Waves. Wiley-Interscience, 1974.
[113] D. C. Wilcox. Turbulence Modeling for CFD. DCW Industries, Inc., 1998.

222

BIBLIOGRAPHY

[114] B. R. Williams. An exact test case for the plane potential ow about two adjacent lifting aerofoils. Royal
Aeronautical Establishment, R&M No. 3713, 1971.
[115] Y. Xing and C.-W. Shu. High order well-balanced nite volume WENO schemes and discontinuous Galerkin
methods for a class of hyperbolic systems with source terms. Journal of Computational Physics, 214:567598,
2006.
[116] H. C. Yee, M. Vinokur, and M. J. Djomehri. Entropy splitting and numerical dissipation. Journal of Computational
Physics, 162:3381, 2000.
[117] E. C. Zachmanoglou and D. W. Thoe. Introduction to Partial Dierential Equations with Applications. Dover,
1986.

223

Вам также может понравиться