You are on page 1of 40

Numerical Methods in Computational

Fluid Dynamics (CFD)

Tao Xing and Fred Stern

IIHR—Hydroscience & Engineering


C. Maxwell Stanley Hydraulics Laboratory
The University of Iowa

58:160 Intermediate Mechanics of Fluids


http://css.engineering.uiowa.edu/~me_160/
Oct. 8, 2004
Outline
1. Introduction to Numerical Methods
2. Components of Numerical Methods
2.1. Properties of Numerical Methods
2.2. Discretization Methods
2.3. Application of Numerical methods in PDE
2.4. Numerical Grid and Coordinates
2.5. Solution of Linear Equation System
2.6. Convergence Criteria
3. Methods for Unsteady Problems
4. Solution of Navier-Stokes Equations
5. Example

2
Introduction to numerical methods
• Approaches to Fluid Dynamical Problems:
1. Simplifications of the governing equations AFD
2. Experiments on scale models EFD
3. Discretize governing equations and solve by
computers CFD
• CFD is the simulation of fluids engineering system
using modeling and numerical methods
• Possibilities and Limitations of Numerical Methods:
1. Coding level: quality assurance, programming
defects, inappropriate algorithm, etc.
2. Simulation level: iterative error, truncation error, grid
error, etc.

3
Components of numerical methods
(Properties)
• Consistence
1. The discretization should become exact as the grid spacing
tends to zero
2. Truncation error: Difference between the discretized equation
and the exact one
• Stability: does not magnify the errors that appear in
the course off numerical solution process.
1. Iterative methods: not diverge
2. Temporal problems: bounded solutions
3. Von Neumann’s method
4. Difficulty due to boundary conditions and non-linearities
present.
• Convergence: solution of the discretized equations
tends to the exact solution of the differential equation
as the grid spacing tends to zero.

4
Components of numerical methods
(Properties, Cont’d)
• Conservation
1. The numerical scheme should on both local and global basis respect
the conservation laws.
2. Automatically satisfied for control volume method, either individual
control volume or the whole domain.
3. Errors due to non-conservation are in most cases appreciable only
on relatively coarse grids, but hard to estimate quantitatively
• Boundedness:
1. Iterative methods: not diverge
2. Temporal problems: bounded solutions
3. Von Neumann’s method
4. Difficulty due to boundary conditions and non-linearities present.
• Realizability: models of phenomena which are too complex to treat
directly (turbulence, combustion, or multiphase flow) should be
designed to guarantee physically realistic solutions.
• Accuracy: 1. Modeling error 2. Discretization errors 3. Iterative
errors

5
Components of numerical methods
(Discretization Methods)
• Finite Difference Method (focused in this lecture)
1. Introduced by Euler in the 18th century.
2. Governing equations in differential form domain with grid replacing the
partial derivatives by approximations in terms of node values of the
functions one algebraic equation per grid node linear algebraic equation
system.
3. Applied to structured grids
• Finite Volume Method (not focused in this lecture)
1. Governing equations in integral form solution domain is subdivided into a
finite number of contiguous control volumes conservation equation applied
to each CV.
2. Computational node locates at the centroid of each CV.
3. Applied to any type of grids, especially complex geometries
4. Compared to FD, FV with methods higher than 2nd order will be difficult,
especially for 3D.
• Finite Element Method (not covered in this lecture):
1. Similar to FV
2. Equations are multiplied by a weight function before integrated over the
entire domain.

6
Discretization methods (Finite Difference,
introduction)
• First step in obtaining a numerical solution is to
discretize the geometric domain to define a
numerical grid
• Each node has one unknown and need one algebraic
equation, which is a relation between the variable
value at that node and those at some of the
neighboring nodes.
• The approach is to replace each term of the PDE at
the particular node by a finite-difference
approximation.
• Numbers of equations and unknowns must be equal

7
Discretization methods (Finite Difference,
approximation of the first derivative)
• Taylor Series Expansion: Any continuous differentiable function,
in the vicinity of xi , can be expressed as a Taylor series:

    x  xi    2   x  xi  3   3   x  xi    n  
2 n
 x    xi    x  xi      2    3   ...   n   H
 x i 2!  x i 3!  x i n!  x i

    i 1   i xi 1  xi   2    xi 1  xi  2   3 
     2    3   H
 x i xi 1  xi 2  x i 6  x i
