Professional Documents
Culture Documents
OE5450
Numerical Techniques in Ocean Hydrodynamics
Jan - May 2022
Assignment 7:
Simulation of Lid Driven Cavity Problem Using
SIMPLE Algorithm
Author:
Lt Cdr Saurabh Tripathi
OE21D200
Instructor:
Dr. K. Murali
1 Problem Statement:
Benchmark Standard Lid Driven Cavity Problem Statement is as follows:
2 SIMPLE Algorithm
SIMPLE Algorithm is used to simulate the LDC problem in C++ and MATLAB both to get the benchmark
results.
Page 1
Assignment-7 Numerical Techniques in Ocean Hydrodynamics
Page 2
Assignment-7 Numerical Techniques in Ocean Hydrodynamics
4 C Code
4.1 LDC SIMPLE
1 #i n c l u d e <s t d i o . h>
2 #i n c l u d e < s t d l i b . h>
3 #i n c l u d e <time . h>
4 #i n c l u d e <math . h>
5 #d e f i n e g r i d 50
6
7 i n t main ( v o i d )
8 {
9 d o u b l e u [ g r i d ] [ g r i d +1] , un [ g r i d ] [ g r i d +1] , uc [ g r i d ] [ g r i d ] ;
10 d o u b l e v [ g r i d + 1 ] [ g r i d ] , vn [ g r i d + 1 ] [ g r i d ] , vc [ g r i d ] [ g r i d ] ;
11 d o u b l e p [ g r i d + 1 ] [ g r i d +1] , pn [ g r i d + 1 ] [ g r i d +1] , pc [ g r i d ] [ g r i d ] ;
12 d o u b l e m[ g r i d + 1 ] [ g r i d + 1 ] ;
13 int i , j , step ;
14 d o u b l e dx , dy , dt , tau , d e l t a , e r r o r , Re ;
15 s t e p =1;
16 dx = 1 . 0 / ( g r i d −1) ;
17 dy = 1 . 0 / ( g r i d −1) ;
18 dt = 0 . 0 0 1 ;
19 delta = 4.5;
20 error = 1.0;
21 Re = 1 0 . 0 ;
22
23 // I n i t i a l i z i n g u
24 f o r ( i =0; i <=(g r i d −1) ; i ++)
25 {
26 f o r ( j =0; j <=(g r i d ) ; j ++)
27 {
28 u[ i ][ j ] = 0.0;
29 u [ i ] [ grid ] = 1.0;
30 u [ i ] [ g r i d −1] = 1 . 0 ;
31 }
32 }
33
34 // I n i t i a l i z i n g v
35 f o r ( i =0; i <=(g r i d ) ; i ++)
36 {
37 f o r ( j =0; j <=(g r i d −1) ; j ++)
38 {
39 v[ i ][ j ] = 0.0;
40 }
41 }
42
43 // I n i t i a l i z i n g p
44 f o r ( i =0; i <=(g r i d ) ; i ++)
45 {
46 f o r ( j =0; j <=(g r i d ) ; j ++)
47 {
48 p[ i ][ j ] = 1.0;
49 }
50 }
51
Page 3
Assignment-7 Numerical Techniques in Ocean Hydrodynamics
66 // Boundary c o n d i t i o n s
67 f o r ( j =1; j <=(g r i d −1) ; j ++)
68 {
69 un [ 0 ] [ j ] = 0 . 0 ;
70 un [ g r i d − 1 ] [ j ] = 0 . 0 ;
71 }
72
79
80 // S o l v e s v−momentum
81 f o r ( i =1; i <=(g r i d −1) ; i ++)
82 {
83 f o r ( j =1; j <=(g r i d −2) ; j ++)
84 {
85 vn [ i ] [ j ] = v [ i ] [ j ] − dt ∗ ( 0 . 2 5 ∗ ( ( u [ i ] [ j ]+u [ i ] [ j +1]) ∗ ( v [ i ] [ j ]+v
[ i + 1 ] [ j ] ) −(u [ i − 1 ] [ j ]+u [ i − 1 ] [ j +1]) ∗ ( v [ i ] [ j ]+v [ i − 1 ] [ j ] ) ) /dx
86 +(v [ i ] [ j +1]∗ v [ i ] [ j +1]−v [ i ] [ j −1]∗ v [ i ] [ j −1]) / 2 . 0 / dy )
87 − dt /dy ∗ ( p [ i ] [ j +1]−p [ i ] [ j ] )
88 + dt ∗ 1 . 0 / Re ∗ ( ( v [ i + 1 ] [ j ] −2.0∗ v [ i ] [ j ]+v [ i − 1 ] [
j ] ) /dx/dx+(v [ i ] [ j +1] −2.0∗ v [ i ] [ j ]+v [ i ] [ j
−1]) /dy/dy ) ;
89 }
90 }
91
92 // Boundary c o n d i t i o n s
93 f o r ( j =1; j <=(g r i d −2) ; j ++)
94 {
95 vn [ 0 ] [ j ] = −vn [ 1 ] [ j ] ;
96 vn [ g r i d ] [ j ] = −vn [ g r i d − 1 ] [ j ] ;
97 }
98
105 // S o l v e s c o n t i n u i t y e q u a t i o n
Page 4
Assignment-7 Numerical Techniques in Ocean Hydrodynamics
114
115 // Boundary c o n d i t i o n s
116 f o r ( i =1; i <=(g r i d −1) ; i ++)
117 {
118 pn [ i ] [ 0 ] = pn [ i ] [ 1 ] ;
119 pn [ i ] [ g r i d ] = pn [ i ] [ g r i d − 1 ] ;
120 }
121
128 // D i s p l a y i n g e r r o r
129 error = 0.0;
130
145
146 // I t e r a t i n g u
147 f o r ( i =0; i <=(g r i d −1) ; i ++)
148 {
149 f o r ( j =0; j <=(g r i d ) ; j ++)
150 {
151 u [ i ] [ j ] = un [ i ] [ j ] ;
152 }
153 }
154
155 // I t e r a t i n g v
156 f o r ( i =0; i <=(g r i d ) ; i ++)
157 {
158 f o r ( j =0; j <=(g r i d −1) ; j ++)
159 {
160 v [ i ] [ j ] = vn [ i ] [ j ] ;
161 }
Page 5
Assignment-7 Numerical Techniques in Ocean Hydrodynamics
162 }
163
164 // I t e r a t i n g p
165 f o r ( i =0; i <=(g r i d ) ; i ++)
166 {
167 f o r ( j =0; j <=(g r i d ) ; j ++)
168 {
169 p [ i ] [ j ] = pn [ i ] [ j ] ;
170 }
171 }
172
175 }
176
187
188
195 i f ( f o u t 2 == NULL )
196 {
197 p r i n t f ( "\nERROR when o p e n i n g f i l e \n" ) ;
198 f c l o s e ( fout2 ) ;
199 }
200
201 else
202 {
203 f p r i n t f ( f o u t 2 , "VARIABLES=\"X\ " , \ "Y\ " , \ "U\ " , \ "V\ " , \ "P\"\n" ) ;
204 f p r i n t f ( f o u t 2 , "ZONE F=POINT\n" ) ;
205 f p r i n t f ( f o u t 2 , " I=%d , J=%d\n" , g r i d , g r i d ) ;
206
215 f p r i n t f ( f o u t 2 , " %5.8 l f \ t %5.8 l f \ t %5.8 l f \ t %5.8 l f \ t %5.8 l f \n" , xpos , ypos ,
uc [ i ] [ j ] , vc [ i ] [ j ] , pc [ i ] [ j ] ) ;
216 }
217 }
218 }
Page 6
Assignment-7 Numerical Techniques in Ocean Hydrodynamics
219
220 f c l o s e ( fout2 ) ;
221
Page 7