-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSubsonic.py
141 lines (126 loc) · 4.88 KB
/
Subsonic.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
from solver import FVMG
Solution = FVMG('subsonic','W-4',7,223,0.5,10)
M_ex = Solution.M_ex
M_num = Solution.Mach
p_ex = Solution.p_ex
p_num = Solution.pres
X = [Solution.x,Solution.x]
Y = [M_ex,M_num]
labels = ['exact','numerical']
colors = ['b','r']
lines = ['-','+']
axis = ['x[m]','Mach number']
Solution.plotting(X,Y,axis,labels,colors,lines, 'Subsonic problem',
logscale = False,location = 'lower center',lw= 0.75)
Y = [p_ex,p_num]
axis = ['x[m]','Pressure']
Solution.plotting(X,Y,axis,labels,colors,lines, 'Subsonic problem',
logscale = False,location = 'upper center',lw= 0.75)
##"""
##Subsonic channel flow
##First run: Replicate figure 5.18 book
##"""
### Multistep solution with Courant = 3 (here the multigrid case is also run but it is omitted)
##case1 = FVMG('subsonic','W-4',3,103,0.6,600)
### Multistep solution with Courant = 7 (here the multigrid case is also run but it is omitted)
##case2 = FVMG('subsonic','W-4',7,103,0.6,420)
### Multigrid solution with Courant = 7 (here the multistep case is also run but it is omitted)
##case3 = FVMG('subsonic','W-4',7,103,0.6,100)
##res1 = case1.residuals2
##res2 = case2.residuals2
##res3 = case3.residuals2
##X = [case1.x,case2.x,case3.x]
##Y = [res1,res2,res3]
##labels = ['Multistep - C = 3','Multistep - C = 7', 'Multigrid W-cycle \n 4 grid, C = 7']
##colors = ['b','r','g']
##lines = ['-','-','-']
##axis = ['Iterations','L2 residual']
##case1.plotting(X,Y,axis,labels,colors,lines, 'Subsonic: beta = 0.6, N = 103',
## logscale = True,location = 'upper right',lw= 1)
##
##
##"""
##Subsonic channel flow
##Second run: Effect of Multigrid cycle
##Courant number fixed: Courant = 4
##Number of cells fixed: N = 223
##"""
##
### Multigrid solution W-cycle 2-3-4
##case1 = FVMG('subsonic','W-4',4,223,0.6,10)
### Multigrid solution W-cycle 3-4-5
##case2 = FVMG('subsonic','W-5',4,223,0.6,10)
### Multigrid solution W-cycle 4-5-6
##case3 = FVMG('subsonic','W-6',4,223,0.6,10)
### Multigrid solution V-cycle 4 grid
##case4 = FVMG('subsonic','V-4',4,223,0.6,10)
### Multigrid solution V-cycle 5 grid
##case5 = FVMG('subsonic','V-5',4,223,0.6,10)
### Multigrid solution V-cycle 6 grid
##case6 = FVMG('subsonic','V-6',4,223,0.6,10)
##res1 = case1.residuals2
##res2 = case2.residuals2
##res3 = case3.residuals2
##res4 = case4.residuals2
##res5 = case5.residuals2
##res6 = case6.residuals2
##X = [case1.x,case2.x,case3.x,case4.x,case5.x,case6.x]
##Y = [res1,res2,res3,res4,res5,res6]
##labels = ['W-cycle 2-3-4','W-cycle 3-4-5', 'W-cycle 4-5-6',
## 'V-cycle 4 grid','V-cycle 5 grid', 'V-cycle 6 grid']
##colors = ['b','r','g','b','r','g']
##lines = ['-','-','-',':',':',':']
##axis = ['Iterations','L2 residual']
##case1.plotting(X,Y,axis,labels,colors,lines, 'Subsonic Multigrid W-cycle VS V-cycle \n C = 4, beta = 0.6, N = 223',
## logscale = True,location = 'upper right',lw= 0.75)
##
##
##"""
##Subsonic channel flow
##Third run: Effect of Courant number
##Number of cells fixed, N = 223
##Multigrid cycles fixed: W-cycle 2-3-4 & 3-4-5
##
##"""
##case1 = FVMG('subsonic','W-4',1,223,0.6,10)
##case2 = FVMG('subsonic','W-4',4,223,0.6,10)
##case3 = FVMG('subsonic','W-4',7,223,0.6,10)
##case4 = FVMG('subsonic','W-5',1,223,0.6,10)
##case5 = FVMG('subsonic','W-5',4,223,0.6,10)
##case6 = FVMG('subsonic','W-5',7,223,0.6,10)
##res1 = case1.residuals2
##res2 = case2.residuals2
##res3 = case3.residuals2
##res4 = case4.residuals2
##res5 = case5.residuals2
##res6 = case6.residuals2
##X = [case1.x,case2.x,case3.x,case4.x,case5.x,case6.x]
##Y = [res1,res2,res3,res4,res5,res6]
##labels = ['Cycle 1, C = 1 ','Cycle 1, C = 4', 'Cycle 1, C = 7',
## 'Cycle 2, C = 1 ','Cycle 2, C = 4', 'Cycle 2, C = 7']
##colors = ['b','r','g','b','r','g']
##lines = ['-','-','-',':',':',':']
##axis = ['Iterations','L2 residual']
##case1.plotting(X,Y,axis,labels,colors,lines, 'Subsonic Multigrid beta = 0.6 \n N = 223 Cycle 1: W-cycle 2-3-4 \n Cycle 2: W-cycle 3-4-5',
## logscale = True,location = 'upper right',lw= 0.75)
##"""
##Subsonic channel flow
##Fourth run: Effect of smoothing factor Beta
##Number of cells fixed: N = 223
##Multigrid cycle fixed: W-cycle 3-4-5
##Courant fixed: C = 7
##"""
##case1 = FVMG('subsonic','W-4',7,223,0.5,10)
##case2 = FVMG('subsonic','W-4',7,223,0.6,10)
##case3 = FVMG('subsonic','W-4',7,223,0.7,10)
##res1 = case1.residuals2
##res2 = case2.residuals2
##res3 = case3.residuals2
##X = [case1.x,case2.x,case3.x]
##Y = [res1,res2,res3]
##labels = ['Beta = 0.5','Beta = 0.6', 'Beta = 0.7']
##colors = ['b','r','g']
##lines = ['-','-','-',':',':',':']
##axis = ['Iterations','L2 residual']
##case1.plotting(X,Y,axis,labels,colors,lines, 'Subsonic Multigrid N = 223 \n W-cycle 3-4-5, C = 7',
## logscale = True,location = 'upper right',lw= 0.75)