• Higher order derivatives are unknown and can be dropped when the distance between
grid points is small.
• By writing Taylor series at different nodes, x i-1, xi+1, or both xi-1 and xi+1, we can have:

    i 1   i     i   i 1
   Forward-FDS    Backward-FDS
 x  i xi 1  xi  x  i xi  xi 1

    i 1   i 1 1st order, order of accuracy Pkest=1


   Central-FDS
 x  i xi 1  xi 1
2nd order, order of accuracy Pkest=1
8
Discretization methods (Finite Difference,
approximation of the first derivative, Cont’d)
• Polynomial fitting: fit the function to an interpolation curve
and differentiate the resulting curve.
Example: fitting a parabola to the data at points xi-1,xi, and
xi+1, and computing the first derivative at xi, we obtain:
  
2

    i 1  xi    i 1  xi 1    i  xi 1    xi 
2 2 2

 x  i xi 1xi  xi  xi 1 
xi  xi  xi 1
2nd order truncation error on any grid. For uniform meshing, it
reduced to the CDS approximation given in previous slide.
• Compact schemes: Depending on the choice of parameters α, β, and γ, 2nd order and 4th order CDS, 4th
order and 6th order Pade scheme are obtained.

          i 1   i 1  i  2   i 2
            
 x i 1  x i  x i 1 2x 4x
• Non-Uniform Grids: to spread the error nearly uniformly over the domain, it will be necessary to use smaller
x in regions where derivatives of the function are large and larger x where function is smooth

9
Discretization methods (Finite Difference,
approximation of the second derivative)
• Geometrically, the second derivative is the slope of the line
tangent to the curve representing the first derivative.
     
   
  2   x i 1  x i
 2  
 x i xi 1  xi

Estimate the outer derivative by FDS, and estimate the inner


derivatives using BDS, we get
  2    i 1  xi  xi 1    i 1  xi 1  xi    i  xi 1  xi 1 
 2  
 x i  xi 1  xi  2  xi  xi 1 
For equidistant spacing of the points:
  2   i 1  2 i   i 1
 2  
 x i  x  2
Higher-order approximations for the second derivative can be
derived by including more data points, such as xi-2, and xi+2, even
xi-3, and xi+3

10
Discretization methods (Finite Volume)
• FV methods uses the integral form of the conservation equation

• FV defines the
control volume NW NE
boundaries while FD N
define the
computational nodes nw n ne
WW W ne E EE
w P e y
sw s se
• Computational y SW SE
node located at x
the Control j
Volume center i x
• Global
conservation Typical CV and the notation for Cartesian 2D
automatically
satisfied
• FV methods uses the integral form of the conservation equation

 fdS    fdS
S Sk
k
11
Application of numerical methods in PDE
• Fluid Mechanics problems are governed by the laws of physics,
which are formulated for unsteady flows as initial and boundary
value problems (IBVP), which is defined by a continuous partial
differential equation (PDE) operator LT (no modeling or numerical
errors, T is the true or exact solution)
LT  T   0 IC : T  x, t  0   GT  x  BC : T  xB , t   H T  t  A1
• Analytical and CFD approaches formulate the IBVP by selection of
the PDE, IC, and BC to model the physical phenomena
LM  M   0 IC : M  x, t  0   GM  x  BC : M  xB , t   H M  t  A2
• Using numerical methods, the continuous IBVP is reduced to a
discrete IBVP (computer code), and thus introduce numerical errors:

LN  S   1 IC : S  x, t  0  g N  x  BC : S  xB , t   hN  t  A3
• Numerical errors can be defined and evaluated by transforming
the discrete IBVP back to a continuous IBVP. A4
J   x  i LModified  S   LM  S   N BC : S  xB , t   H Modified  t 
i S
S  S C   j
J
i! x j N  1    j IC : S  x, t  0  G  x
i
j 1 i 1
j 1 Modified
Truncation error 12
Application of numerical methods in PDE
(Truncation and Discretization errors)
• Subtracting equations A2 and A4 gives the IBVP that
governs the simulation numerical error J  SN  S  M
LM ( S  M )  LM   SN   N  1    j
j 1

