An Introduction to My CFD Code
(2D Version)
Jiannan(Jay) Tan
Highlights
• 1. Based on MATLAB.
• 2. Aiming on 2D, Steady, Laminar, viscous
flow.
• 3. Using unstructured, arbitrary-shape,
collocated grids.
• 4. Navier-Stokes equations are solved and
velocity and pressure are calculated.
• 5. Results are compared with those results
from FLUENT.
• 6. A few benchmarking cases are tested.
How does the code work
2D Code
Part 1: Mesh reader Part 2: N-S Equation Solver
Files in certain format
that contains the mesh
information. For
example, the FLUENT
*.msh file.
Velocity filed U, V and
Pressure P.
Part 3: Post-processing
sub-programs
Visualized vector plots
and contours.
The Data structure of Mesh
U,V,P
B(xb, yb)
A(xa, ya)
C(xc, yc)
4.Face normal
Cell ID = P
1. Point ID (x, y)
2. Face ID (A, B, P, nb, property )
3. Cell ID (3, face1, face2, face3)
3 elemental data groups
which decide the whole
mesh:
1.Flow flux
3.Face area
6.Volume
7.Presssure gradient
2.Face velocity components
5.Face velocity components’ gradient
7 important variables:
The N-S Euqation Solver
( ) ( ( ))U P
t
ρ µ
∂Φ
+ ∇× Φ = ∇× ∇Φ −∇
∂
uv
( ) 0Uρ∇× =
uv
Momentum
equation:
Continuity
equation:
1. Discretization: Gauss Theorem
2. Face Mass Flux and Face Scalar
3. SIMPLE Method
4. Least Square Method
5. Pressure-Correction Equation
6. Convergence Criteria
Steady flow
Methodology-SIMPLE Method
Initial guess of u, v and p
Solving the dicretized momentum
equations and get interim velocity u, v
Calculating the face mass flux using
momentum interpolation method
Solving the discretized continuity
equation and geting the pressure
correction p’
Correcting the cell-central pressure
and velocity
Convergence reached?
Post-processing
Resuming
iteration with
new u, v and p
Discretizing Momentum Equations
Using Gauss Theorem
ˆˆ( ) ( ( ))U n ds n ds P Vρ µ ∆Φ × × = ∇× ∇Φ × × −∇ ×∫ ∫
uv
( ) ( ( ))U dv dv P dvρ µ∇× Φ × = ∇× ∇Φ × − ∇ ×∫ ∫ ∫
uv
( ) ( ( ))U Pρ µ∇× Φ = ∇× ∇Φ −∇
uv
. .
( ) [ ( ) ]n d E P Cross
nb face nb face
F D D P V∆×Φ = × Φ − Φ + −∇ ×∑ ∑
1
.
( ) [ ] ( )n n n
p p e e p
nb face
a a S P V −
∆×Φ = ×Φ + − ∇ ×∑
Interim velocity u, v
MIM
Pressure-Correcton Equation
.
.
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
u
p e e nb nb e u e P E e
nb face
v
p e e nb nb e v e P E e
nb face
a u a u S P P y
a v a v S P P x
∆
∆
× = × + + − ×
× = × + − − ×
∑
∑
.
.
( ) ( )
( )
( ) ( )
( ) ( )
( )
( ) ( )
nb nb e u e
nb face e
e P Eu u
p e p e
nb nb e v e
nb face e
e P Ev v
p e p e
a u S
y
u P P
a a
a v S
x
v P P
a a
∆
∆
× +
= + − ×
× +
= − − ×
∑
∑
' ' '
' ' '
( )
( )
( )
( )
e
e P E u
p e
e
e P e v
p e
y
u P P
a
x
v P P
a
∆
∆
= − ×
= − − ×
* * ' '
1
[( ) ( ) ( ) ( ) ] 0
Nb
e e e e
e
u y v x u y v xρ ρ ρ ρ∆ ∆ ∆ ∆
=
− + − =∑
Continuity Equation,
assume u=u’+u*
2 2
' ' ' '
1
[( )( ) ( ) ( ) ] 0
Nb
P E e eu v
e P P
y x
P P u y v x
a a
ρ ρ
ρ ρ∆ ∆
∆ ∆
=
+ − + − =∑
' '
1
( ) . . . . .
Nb
P P E E
e
a P a P Mass imbalance in to cell P
=
= +∑
Momentum Interpolation Method
1. Used after interim velocity is achieved after solving
momentum equations.
2. Applied in order to eliminate oscillating pressure field.
Sometimes called ‘pressure smooth term’.
3. Used to calculate mass imbalance into each cell in this
code.
Least Square Method
Backup slide: A failed try using LSM
Covergence Criteria
• The ratio of Maximum imbalance rate into a
single cell over the inlet mass flow rate
Validation & Verification
1. Straight pipe flow
2. Jet flow
3. Flow around a cube
4. Z-pipe flow
Test Case 1: Flow in a straight channel
Case 1: FLUENT solution
U(max)=1.47
Test Case 1: Flow in a straight channel
U(max)=1.46
Test Case 2: Sudden Expansion-Jet
Flow
Case 2: FLUENT solution: Velocity vector
U(max)=1.33
Case 2: FLUENT solution: Vortex pattern
Test Case 2: My code solution
U(max)=1.34
Case 2: Comparison of vortex length
Test case 3: Flow in a Z-pipe
Case 3: FLUENT solution: Velocity vector
U(max)=1.44
Case 3: FLUENT solution: Vortex pattern
Test case 3: My code solution
U(max)=1.44
Case 3: Comparison of vortex length
Test case 4: Flow past a square cylinder
Case 4: FLUENT solution: Velocity vector
U(max)=1.43
Case 4: FLUENT solution: Vortex pattern
Test case 4: My code solution
U(max)=1.41
Case 4: Comparison of vortex length
Case 4: Comparison of Cd
FLUENT My Code
Pressure Force 1.275 1.299
Viscous Force 0.601 0.541
Total Force 1.876 1.840
Cd 3.752 3.680
Density =1, viscosity =0.05, Frontal area =1, U=1
Backup slide: Case 4 FLUENT report
Futher Development
• 1. Optimization
• 2. Different methods to dicretized the momentum euqation.
• 3. Different methods to calculate the pressure gradient.
• 4. Different methods to do the iteration.
• 5. Parallel computation.
• 6. Mesh generator.
• 7. More advanced models.
• 8. Advanced post-processor.
• 9. Commercialize the code, sell it to MATLAB :-D

