@@ -46,31 +46,7 @@ void Compute_Boundary_Blunt_Body()
46
46
qField[i][j][IP] = qField[i - 1 ][j][IP];
47
47
}
48
48
}
49
-
50
- // 下边界, slip wall
51
- for (int i = ist; i <= ied; i++)
52
- {
53
- for (int j = jst; j >= 0 ; j--)
54
- {
55
- qField[i][j][IR] = qField[i][j + 1 ][IR];
56
- // qField[i][j][IU] = qField[i][j + 1][IU];
57
- // qField[i][j][IV] = qField[i][j + 1][IV];
58
- // qField[i][j][IU] = 0.0;
59
- // qField[i][j][IV] = 0.0;
60
- qField[i][j][IP] = qField[i][j + 1 ][IP];
61
- }
62
-
63
- // 以下是滑移物面
64
- qField[i][jst ][IU] = 0.0 ;
65
- qField[i][jst - 1 ][IU] = -qField[i][jst + 1 ][IU];
66
- qField[i][jst - 2 ][IU] = -qField[i][jst + 1 ][IU];
67
-
68
- qField[i][jst ][IV] = 0.0 ;
69
- qField[i][jst - 1 ][IV] = -qField[i][jst + 1 ][IV];
70
- qField[i][jst - 2 ][IV] = -qField[i][jst + 1 ][IV];
71
- }
72
-
73
- // 左边界:超声速入口 !!!左边界条件设置放在下边界后面,确保左下角点设置为入口边界
49
+ // 左边界:超声速入口
74
50
for (int i = 0 ; i <= ist; i++)
75
51
{
76
52
for (int j = jst; j <= jed; j++)
@@ -82,69 +58,88 @@ void Compute_Boundary_Blunt_Body()
82
58
}
83
59
}
84
60
85
- // 左物面 , slip wall
86
- for (int j = jst + Jw1; j <= jst + Jw2; j ++)
61
+ // 下边界 , slip wall
62
+ for (int i = ist; i <= ied; i ++)
87
63
{
88
- for (int i = ist + Iw; i <= ist + Iw + num_ghost_point; i++)
89
- {
90
- qField[i][j][IR] = qField[i - 1 ][j][IR];
91
- // qField[i][j][IU] = 0.0;
92
- // qField[i][j][IV] = 0.0;
93
- qField[i][j][IP] = qField[i - 1 ][j][IP];
94
- }
64
+ qField[i][jst][IR] = qField[i][jst + 1 ][IR]; // weno格式不加这一行在下边界不会反射激波?
65
+ // qField[i][jst][IU] = qField[i][jst + 1][IU];
66
+ qField[i][jst][IV] = 0.0 ;
67
+ qField[i][jst][IP] = qField[i][jst + 1 ][IP]; // weno格式不加这一行在下边界不会反射激波?
95
68
96
- qField[ist + Iw ][j][IU] = 0.0 ;
97
- qField[ist + Iw + 1 ][j][IU] = -qField[ist + Iw - 1 ][j][IU];
98
- qField[ist + Iw + 2 ][j][IU] = -qField[ist + Iw - 1 ][j][IU];
69
+ qField[i][jst - 1 ][IR] = qField[i][jst + 1 ][IR];
70
+ qField[i][jst - 1 ][IU] = qField[i][jst + 1 ][IU];
71
+ qField[i][jst - 1 ][IV] = -qField[i][jst + 1 ][IV];
72
+ qField[i][jst - 1 ][IP] = qField[i][jst + 1 ][IP];
99
73
100
- qField[ist + Iw ][j][IV] = 0.0 ;
101
- qField[ist + Iw + 1 ][j][IV] = -qField[ist + Iw - 1 ][j][IV];
102
- qField[ist + Iw + 2 ][j][IV] = -qField[ist + Iw - 1 ][j][IV];
74
+ qField[i][jst - 2 ][IR] = qField[i][jst + 2 ][IR];
75
+ qField[i][jst - 2 ][IU] = qField[i][jst + 2 ][IU];
76
+ qField[i][jst - 2 ][IV] = -qField[i][jst + 2 ][IV];
77
+ qField[i][jst - 2 ][IP] = qField[i][jst + 2 ][IP];
103
78
}
104
79
105
80
// 上物面, slip wall
81
+ int JJ = jst + Jw2;
106
82
for (int i = ist + Iw; i <= ied; i++)
107
83
{
108
- for (int j = jst + Jw2; j >= Jw2; j--)
109
- {
110
- qField[i][j][IR] = qField[i][j + 1 ][IR];
111
- // qField[i][j][IU] = 0.0;
112
- // qField[i][j][IV] = 0.0;
113
- qField[i][j][IP] = qField[i][j + 1 ][IP];
114
- }
115
-
116
- qField[i][jst + Jw2 ][IU] = 0.0 ;
117
- qField[i][jst + Jw2 - 1 ][IU] = -qField[i][jst + Jw2 + 1 ][IU];
118
- qField[i][jst + Jw2 - 2 ][IU] = -qField[i][jst + Jw2 + 1 ][IU];
119
-
120
- qField[i][jst + Jw2 ][IV] = 0.0 ;
121
- qField[i][jst + Jw2 - 1 ][IV] = -qField[i][jst + Jw2 + 1 ][IV];
122
- qField[i][jst + Jw2 - 2 ][IV] = -qField[i][jst + Jw2 + 1 ][IV];
84
+ // qField[i][JJ][IR] = qField[i][JJ + 1][IR];
85
+ // qField[i][JJ][IU] = qField[i][JJ + 1][IU];
86
+ qField[i][JJ][IV] = 0.0 ;
87
+ // qField[i][JJ][IP] = qField[i][JJ + 1][IP];
88
+
89
+ qField[i][JJ - 1 ][IR] = qField[i][JJ + 1 ][IR];
90
+ qField[i][JJ - 1 ][IU] = qField[i][JJ + 1 ][IU];
91
+ qField[i][JJ - 1 ][IV] = -qField[i][JJ + 1 ][IV];
92
+ qField[i][JJ - 1 ][IP] = qField[i][JJ + 1 ][IP];
93
+
94
+ qField[i][JJ - 2 ][IR] = qField[i][JJ + 2 ][IR];
95
+ qField[i][JJ - 2 ][IU] = qField[i][JJ + 2 ][IU];
96
+ qField[i][JJ - 2 ][IV] = -qField[i][JJ + 2 ][IV];
97
+ qField[i][JJ - 2 ][IP] = qField[i][JJ + 2 ][IP];
123
98
}
124
99
125
100
// 下物面, slip wall
101
+ JJ = jst + Jw1;
126
102
for (int i = ist + Iw; i <= ied; i++)
127
103
{
128
- for (int j = jst + Jw1; j <= jst + Jw1 + num_ghost_point; j++)
129
- {
130
- qField[i][j][IR] = qField[i][j - 1 ][IR];
131
- // qField[i][j][IU] = 0.0;
132
- // qField[i][j][IV] = 0.0;
133
- qField[i][j][IP] = qField[i][j - 1 ][IP];
134
- }
135
-
136
- qField[i][jst + Jw1 ][IU] = 0.0 ;
137
- qField[i][jst + Jw1 + 1 ][IU] = -qField[i][jst + Jw1 - 1 ][IU];
138
- qField[i][jst + Jw1 + 2 ][IU] = -qField[i][jst + Jw1 - 1 ][IU];
104
+ // qField[i][JJ][IR] = qField[i][JJ - 1][IR];
105
+ // qField[i][JJ][IU] = qField[i][JJ - 1][IU];
106
+ qField[i][JJ][IV] = 0.0 ;
107
+ // qField[i][JJ][IP] = qField[i][JJ - 1][IP];
108
+
109
+ qField[i][JJ + 1 ][IR] = qField[i][JJ - 1 ][IR];
110
+ qField[i][JJ + 1 ][IU] = qField[i][JJ - 1 ][IU];
111
+ qField[i][JJ + 1 ][IV] = -qField[i][JJ - 1 ][IV];
112
+ qField[i][JJ + 1 ][IP] = qField[i][JJ - 1 ][IP];
113
+
114
+ qField[i][JJ + 2 ][IR] = qField[i][JJ - 2 ][IR];
115
+ qField[i][JJ + 2 ][IU] = qField[i][JJ - 2 ][IU];
116
+ qField[i][JJ + 2 ][IV] = -qField[i][JJ - 2 ][IV];
117
+ qField[i][JJ + 2 ][IP] = qField[i][JJ - 2 ][IP];
118
+ }
139
119
140
- qField[i][jst + Jw1 ][IV] = 0.0 ;
141
- qField[i][jst + Jw1 + 1 ][IV] = -qField[i][jst + Jw1 - 1 ][IV];
142
- qField[i][jst + Jw1 + 2 ][IV] = -qField[i][jst + Jw1 - 1 ][IV];
120
+ // 左物面, slip wall
121
+ int II = ist + Iw;
122
+ for (int j = jst + Jw1; j <= jst + Jw2; j++)
123
+ {
124
+ // qField[II][j][IR] = qField[II - 1][j][IR];
125
+ qField[II][j][IU] = 0.0 ;
126
+ // qField[II][j][IV] = 0.0; //qField[II - 1][j][IV];
127
+ // qField[II][j][IP] = qField[II - 1][j][IP];
128
+
129
+ qField[II + 1 ][j][IR] = qField[II - 1 ][j][IR];
130
+ qField[II + 1 ][j][IU] = -qField[II - 1 ][j][IU];
131
+ qField[II + 1 ][j][IV] = qField[II - 1 ][j][IV];
132
+ qField[II + 1 ][j][IP] = qField[II - 1 ][j][IP];
133
+
134
+ qField[II + 2 ][j][IR] = qField[II - 2 ][j][IR];
135
+ qField[II + 2 ][j][IU] = -qField[II - 2 ][j][IU];
136
+ qField[II + 2 ][j][IV] = qField[II - 2 ][j][IV];
137
+ qField[II + 2 ][j][IP] = qField[II - 2 ][j][IP];
143
138
}
144
139
145
140
// 角点处理,左上,设置参考角点标号
146
- int II = ist + Iw;
147
- int JJ = jst + Jw2;
141
+ II = ist + Iw;
142
+ JJ = jst + Jw2;
148
143
// 1点,对角方向
149
144
qField[II + 2 ][JJ - 2 ][IR] = qField[II][JJ][IR];
150
145
qField[II + 2 ][JJ - 2 ][IU] = -qField[II][JJ][IU];
@@ -154,12 +149,12 @@ void Compute_Boundary_Blunt_Body()
154
149
// 2点, x方向取值
155
150
qField[II + 1 ][JJ - 2 ][IR] = qField[II - 1 ][JJ - 2 ][IR];
156
151
qField[II + 1 ][JJ - 2 ][IU] = -qField[II - 1 ][JJ - 2 ][IU];
157
- qField[II + 1 ][JJ - 2 ][IV] = - qField[II - 1 ][JJ - 2 ][IV];
152
+ qField[II + 1 ][JJ - 2 ][IV] = qField[II - 1 ][JJ - 2 ][IV];
158
153
qField[II + 1 ][JJ - 2 ][IP] = qField[II - 1 ][JJ - 2 ][IP];
159
154
160
155
// 3点, y方向取值
161
156
qField[II + 2 ][JJ - 1 ][IR] = qField[II + 2 ][JJ + 1 ][IR];
162
- qField[II + 2 ][JJ - 1 ][IU] = - qField[II + 2 ][JJ + 1 ][IU];
157
+ qField[II + 2 ][JJ - 1 ][IU] = qField[II + 2 ][JJ + 1 ][IU];
163
158
qField[II + 2 ][JJ - 1 ][IV] = -qField[II + 2 ][JJ + 1 ][IV];
164
159
qField[II + 2 ][JJ - 1 ][IP] = qField[II + 2 ][JJ + 1 ][IP];
165
160
@@ -183,12 +178,12 @@ void Compute_Boundary_Blunt_Body()
183
178
// 2点, x方向取值
184
179
qField[II + 1 ][JJ + 2 ][IR] = qField[II - 1 ][JJ + 2 ][IR];
185
180
qField[II + 1 ][JJ + 2 ][IU] = -qField[II - 1 ][JJ + 2 ][IU];
186
- qField[II + 1 ][JJ + 2 ][IV] = - qField[II - 1 ][JJ + 2 ][IV];
181
+ qField[II + 1 ][JJ + 2 ][IV] = qField[II - 1 ][JJ + 2 ][IV];
187
182
qField[II + 1 ][JJ + 2 ][IP] = qField[II - 1 ][JJ + 2 ][IP];
188
183
189
184
// 3点, y方向取值
190
185
qField[II + 2 ][JJ + 1 ][IR] = qField[II + 2 ][JJ - 1 ][IR];
191
- qField[II + 2 ][JJ + 1 ][IU] = - qField[II + 2 ][JJ - 1 ][IU];
186
+ qField[II + 2 ][JJ + 1 ][IU] = qField[II + 2 ][JJ - 1 ][IU];
192
187
qField[II + 2 ][JJ + 1 ][IV] = -qField[II + 2 ][JJ - 1 ][IV];
193
188
qField[II + 2 ][JJ + 1 ][IP] = qField[II + 2 ][JJ - 1 ][IP];
194
189
0 commit comments