IC :  SN  x, t  0   GModified  x   GM  x 
A5
BC :  SN  xB , t   H Modified  t   H M  t 
• An IBVP for the modeling error M-T can be obtained by
subtracting A1 and A2:
LM ( M  T )  LM   SM   M   LM  T 
IC :  SM  x, t  0  GM  x   GT  x 
BC :  SM  xB , t   H M  t   H T  t  A6
• Adding A5 and A6
LM ( S  T )  LM   S   N  M
IC :  S  x,0   GModified  x   GT  x   S  S  T   SN   SM
BC :  S  xB , t   H Modified  t   H T  t 
13
Numerical grids and coordinates
• The discrete locations at which the variables are
to be calculated are defined by the numerical
grid
• Numerical grid is a discrete representation of the
geometric domain on which the problem is to be
solved. It divides the solution domain into a
finite number of sub-domains
• Type of numerical grids: 1. structured (regular
grid), 2. Block-structured grids, and 3.
Unstructured grids
• Detailed explanations of numerical grids will be
presented in the last lecture of this CFD lecture
series.
• Different coordinates have been covered in
“Introduction to CFD”

14
Components of numerical methods
(Solution of linear equation systems, introduction)
• The result of the discretization using either FD or
FV, is a system of algebraic equations, which are
linear or non-linear
A  Q
• For non-linear case, the system must be solved
using iterative methods, i.e. initial guess
iterate converged results obtained.
• The matrices derived from partial differential
equations are always sparse with the non-zero
elements of the matrices lie on a small number
of well-defined diagonals

15
Solution of linear equation systems (direct

methods)
Gauss Elimination: Basic methods for solving linear systems of algebraic equations but does not vectorize or parallelize well and is rarely used
without modifications in CFD problems.

 A11 A12 A13 . . . A1n   A11 A12 A13 . . . A1n  Qn



A A A . . . A
   n 
 21
• LU Decomposition:
22 23 the factorization 2n 
can be  0withoutAknowing
performed 22 A23the vector
. .Q . A2 n  Ann
 . . . . or Tridiagonal
. Thomas Algorithm  . . . (TDMA)
. P95 . 
• Tridiagonal Systems: Matrix Algorithm
A . U   . n
 .
 .
.
.
.
.
.
.
. 
. 
 .
 .
.
.
.
.
.
.
. 
. 
Qi  A  ik k

A 

 0 i  k  i 1

 n1 An 2 An 3 . . . Ann   0 0 . . . Ann  Aii

A  LU U  Y LY  Q

AWi  i 1  APi  i  AEi  i 1  Qi


i i 1
A A AWi Qi*1 Qi*  AEi  i 1
APi  APi  W i 1E Q  Qi 
*
i i 
AP APi 1 APi
16
Solution of linear equation systems
(iterative methods)
• Why use iterative methods:
1. in CFD, the cost of direct methods is too high since the
triangular factors of sparse matrices are not sparse.
2. Discretization error is larger than the accuracy of the
computer arithmetic
• Purpose of iteration methods: drive both the residual and error to be zero
• Rapid convergence of an iterative method is key to its effectiveness.

A  Q A  Q  
n n
  
n n

A   n n

 Approximate solution after n iteration


n
 n residual
 n Iteration error
17
Solution of linear equation systems
(iterative methods, cont’d)
• Typical iterative methods:
1. Jacobi method
2. Gauss-Seidel method
3. Successive Over-Relaxation (SOR), or LSOR
4. Alternative Direction Implicit (ADI) method
5. Conjugate Gradient Methods
6. Biconjugate Gradients and CGSTAB
7. Multigrid Methods

18
Solution of linear equation systems
(iterative methods, examples)
• Jacobi method:

 i  1,2,..., n 
k
R n
 ik 1   ik  i R  Qi   Aij x kj
i
k

Aii j 1

• Gauss-Seidel method: similar to Jacobi method, but most recently computed values of
all are used in all computations.
i

k i 1 n
R
 ik 1   ik  i Rik  Qi   Aij x kj 1   Aij x kj  i  1,2,..., n 
Aii j 1 j i

• Successive Overrelaxation (SOR):

k i 1 n
R
 ik 1   ik   i Rik  Qi   Aij x kj 1   Aij x kj  i  1,2,..., n 
Aii j 1 j i

