The SIMPLE Algorithm For Pressure-Velocity Coupling: ME 448/548 Notes
The SIMPLE Algorithm For Pressure-Velocity Coupling: ME 448/548 Notes
ME 448/548 SIMPLE
Overview
CFD modelling involves these steps
1. Define the geometry of the fluid volume
2. Locate boundary regions and assign values to boundary condition parameters
3. Specify fluid physics (e.g., buoyancy, turbulence, radiation) and thermophysical
properties
4. Create the mesh
5. Define parameters that control the solution
6. Solve the flow model
7. View the results
Commercial CFD packages have preprocessors (graphical user interfaces) for setting up
the model and viewing the results. The order of preprocessing steps may be different for
different CFD packages.
Users control step 6 by specifying parameters the affect how the solver updates the
velocity, pressure and other scalar fields. That control is indirect, at best.
ME 448/548 SIMPLE
page 1
Staggered Mesh
Basic Discretization
Velocity and Pressure Corrections
Algorithm Summary
Convergence
The staggered mesh is not absolutely required, but it is the simplest strategy for
incompressible flow calculations.
Many codes use non-staggered or unstructured meshes. We only use a staggered mesh
here to explain pressure-velocity coupling.
Reference: Ferziger and Peric, ,7.5.1, pp. 188196
Tu, Yeoh, and Liu, 4.3.3
ME 448/548 SIMPLE
page 2
y
...
Ly
3
2
j=1
i=1
x
3 ...
nx
Each cell has the same number of neighbors. The connectivity is regular and uniform.
ME 448/548 SIMPLE
page 3
Unstructured Meshes: Cells and nodes are not arranged in rows and columns.
ME 448/548 SIMPLE
page 4
ME 448/548 SIMPLE
page 5
Staggered Grid
Main control volume
N
n
Main characteristics
uw P
s
N
W
ue
E
P
s
N
uw P
E
W
S
ME 448/548 SIMPLE
page 6
pi1,j pi,j
(u)
+ bo
xw
pi,j1 pi,j
(v)
+ bo
ys
ui+1,j ui,j
vi,j+1 vi,j
+
=0
x
y
where b(u)
and b(v)
o
o are source terms due to non-uniform viscosity, gravity, and other
effects.
These equations are nonlinear. For example, if the central difference scheme is used,
u
page 7
bou
bou
page 8
(u)
(u)
u=b
(v)
(v)
v=b
where the momentum source terms consist of pressure terms and other terms due to
velocity gradients and non-uniform viscosity.
(u)
= bo bp
(v)
= bo bp
(u)
(u)
(v)
(v)
(v)
b(u)
p and bp are contributions due to the frozen pressure field (p ).
ME 448/548 SIMPLE
page 9
A(u) is the coefficient matrix, and b(u) is the source term (vector) for the u equation
when v and p are frozen.
A(v) is the coefficient matrix, and b(v) is the source term (vector) for the v equation
when u and p are frozen.
Momentum equations are nonlinear, so A(u) and A(v) depend on u and v .
Nonlinearity requires iterative solution: A(u) and A(v) are updated with new values of
u and v , and the systems are solved again.
What about the continuity equation?
Where is the equation for pressure?
ME 448/548 SIMPLE
page 10
(u)
(v)
(u)
= bP + bo
(u)
(u)
du(pW pP ) + . . . + bo
(v)
= bP + bo
(v)
(v)
dv (pS pP ) + . . . + bo
(u)
where
(v)
where
u=b
v=b
(u)
(v)
The du and dv are coefficients that depend on the geometry of of the control volume.
Note: The symbol is meant to convey the basic features of the terms, and allows a
degree of notational abuse. To make these expressions more precise, read the
symbol as contains terms like.
ME 448/548 SIMPLE
page 11
(u)
(u)
N
n
(v)
uw P
s
u=b
(v)
v=b
ue
y
E
In general these new u and v fields will not satisfy the continuity equation for each cell
ME 448/548 SIMPLE
page 12
uw = u
w + uw
0
vs = v
s + vs
(1)
(2)
uw and vs are the velocity components that satisfy the continuity equation.
u
w and v
s are the velocity components obtained by satisfying the momentum
equations.
u0w and vs0 are the corrections to the velocity components needed to satisfy the
continuity equation.
Equations (1) and (2) define u0w , and vs0 values for each cell in the domain. The u
w and
v
s fields are obtained by solving the momentum equations. We need to develop another
procedure for computing the u0w and vs0 fields. Ultimately the u0w and vs0 fields are
obtained by requiring each cell to satisfy the continuity equation.
ME 448/548 SIMPLE
page 13
Assume that the velocity corrections can be derived from suitable pressure corrections
0
pP = pP + pP
(3)
pP is the desired pressure at the cell center, i.e., the one that brings the velocity field
into balance so that continuity equation is satisfied for each cell.
pP is the current guess at the pressure at the cell center.
p0P is the change in pP needed to satisfy the continuity equation.
ME 448/548 SIMPLE
page 14
uw cw (pW pP )
0
(4)
vs cs(pS pP )
(5)
where cw and cs are coefficients that depend on terms from the momentum equation
(weve skipped a couple of steps here).
ME 448/548 SIMPLE
page 15
A
where
(p0 )
(p0 ) 0
(p0 )
p =b
u
w y u
ey + v
sx v
nx
In words: The source term for the p0 field is the local error in the continuity equation.
ME 448/548 SIMPLE
page 16
(u)
(u)
(v)
u=b
(v)
v=b
(?)
(p0 ) 0
(p0 )
p =b
(??)
u=u
+u
v=v
+v
p = p + p
u
and v
are the solutions to Equations (?) obtained when the previous field variables (u,
v , and p) are used to compute A(u), b(u), A(v) and b(v). p is the pressure field from the
previous global iteration.
0
p0 is the solution to Equation (??) when b(p ) is computed from the newly obtained u
and v
.
ME 448/548 SIMPLE
page 17
SIMPLE Algorithm
Initialize the velocity and pressure fields, then iterate until convergence:
1. Compute A(u) and b(u), and solve A(u)u = b(u) to obtain u
, a tentative guess at the
x-direction velocity field.
2. Compute A(v) and b(v), and solve A(v)v = b(v) to obtain v
, a tentative guess at the
(v)
(v)
y -direction velocity field. Note that A and b use the most recently available u
3. Compute A(p ) and b(p ), and solve A(p )p0 = b(p ) to obtain the pressure correction
field p0.
4. Correct the velocities and pressures.
0
pP pP + pP
uw u
w + uw
vs v
s + vs
page 18
(u)
(u)
u=b
(u)
(u)
(v)
(v)
(v)
r =b A u
If r (u) is small, then the old u is a good approximation to the system of equations defined
by the newly updated coefficients in A(u) and b(u).
Similarly,
r =b A v
is a measure of how well the old v satisfies the linearized equations based on the newly
updated coefficients in A(v) and b(v)
ME 448/548 SIMPLE
page 19
krv k
v =
krv,ref k
The values of kru,ref k and krv,ref k are chosen so that u 1 and v 1 on the first
iteration, or close to the first iteration.
ME 448/548 SIMPLE
page 20
If b(p ) is small, then the current guess at the velocity field comes close to satisfying the
continuity equation before the pressure and velocity corrections are applied.
To check convergence of the continuity equation, monitor c
(p0 )
c =
kb
kb(p0)k,ref
ME 448/548 SIMPLE
page 21
Monitoring Residuals
Convergence history for a well-behaved, laminar flow simulation with STAR-CCM+:
Residuals
1
0.1
0.01
Residual
Continuity
Xmomentum
Ymomentum
Zmomentum
0.001
1E4
1E5
0
100
200
300
400
500
Iteration
ME 448/548 SIMPLE
page 22
Summary
ME 448/548 SIMPLE
page 23
ME 448/548 SIMPLE
page 24
Recommendations
References
[1] Joel H. Ferziger and Milovan Peric. Computational Methods for Fluid Dynamics. Springer-Verlag, Berlin, third edition, 2001.
[2] S.V. Patankar. Numerical Heat Transfer and Fluid Flow. Hemisphere, Washington D.C., 1980.
ME 448/548 SIMPLE
page 25