2D CFD Code Based on MATLAB- As Good As FLUENT!

  • 1.
    An Introduction toMy CFD Code (2D Version) Jiannan(Jay) Tan
  • 2.
    Highlights • 1. Basedon MATLAB. • 2. Aiming on 2D, Steady, Laminar, viscous flow. • 3. Using unstructured, arbitrary-shape, collocated grids. • 4. Navier-Stokes equations are solved and velocity and pressure are calculated. • 5. Results are compared with those results from FLUENT. • 6. A few benchmarking cases are tested.
  • 3.
    How does thecode work 2D Code Part 1: Mesh reader Part 2: N-S Equation Solver Files in certain format that contains the mesh information. For example, the FLUENT *.msh file. Velocity filed U, V and Pressure P. Part 3: Post-processing sub-programs Visualized vector plots and contours.
  • 4.
    The Data structureof Mesh U,V,P B(xb, yb) A(xa, ya) C(xc, yc) 4.Face normal Cell ID = P 1. Point ID (x, y) 2. Face ID (A, B, P, nb, property ) 3. Cell ID (3, face1, face2, face3) 3 elemental data groups which decide the whole mesh: 1.Flow flux 3.Face area 6.Volume 7.Presssure gradient 2.Face velocity components 5.Face velocity components’ gradient 7 important variables:
  • 5.
    The N-S EuqationSolver ( ) ( ( ))U P t ρ µ ∂Φ + ∇× Φ = ∇× ∇Φ −∇ ∂ uv ( ) 0Uρ∇× = uv Momentum equation: Continuity equation: 1. Discretization: Gauss Theorem 2. Face Mass Flux and Face Scalar 3. SIMPLE Method 4. Least Square Method 5. Pressure-Correction Equation 6. Convergence Criteria Steady flow
  • 6.
    Methodology-SIMPLE Method Initial guessof u, v and p Solving the dicretized momentum equations and get interim velocity u, v Calculating the face mass flux using momentum interpolation method Solving the discretized continuity equation and geting the pressure correction p’ Correcting the cell-central pressure and velocity Convergence reached? Post-processing Resuming iteration with new u, v and p
  • 7.
    Discretizing Momentum Equations UsingGauss Theorem ˆˆ( ) ( ( ))U n ds n ds P Vρ µ ∆Φ × × = ∇× ∇Φ × × −∇ ×∫ ∫ uv ( ) ( ( ))U dv dv P dvρ µ∇× Φ × = ∇× ∇Φ × − ∇ ×∫ ∫ ∫ uv ( ) ( ( ))U Pρ µ∇× Φ = ∇× ∇Φ −∇ uv . . ( ) [ ( ) ]n d E P Cross nb face nb face F D D P V∆×Φ = × Φ − Φ + −∇ ×∑ ∑ 1 . ( ) [ ] ( )n n n p p e e p nb face a a S P V − ∆×Φ = ×Φ + − ∇ ×∑ Interim velocity u, v MIM
  • 8.
    Pressure-Correcton Equation . . ( )( ) ( ) ( ) ( ) ( ) ( ) ( ) u p e e nb nb e u e P E e nb face v p e e nb nb e v e P E e nb face a u a u S P P y a v a v S P P x ∆ ∆ × = × + + − × × = × + − − × ∑ ∑ . . ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) nb nb e u e nb face e e P Eu u p e p e nb nb e v e nb face e e P Ev v p e p e a u S y u P P a a a v S x v P P a a ∆ ∆ × + = + − × × + = − − × ∑ ∑ ' ' ' ' ' ' ( ) ( ) ( ) ( ) e e P E u p e e e P e v p e y u P P a x v P P a ∆ ∆ = − × = − − × * * ' ' 1 [( ) ( ) ( ) ( ) ] 0 Nb e e e e e u y v x u y v xρ ρ ρ ρ∆ ∆ ∆ ∆ = − + − =∑ Continuity Equation, assume u=u’+u* 2 2 ' ' ' ' 1 [( )( ) ( ) ( ) ] 0 Nb P E e eu v e P P y x P P u y v x a a ρ ρ ρ ρ∆ ∆ ∆ ∆ = + − + − =∑ ' ' 1 ( ) . . . . . Nb P P E E e a P a P Mass imbalance in to cell P = = +∑
  • 9.
    Momentum Interpolation Method 1.Used after interim velocity is achieved after solving momentum equations. 2. Applied in order to eliminate oscillating pressure field. Sometimes called ‘pressure smooth term’. 3. Used to calculate mass imbalance into each cell in this code.
  • 10.
  • 11.
    Backup slide: Afailed try using LSM
  • 12.
    Covergence Criteria • Theratio of Maximum imbalance rate into a single cell over the inlet mass flow rate
  • 13.
    Validation & Verification 1.Straight pipe flow 2. Jet flow 3. Flow around a cube 4. Z-pipe flow
  • 14.
    Test Case 1:Flow in a straight channel
  • 15.
    Case 1: FLUENTsolution U(max)=1.47
  • 16.
    Test Case 1:Flow in a straight channel U(max)=1.46
  • 17.
    Test Case 2:Sudden Expansion-Jet Flow
  • 18.
    Case 2: FLUENTsolution: Velocity vector U(max)=1.33
  • 19.
    Case 2: FLUENTsolution: Vortex pattern
  • 20.
    Test Case 2:My code solution U(max)=1.34
  • 21.
    Case 2: Comparisonof vortex length
  • 22.
    Test case 3:Flow in a Z-pipe
  • 23.
    Case 3: FLUENTsolution: Velocity vector U(max)=1.44
  • 24.
    Case 3: FLUENTsolution: Vortex pattern
  • 25.
    Test case 3:My code solution U(max)=1.44
  • 26.
    Case 3: Comparisonof vortex length
  • 27.
    Test case 4:Flow past a square cylinder
  • 28.
    Case 4: FLUENTsolution: Velocity vector U(max)=1.43
  • 29.
    Case 4: FLUENTsolution: Vortex pattern
  • 30.
    Test case 4:My code solution U(max)=1.41
  • 31.
    Case 4: Comparisonof vortex length
  • 32.
    Case 4: Comparisonof Cd FLUENT My Code Pressure Force 1.275 1.299 Viscous Force 0.601 0.541 Total Force 1.876 1.840 Cd 3.752 3.680 Density =1, viscosity =0.05, Frontal area =1, U=1
  • 33.
    Backup slide: Case4 FLUENT report
  • 34.
    Futher Development • 1.Optimization • 2. Different methods to dicretized the momentum euqation. • 3. Different methods to calculate the pressure gradient. • 4. Different methods to do the iteration. • 5. Parallel computation. • 6. Mesh generator. • 7. More advanced models. • 8. Advanced post-processor. • 9. Commercialize the code, sell it to MATLAB :-D