19
Solution of linear equation systems
(coupled equations and their solutions)
• Definition: Most problems in fluid dynamics require solution of
coupled systems of equations, i.e. dominant variable of each
equation occurs in some of the other equations
• Solution approaches:
1. Simultaneous solution: all variables are solved for
simultaneously
2. Sequential Solution: Each equation is solved for
its dominant variable, treating the other variables
as known, and iterating until the solution is
obtained.
• For sequential solution, inner iterations and outer iterations are
necessary

20
Solution of linear equation systems (non-
linear equations and their solutions)
• Definition:
Given the continuous nonlinear function f(x), find the
value x=α, such that f(α)=0 or f(α)=β
• Solution approaches:
1. Newton-like Techniques: faster but need good
estimation of the solution. Seldom used for solving
Navier-Stokes equations.
f  xk 1 
f  x   f  x0   f  x0  x  x0 
' xk  xk 1  '
f  xk 1 
2. Global: guarantee not to diverge but slower, such
as sequential decoupled method

21
Solution of linear equation systems
(convergence criteria and iteration errors)
• Convergence Criteria: Used to determine when
to quite for iteration method
1. Difference between two successive iterates
2. Order drops of the residuals
3. Integral variable vs. iteration history
 ik,1j   (for all i, j)  ik,j1   f i ,kj (for all i, j)
12
n n  ik,j1  n 
  k 1
i, j    k

 
   ik,j1  2

 
i, j i, j i, j  i, j 

• Inner iterations can be stopped when the


residual has fallen by one to two orders of
magnitude.
• Details on how to estimate iterative errors have
been presented in CFD lecture.
22
Methods for unsteady problems
(introduction)
• Unsteady flows have a fourth coordinate direction– time,
which must be discretized.
• Differences with spatial discretization: a force at any space
location may influence the flow anywhere else, forcing at a
given instant will affect the flow only in the future
(parabolic like).
• These methods are very similar to ones applied to initial
value problems for ordinary differential equations.

•The basic problem is to find the solution  a short


time t after the initial point. The solution at t1=t0+ t,
can be used as a new initial condition and the solution
can be advanced to t2=t1+ t , t3=t2+ t, ….etc.

23
Methods for unsteady problems
• Methods for Initial Value Problems in ODEs
1. Two-Level Methods (explicit/implicit Euler)
2. Predictor-Corrector and Multipoint Methods
3. Runge-Kutta Methods
4. Other methods

d  t 
 f  t ,  t     t0    0
• Application to the Generic Transport Equation
1. Explicit methods
2. Implicitdt
methods
3. Other methods

    2 
 u 
t x  x 2
24
Methods for unsteady problems
(examples)
• Methods for Initial Value Problems in ODEs (explicit and
implicit Euler method)
explicit  n 1   n  f  tn ,  n  t  
 n 1   n  f t n 1 ,  n 1 t implicit

• Methods for Initial Value Problems in ODEs (4th order


Runge-Kutta method)
t
*
n
1
2
 n 
f t n , n

2
t  
 1  
** n
f  t 1 ,  1 
 *
n
2 2  n 2 n 2 
 ** 
    tf  t 1 ,  1 
*
n 1
 n

 n 2 n 2 
t     ** 

n 1 n

6 
n
  *

     f t n ,   2 f  t 1 ,  1   2 f  t 1 ,  1   f t n 1 ,  *n 1  
 n 2 n 2   n 2 n 2  
25
Methods for unsteady problems
(examples)
• Application to the Generic Transport Equation
(Explicit Euler methods)

n 1   in1   in1   in1   in1  2 in 


     u
n
  t Assume constant velocity
i i
 2x   x  2

 c n  c n
 n 1
i  
 1  2d  i   d   i 1   d   i 1
n

 2  2

t Time required for a disturbance to be transmitted


d
  x  By diffusion over a distance x
2

ut Courant number, when diffusion negligible,


c Courant number should be smaller than unity to
x
make the scheme stable

26
Methods for unsteady problems
(examples)
• Application to the Generic Transport Equation
(Implicit Euler methods)

n 1   in11   in11   in11   in11  2 in 1 


     u
n
  t Assume constant velocity
i i
 2x   x  2

1  2d   in1   c  d  in11    c  d  in11   in


2   2 

• Advantage: Use of the implicit Euler method allows arbitrarily large time steps to
be taken
• Disadvantage: first order truncation error in time and the need to solve a large
coupled set of equations at each time step.

27
Solution of Navier-Stokes equations

• Special features of Navier-Stokes


Equations
• Choice of Variable Arrangement on the
Grid
• Pressure Poisson equation
• Solution methods for N-S equations

28
Solution of N-S equations (special features)
• Navier-Stokes equations (3D in Cartesian coordinates)
u u u u pˆ   2u  2u  2u 
  u  v  w    2  2  2 
t x y z x  x y z 
v v v v pˆ   2v  2v  2v 
  u  v  w    2  2  2 
t x y z y  x y z 
w w w w pˆ  2w 2w 2w 
  u  v  w     2  2  2 
t x y z z  x y z 

Local Convection Piezometric pressure gradient Viscous terms


acceleration    u    v    w
    0 Continuity equation
t x y z
• Discretization of Convective, pressure and Viscous terms
• Conservation properties: 1. Guaranteeing global energy conservation in a numerical method is
a worthwhile goal, but not easily attained;
2. Incompressible isothermal flows, significance is kinetic energy; 3. heat transfer: thermal
energy>>kinetic energy

29
Solution of N-S equations (choice of variable
arrangement on the grid)
• Colocated arrangement:
1. Store all the variables at the same set of grid points and to use the
same control volume for all variables
2. Advantages: easy to code
3. Disadvantages: pressure-velocity decoupling, approximation for terms
• Staggered Arrangements:
1. Not all variables share the same grid
2. Advantages: (1). Strong coupling between pressure and velocities, (2). Some
terms interpolation in colocated arrangement can be calculated withh
interpolcation.
3. Disadvantages: higher order numerical schemes with order higher than 2nd will
be difficult

Colocated

Staggered
30
Solution of Navier-Stokes equations
(Pressure Poisson equation)
• Why need equation for pressure: 1. N-S
equations lack an independent equation for the
pressure; 2. in incompressible flows, continuity
equation cannot be used directly
• Derivation: obtain Poisson equation by taking the
divergence of the momentum equation and then
simplify using the continuity equation.
• Poisson equation is an elliptic problem, i.e.
pressure values on boundaries must be known to
compute the whole flow field
  p      ui u j  
     
xi  xi  xi  x j 

31
Solution methods for the Navier-Stokes
equations
• Analytical Solution (fully developed laminar pipe flow)
• Vorticity-Stream Function Approach
• The SIMPLE (Semi-Implicit Method for pressure-Linked Equations)
Algorithm:
1. Guess the pressure field p*
2. Solve the momentum equations to obtain u*,v*,w*
3. Solve the p’ equation (The pressure-correction equation)
4. p=p*+p’
5. Calculate u, v, w from their starred values using the
velocity-correction equations
6. Solve the discretization equation for other variables, such as
temperature, concentration, and turbulence quantities.
7. Treat the corrected pressure p as a new guessed pressure p*,
return to step 2, and repeat the whole procedure until a
converged solution is obtained.

32
Example (lid-driven cavity)
• The driven cavity problem is
a classical problem that has u=UTOP, v=0 UTOP
wall boundaries surrounding
the entire computational
region.
• Incompressible viscous flow
in the cavity is driven by the
uniform translation of the u=v=0 u=v=0
moving upper lid.
• the vorticity-stream function y
method is used to solve the
o x
driven cavity problem.
u=v=0

33
Example (lid-driven cavity, governing
equations)
u v
 0
x y 
u
v u y
u
u
u
v
u p   2u  2u 
    2  2 
  
t x y x x y 
 x y 
 v
  2v  2v 
x
v v v p
 u  v     2  2 
t x y y  x y 

   1   2   2   2  2
u v   2  2   2  
t x y Re l  x y  x 2
y

 p  p
2 2   2   
2
  2 2

 2  2 2  2      Ul
Re l 
x y  x  y   xy 
2
 
    u    v 
u v  
x y x y
34
Example (lid-driven cavity,
boundary conditions)
  0 on all walls
 2  
 
2
1
 w1   w  n w   n  w  o  n 
3

n 2 n 2

2 i , NJ  y  i , NJ 1 
The top wall
2 w1  w  The other
 i , NJ  w 
 y  2  n  2 Three walls

p 1  ps 1, w  ps 1, w 1   3 s , w  4 s , w1   s , w 2 


w  w   
s Re l n 2s Re l  2n 

For wall pressures, using the tangential momentum


equation to the fluid adjacent to the wall surface, get:
* s is measured along the wall surface and n is normal to it
* Pressure at the lower left corner of the cavity is assigned 1.0
35
Example (lid-driven cavity, discretization
methods)
 in, j 1   in, j uin1, j in1, j  uin1, j in1, j vin, j 1 in, j 1  vin, j 1 in, j 1
 
t 2x 2y
1   in1, j  2 in, j   in1, j  in, j 1  2 in, j   in, j 1 
   
1st order upwind for Re l  ( x ) 2
( y ) 2 
 
time derivative
 in1, j  2 in, j   in1, j  in, j 1  2 in, j   in, j 1
   in, j
(x) 2 (y ) 2

pin1, j  2 pin, j  pin1, j pin, j 1  2 pin, j  pin, j 1



(x) 2 (y ) 2
  n  2 n   n   in, j 1  2 in, j   in, j 1    in1, j 1   in1, j 1   in1, j 1   in1, j 1 
2

 2    
i 1, j i, j i 1, j

 ( x) 2 
 (y ) 2  
  4xy 
 
 

2nd order central difference scheme used for all spatial derivatives
36
Example (lid-driven cavity,
solution procedure)
1. Specify the geometry and fluid properties
2. Specify initial conditions (e.g. u=v=  =  =0).
3. Specify boundary conditions
4. Determine t
Solve the vorticity transport equation for 
n 1
5.
6. Solve stream function equation for  n 1

7. Solve for un+1 and vn+1


Solve the boundary conditions for  on the walls
n 1
8.
9. Continue marching to time of interest, or until the steady state
is reached.

37
Example (lid-driven cavity, residuals)
i  NI , j  NJ
i  NI , j  NJ 1
1
  in, j 1   in, j  110 8 and NI  NJ
  in, j 1   in, j  110 8
NI  NJ i 1, j 1
i 1, j 1

38
Example (lid-driven cavity, sample results) 1
1 27
29 27 Level psi
25 23 23
21
29
31 0.0018 0.9
0.9 19

29
29 -0.0009
17

17
14
0.8

23 21
19
15 27 -0.0064
0.8 13 1 25 -0.0119
2 1 23

13 11
1 7 0.7
0.7 23 -0.0174
27
25

9
9
5
21 -0.0228 0.6

25 27
0.6

3
19 -0.0283
y 0.5
29

19

7
17 -0.0338
y 0.5

29
17

17
5
15 -0.0393 0.4

23
15
21 19
3
15

13 -0.0448
0.4 0.3
113

13
2 3 25

11 -0.0502
1

7
0.3 9 9 -0.0557
27

9 0.2

11
21

13 7 -0.0612

27
0.2 28 15 5 -0.0667 0.1
17

25
0.1 25 21 19 3 -0.0721
0
23

29
1 -0.0776 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1
27
0 29 x
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x 1
14
9
11 13
15 8
4
Level zeta
16
19 17
1 19 17
25 0.9

27 25
Level p 21 29 11.2711
0.9 21 27 8.3232
29 1.1905
0.8

19
27 1.1754 25 5.3753
5

0.8 23 2.4273
25 1.1604 0.7
23 1.1454 21 -0.5206
0.7 0.6
21 1.1303 19 -3.4686

23
21
21
0.6 17 -6.4165
19 1.1153 y 0.5

29 27
25
17 1.1003 15 -9.3644
y 0.5 13 -12.3124
15 1.0852 0.4
11 -15.2603
13 1.0702
0.4 0.3 9 -18.2082
11 1.0552
7 -21.1562
0.3 9 1.0401
0.2 21 5 -24.1041
7 1.0251

24
21 3 -27.0521
0.2 0.1
21

5 1.0101
1 -30.0000
3 0.9950 23
0.1 0 25
1 0.9800
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0 x
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x 39
Some good books
1. J. H. Ferziger, M. Peric, “ Computational Methods for Fluid
Dynamics”, 3rd edition, Springer, 2002.
2. Patric J. Roache, “Verification and Validation in
Computational Science and Engineering”, Hermosa
publishers, 1998
3. Frank, M. White, “Viscous Fluid Flow”, McGraw-Hill Inc.,
2004

40

You might also like