學習自李新亮的《計算流體力學講義PPT》第2講 雙曲型方程組及間斷解html
1 問題描述
一維無粘流動初始間斷的演化問題,激波管問題(Sod激波管問題),因爲該問題屬於典型的間斷問題,且有精確解存在,故普遍用於對比驗證CFD中離散格式、數值方法的準確性,意義嘛仍是蠻重要的,哈。web
一無限長管道內部充滿理想氣體(無粘),中間有一不計厚度的隔膜,初始時刻
t
0
t_0
t 0 ,左側氣體的速度、密度、壓力分別爲
u
1
u_1
u 1 、
ρ
1
\rho_1
ρ 1 、
p
1
p_1
p 1 ,右側氣體的速度、密度、壓力分別爲
u
2
u_2
u 2 、
ρ
2
\rho_2
ρ 2 、
p
2
p_2
p 2 。不考慮流體粘性,忽然將隔膜抽出(也可認爲隔膜忽然消失),那麼到時刻
t
t
t 後,管道內流體的速度、密度、壓力將如何分佈?算法
---------------------------------------------------------
u
1
,
ρ
1
,
p
1
u_1, \rho_1,p_1
u 1 , ρ 1 , p 1 |
u
2
,
ρ
2
,
p
2
u_2, \rho_2, p_2
u 2 , ρ 2 , p 2 ---------------------------------------------------------app
控制方程爲一維Euler方程(即無粘可壓縮理想流體一維流動的控制方程):
{
∂
ρ
∂
t
+
∂
(
ρ
u
)
∂
x
=
0
∂
(
ρ
u
)
∂
t
+
∂
(
ρ
u
2
+
p
)
∂
x
=
0
∂
(
ρ
E
)
∂
t
+
∂
(
ρ
E
u
+
p
u
)
∂
x
=
0
\begin{cases} \displaystyle \frac{\partial{\rho}}{\partial{t}} + \frac{\partial{(\rho u)}}{\partial x}=0 \\ \\ \displaystyle \frac{\partial{(\rho u)}}{\partial{t}} + \frac{\partial{(\rho u^2 + p)}}{\partial x}=0 \\ \\ \displaystyle \frac{\partial{(\rho E)}}{\partial{t}} + \frac{\partial{(\rho E u + pu)}}{\partial x}=0 \end{cases}
⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ ∂ t ∂ ρ + ∂ x ∂ ( ρ u ) = 0 ∂ t ∂ ( ρ u ) + ∂ x ∂ ( ρ u 2 + p ) = 0 ∂ t ∂ ( ρ E ) + ∂ x ∂ ( ρ E u + p u ) = 0 ide
初始條件:svg
t
=
t
0
時
,
(
u
,
ρ
,
p
)
=
{
u
1
,
ρ
1
,
p
1
x
<
0
u
2
,
ρ
2
,
p
2
x
≥
0
t=t_0時,\quad\quad (u,\rho,p)=\begin{cases} u_1,\rho_1,p_1 &x<0\\ u_2,\rho_2,p_2 &x\geq0\\ \end{cases}
t = t 0 時 , ( u , ρ , p ) = { u 1 , ρ 1 , p 1 u 2 , ρ 2 , p 2 x < 0 x ≥ 0 函數
另外,求解方程須要用到的變量爲理想氣體比熱比
γ
=
1.4
\gamma=1.4
γ = 1 . 4 ,氣體守恆能量
ρ
E
\rho E
ρ E 與氣體其餘狀態參數的關係式學習
ρ
E
=
p
γ
−
1
+
ρ
u
2
2
\displaystyle \rho E=\frac{p}{\gamma-1}+\rho\frac{u^2}{2}
ρ E = γ − 1 p + ρ 2 u 2 ui
聲速與氣體其餘狀態參數的關係式spa
c
=
γ
p
ρ
\displaystyle c=\sqrt{\gamma \frac{p}{\rho}}
c = γ ρ p
2 求解方法
流場中可能出現三種波:
間斷類型
特徵
激波
強間斷,知足R-H關係式
接觸間斷
特殊間斷,僅密度突變,而速度和壓力不變
膨脹波
等熵波
依據不一樣的初始條件,能夠產生五類不一樣的狀況,分別爲 (1)左激波-接觸間斷-右激波 (2)左膨脹波-接觸間斷-右激波 (3)左激波-接觸間斷-右膨脹波 (4)左膨脹波-接觸間斷-右膨脹波 (5)左膨脹波-右膨脹波
2.1 狀況1,左右激波和中間的接觸間斷
區域1和區域2中物理量與初始狀態一致,分別爲
u
1
u_1
u 1 、
ρ
1
\rho_1
ρ 1 、
p
1
p_1
p 1 和
u
2
u_2
u 2 、
ρ
2
\rho_2
ρ 2 、
p
2
p_2
p 2 ;
待求量爲左激波運動速度
Z
1
Z_1
Z 1 、右激波運動速度
Z
2
Z_2
Z 2 ,注意左激波是向左運動的,右激波是向右運動的,這裏把
Z
1
Z_1
Z 1 和
Z
2
Z_2
Z 2 的正方向都定義爲沿着
x
x
x 軸的正方向。
區域3和區域4中物理量也爲待求量,因爲接觸間斷兩側僅密度產生突變,故區域3和區域4中的速度和壓力時相同的,將其定義爲
u
∗
u^*
u ∗ 和
p
∗
p^*
p ∗ ,將區域3和區域4的密度分別定義爲
ρ
∗
L
\rho^{*L}
ρ ∗ L 和
ρ
∗
R
\rho^{*R}
ρ ∗ R 。注意,中間接觸間斷面的運動速度並非未知量,由於該間斷面兩側速度相同,都爲
u
∗
u^*
u ∗ ,因此該間斷面的運動速度也爲
u
∗
u^*
u ∗ 。
那麼總共有6個未知量,即
Z
1
Z_1
Z 1 、
Z
2
Z_2
Z 2 、
u
∗
u^*
u ∗ 、
p
∗
p^*
p ∗ 、
ρ
∗
L
\rho^{*L}
ρ ∗ L 和
ρ
∗
R
\rho^{*R}
ρ ∗ R 。
在激波兩側的物理量知足R-H關係,即質量、動量、能量通量守恆,即
{
ρ
1
(
u
1
−
Z
)
=
ρ
2
(
u
2
−
Z
)
ρ
1
u
1
(
u
1
−
Z
)
+
p
1
=
ρ
2
u
2
(
u
2
−
Z
)
+
p
2
ρ
1
E
1
(
u
1
−
Z
)
+
u
1
p
1
=
ρ
2
E
2
(
u
2
−
Z
)
+
u
2
p
2
\begin{cases} \displaystyle \rho_1(u_1-Z)=\rho_2(u_2-Z) \\ \displaystyle \rho_1 u_1 (u_1-Z) + p_1=\rho_2 u_2 (u_2-Z) + p_2 \\ \displaystyle \rho_1 E_1 (u_1-Z) + u_1 p_1=\rho_2 E_2 (u_2-Z) + u_2 p_2 \end{cases}
⎩ ⎪ ⎨ ⎪ ⎧ ρ 1 ( u 1 − Z ) = ρ 2 ( u 2 − Z ) ρ 1 u 1 ( u 1 − Z ) + p 1 = ρ 2 u 2 ( u 2 − Z ) + p 2 ρ 1 E 1 ( u 1 − Z ) + u 1 p 1 = ρ 2 E 2 ( u 2 − Z ) + u 2 p 2
那麼,對於1-3兩區
{
ρ
1
(
u
1
−
Z
1
)
=
ρ
∗
L
(
u
∗
−
Z
1
)
(
1
)
ρ
1
u
1
(
u
1
−
Z
1
)
+
p
1
=
ρ
∗
L
u
∗
(
u
∗
−
Z
1
)
+
p
∗
(
2
)
ρ
1
E
1
(
u
1
−
Z
1
)
+
u
1
p
1
=
ρ
∗
L
E
∗
L
(
u
∗
−
Z
1
)
+
u
∗
p
∗
(
3
)
\begin{cases} \displaystyle \rho_1(u_1-Z_1)=\rho^{*L}(u^*-Z_1) & (1) \\ \displaystyle \rho_1 u_1 (u_1-Z_1) + p_1=\rho^{*L} u^* (u^*-Z_1) + p^* & (2)\\ \displaystyle \rho_1 E_1 (u_1-Z_1) + u_1 p_1=\rho^{*L} E^{*L} (u^*-Z_1) + u^* p^* & (3) \end{cases}
⎩ ⎪ ⎨ ⎪ ⎧ ρ 1 ( u 1 − Z 1 ) = ρ ∗ L ( u ∗ − Z 1 ) ρ 1 u 1 ( u 1 − Z 1 ) + p 1 = ρ ∗ L u ∗ ( u ∗ − Z 1 ) + p ∗ ρ 1 E 1 ( u 1 − Z 1 ) + u 1 p 1 = ρ ∗ L E ∗ L ( u ∗ − Z 1 ) + u ∗ p ∗ ( 1 ) ( 2 ) ( 3 )
對於2-4兩區
{
ρ
2
(
u
2
−
Z
2
)
=
ρ
∗
R
(
u
∗
−
Z
2
)
(
4
)
ρ
2
u
2
(
u
2
−
Z
2
)
+
p
2
=
ρ
∗
R
u
∗
(
u
∗
−
Z
2
)
+
p
∗
(
5
)
ρ
2
E
2
(
u
2
−
Z
2
)
+
u
2
p
2
=
ρ
∗
R
E
∗
R
(
u
∗
−
Z
2
)
+
u
∗
p
∗
(
6
)
\begin{cases} \displaystyle \rho_2(u_2-Z_2)=\rho^{*R}(u^*-Z_2) & (4)\\ \displaystyle \rho_2 u_2 (u_2-Z_2) + p_2=\rho^{*R} u^* (u^*-Z_2) + p^* & (5)\\ \displaystyle \rho_2 E_2 (u_2-Z_2) + u_2 p_2=\rho^{*R} E^{*R} (u^*-Z_2) + u^* p^* & (6) \end{cases}
⎩ ⎪ ⎨ ⎪ ⎧ ρ 2 ( u 2 − Z 2 ) = ρ ∗ R ( u ∗ − Z 2 ) ρ 2 u 2 ( u 2 − Z 2 ) + p 2 = ρ ∗ R u ∗ ( u ∗ − Z 2 ) + p ∗ ρ 2 E 2 ( u 2 − Z 2 ) + u 2 p 2 = ρ ∗ R E ∗ R ( u ∗ − Z 2 ) + u ∗ p ∗ ( 4 ) ( 5 ) ( 6 )
總共6個方程(1)-(6),6個未知數,可解。
解法以下:
先來看1-3區的關係式(1)-(3),共有4個未知數
ρ
∗
L
\rho^{*L}
ρ ∗ L 、
u
∗
u^*
u ∗ 、
Z
1
Z_1
Z 1 、
p
∗
p^*
p ∗ ,注意
E
∗
L
E^{*L}
E ∗ L 是其餘狀態參數的函數,不屬於未知量,其與其餘量關係爲:
ρ
∗
L
E
∗
L
=
p
∗
γ
−
1
+
ρ
∗
L
(
u
∗
)
2
2
(
7
)
\displaystyle \rho^{*L} E^{*L}=\frac{p^*}{\gamma-1}+\rho^{*L}\frac{(u^*)^2}{2} \quad (7)
ρ ∗ L E ∗ L = γ − 1 p ∗ + ρ ∗ L 2 ( u ∗ ) 2 ( 7 )
接下來要作的是從(1)-(3)中消去
ρ
∗
L
\rho^{*L}
ρ ∗ L 和
Z
1
Z_1
Z 1 ,找到
u
∗
u^*
u ∗ 和
p
∗
p^*
p ∗ 的關係式,先由(1)可得
ρ
∗
L
=
ρ
1
(
u
1
−
Z
1
)
(
u
∗
−
Z
1
)
(
8
)
\displaystyle \rho^{*L} = \frac{\rho_1(u_1-Z_1)}{(u^*-Z_1)} \quad (8)
ρ ∗ L = ( u ∗ − Z 1 ) ρ 1 ( u 1 − Z 1 ) ( 8 )
將上式(8)代入到式(2),消去
ρ
∗
L
\rho^{*L}
ρ ∗ L ,可得
ρ
1
(
u
1
−
Z
1
)
(
u
1
−
u
∗
)
=
p
∗
−
p
1
(
9
)
\rho_1 (u_1-Z_1) (u_1-u^*) = p^* - p_1 \quad (9)
ρ 1 ( u 1 − Z 1 ) ( u 1 − u ∗ ) = p ∗ − p 1 ( 9 )
將式(8)代入式(3),消去
ρ
∗
L
\rho^{*L}
ρ ∗ L ,並將能量
E
1
E_1
E 1 和
E
∗
L
E^{*L}
E ∗ L 用壓力、密度和速度來表示,可得
(
p
1
γ
−
1
+
ρ
1
u
1
2
2
)
(
u
1
−
Z
1
)
+
u
1
p
1
=
p
∗
γ
−
1
(
u
∗
−
Z
1
)
+
ρ
1
(
u
∗
)
2
2
(
u
1
−
Z
1
)
+
u
∗
p
∗
\displaystyle \left( \frac{p_1}{\gamma - 1}+\rho_1\frac{u_1^2}{2}\right) (u_1-Z_1)+u_1p_1=\frac{p^*}{\gamma - 1}(u^*-Z_1)+\rho_1\frac{(u^*)^2}{2}(u_1-Z_1) +u^*p^*
( γ − 1 p 1 + ρ 1 2 u 1 2 ) ( u 1 − Z 1 ) + u 1 p 1 = γ − 1 p ∗ ( u ∗ − Z 1 ) + ρ 1 2 ( u ∗ ) 2 ( u 1 − Z 1 ) + u ∗ p ∗
即
[
p
1
γ
−
1
+
ρ
1
u
1
2
−
(
u
∗
)
2
2
]
(
u
1
−
Z
1
)
=
p
∗
γ
−
1
(
u
∗
−
Z
1
)
+
u
∗
p
∗
−
u
1
p
1
(
10
)
\displaystyle \left[ \frac{p_1}{\gamma - 1}+\rho_1\frac{u_1^2-(u^*)^2}{2}\right] (u_1-Z_1)=\frac{p^*}{\gamma - 1}(u^*-Z_1) +u^*p^*-u_1p_1 \quad (10)
[ γ − 1 p 1 + ρ 1 2 u 1 2 − ( u ∗ ) 2 ] ( u 1 − Z 1 ) = γ − 1 p ∗ ( u ∗ − Z 1 ) + u ∗ p ∗ − u 1 p 1 ( 1 0 )
至關於把本來的式(2)和式(3)消去了
ρ
∗
L
\rho^{*L}
ρ ∗ L ,轉化爲了式(9)和式(10),接下來想辦法從式(9)和式(10)中消去
Z
1
Z_1
Z 1 ,由式(9)可得
Z
1
=
u
1
−
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
(
11
)
Z_1 = u_1-\frac{p^* - p_1}{\rho_1(u_1-u^*)} \quad (11)
Z 1 = u 1 − ρ 1 ( u 1 − u ∗ ) p ∗ − p 1 ( 1 1 )
將上式代入到式(10)中,獲得
[
p
1
γ
−
1
+
ρ
1
u
1
2
−
(
u
∗
)
2
2
]
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
=
p
∗
γ
−
1
[
u
∗
−
u
1
+
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
]
+
u
∗
p
∗
−
u
1
p
1
\displaystyle \left[ \frac{p_1}{\gamma - 1}+\rho_1\frac{u_1^2-(u^*)^2}{2}\right] \frac{p^* - p_1}{\rho_1(u_1-u^*)}=\frac{p^*}{\gamma - 1} \left[u^*-u_1+\frac{p^* - p_1}{\rho_1(u_1-u^*)}\right] +u^*p^*-u_1p_1
[ γ − 1 p 1 + ρ 1 2 u 1 2 − ( u ∗ ) 2 ] ρ 1 ( u 1 − u ∗ ) p ∗ − p 1 = γ − 1 p ∗ [ u ∗ − u 1 + ρ 1 ( u 1 − u ∗ ) p ∗ − p 1 ] + u ∗ p ∗ − u 1 p 1
即
p
1
−
p
∗
γ
−
1
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
+
1
2
(
p
∗
−
p
1
)
(
u
1
+
u
∗
)
=
γ
p
∗
γ
−
1
(
u
∗
−
u
1
)
+
u
1
(
p
∗
−
p
1
)
\displaystyle \frac{p_1-p^*}{\gamma - 1}\frac{p^* - p_1}{\rho_1(u_1-u^*)} +\frac{1}{2}(p^* - p_1)(u_1+u^*)=\frac{\gamma p^*}{\gamma - 1} (u^*-u_1) +u_1(p^*-p_1)
γ − 1 p 1 − p ∗ ρ 1 ( u 1 − u ∗ ) p ∗ − p 1 + 2 1 ( p ∗ − p 1 ) ( u 1 + u ∗ ) = γ − 1 γ p ∗ ( u ∗ − u 1 ) + u 1 ( p ∗ − p 1 )
即
(
p
1
−
p
∗
)
2
ρ
1
(
γ
−
1
)
(
u
∗
−
u
1
)
+
1
2
(
p
∗
−
p
1
)
(
u
∗
−
u
1
)
=
γ
p
∗
γ
−
1
(
u
∗
−
u
1
)
\displaystyle \frac{(p_1-p^*)^2}{\rho_1(\gamma - 1)(u^*-u_1)} +\frac{1}{2}(p^* - p_1)(u^*-u_1)=\frac{\gamma p^*}{\gamma - 1} (u^*-u_1)
ρ 1 ( γ − 1 ) ( u ∗ − u 1 ) ( p 1 − p ∗ ) 2 + 2 1 ( p ∗ − p 1 ) ( u ∗ − u 1 ) = γ − 1 γ p ∗ ( u ∗ − u 1 )
即
(
p
1
−
p
∗
)
2
ρ
1
(
γ
−
1
)
(
u
∗
−
u
1
)
=
(
γ
+
1
)
p
∗
+
(
γ
−
1
)
p
1
2
(
γ
−
1
)
(
u
∗
−
u
1
)
\displaystyle \frac{(p_1-p^*)^2}{\rho_1(\gamma - 1)(u^*-u_1)}=\frac{(\gamma+1)p^*+(\gamma-1)p_1}{2(\gamma-1)} (u^*-u_1)
ρ 1 ( γ − 1 ) ( u ∗ − u 1 ) ( p 1 − p ∗ ) 2 = 2 ( γ − 1 ) ( γ + 1 ) p ∗ + ( γ − 1 ) p 1 ( u ∗ − u 1 )
即
2
(
p
1
−
p
∗
)
2
(
γ
+
1
)
p
∗
+
(
γ
−
1
)
p
1
=
ρ
1
(
u
∗
−
u
1
)
2
\displaystyle \frac{2(p_1-p^*)^2}{(\gamma+1)p^*+(\gamma-1)p_1}=\rho_1(u^*-u_1)^2
( γ + 1 ) p ∗ + ( γ − 1 ) p 1 2 ( p 1 − p ∗ ) 2 = ρ 1 ( u ∗ − u 1 ) 2
即
∣
u
∗
−
u
1
∣
=
∣
p
1
−
p
∗
∣
2
ρ
1
[
(
γ
+
1
)
p
∗
+
(
γ
−
1
)
p
1
]
| u^*-u_1 | =|p_1-p^*| \sqrt{\frac{2}{\rho_1[(\gamma+1)p^*+(\gamma-1)p_1]}}
∣ u ∗ − u 1 ∣ = ∣ p 1 − p ∗ ∣ ρ 1 [ ( γ + 1 ) p ∗ + ( γ − 1 ) p 1 ] 2
這時候須要考慮
p
1
−
p
∗
p_1-p^*
p 1 − p ∗ ,
u
∗
−
u
1
u^*-u_1
u ∗ − u 1 的正負問題,因爲是左行激波,激波運動速度
Z
1
<
0
Z_1<0
Z 1 < 0 ,那麼根據式(11)有
Z
1
=
u
1
−
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
<
0
Z_1 = u_1-\frac{p^* - p_1}{\rho_1(u_1-u^*)}<0
Z 1 = u 1 − ρ 1 ( u 1 − u ∗ ) p ∗ − p 1 < 0
即
u
1
<
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
u_1<\frac{p^* - p_1}{\rho_1(u_1-u^*)}
u 1 < ρ 1 ( u 1 − u ∗ ) p ∗ − p 1
毫無疑問,密度必須是正值
ρ
1
>
0
\rho_1>0
ρ 1 > 0 ,而激波後部壓力要大於前面,即有
p
∗
>
p
1
p^*>p_1
p ∗ > p 1 。 若
u
1
≥
0
u_1\ge0
u 1 ≥ 0 ,則
p
∗
−
p
1
p^* - p_1
p ∗ − p 1 與
u
1
−
u
∗
u_1-u^*
u 1 − u ∗ 同號,才能保證
R
H
S
≥
0
RHS\ge0
R H S ≥ 0 ; 若
u
1
<
0
u_1<0
u 1 < 0 ,則
p
∗
−
p
1
p^* - p_1
p ∗ − p 1 與
u
1
−
u
∗
u_1-u^*
u 1 − u ∗ 同號時,能保證
R
H
S
>
0
>
u
1
RHS>0>u_1
R H S > 0 > u 1 ,而
p
∗
−
p
1
p^* - p_1
p ∗ − p 1 與
u
1
−
u
∗
u_1-u^*
u 1 − u ∗ 異號時,應該不會出現這種狀況,具體怎麼個分析解釋,我暫時也沒弄明白,汗顏……。 不論如何,這裏通過分析,能夠獲得,左行激波的
p
∗
>
p
1
p^*>p_1
p ∗ > p 1 ,而
u
1
>
u
∗
u_1>u^*
u 1 > u ∗ 。
故可推得
u
∗
u^*
u ∗ 與
p
∗
p^*
p ∗ 的關係式
u
∗
=
u
1
+
(
p
1
−
p
∗
)
2
ρ
1
[
(
γ
+
1
)
p
∗
+
(
γ
−
1
)
p
1
]
\displaystyle u^* = u_1 + (p_1-p^*)\sqrt{\frac{2}{\rho_1[(\gamma+1)p^*+(\gamma-1)p_1]}}
u ∗ = u 1 + ( p 1 − p ∗ ) ρ 1 [ ( γ + 1 ) p ∗ + ( γ − 1 ) p 1 ] 2
通常寫成以下形式:
u
∗
=
u
1
−
p
∗
−
p
1
ρ
1
c
1
γ
+
1
2
γ
p
∗
p
1
+
γ
−
1
2
γ
=
u
1
−
f
(
p
∗
,
p
1
,
ρ
1
)
(
12
)
\displaystyle u^* = u_1 - \frac{p^*-p_1}{\rho_1 c_1 \sqrt{\displaystyle \frac{\gamma+1}{2\gamma}\frac{p^*}{p_1}+\frac{\gamma-1}{2\gamma}}}=u_1-f(p^*,p_1,\rho_1) \quad (12)
u ∗ = u 1 − ρ 1 c 1 2 γ γ + 1 p 1 p ∗ + 2 γ γ − 1
p ∗ − p 1 = u 1 − f ( p ∗ , p 1 , ρ 1 ) ( 1 2 )
其中聲速
c
1
=
γ
p
1
/
ρ
1
c_1=\sqrt{\gamma p_1 / \rho_1}
c 1 = γ p 1 / ρ 1
採用一樣的方法,也能夠從2-4區的關係式(4)-(6)推出
u
∗
u^*
u ∗ 與
p
∗
p^*
p ∗ 、
u
2
u_2
u 2 、
ρ
2
\rho_2
ρ 2 、
p
2
p_2
p 2 的關係式,注意,因爲是右行激波,分析後發現
p
∗
>
p
2
p^*>p_2
p ∗ > p 2 ,而
u
2
<
u
∗
u_2<u^*
u 2 < u ∗ ,因此式子裏面是加號:
u
∗
=
u
2
+
p
∗
−
p
2
ρ
2
c
2
γ
+
1
2
γ
p
∗
p
2
+
γ
−
1
2
γ
=
u
2
+
f
(
p
∗
,
p
2
,
ρ
2
)
(
13
)
\displaystyle u^* = u_2 + \frac{p^*-p_2}{\rho_2 c_2 \sqrt{\displaystyle \frac{\gamma+1}{2\gamma}\frac{p^*}{p_2}+\frac{\gamma-1}{2\gamma}}}=u_2+f(p^*,p_2,\rho_2) \quad (13)
u ∗ = u 2 + ρ 2 c 2 2 γ γ + 1 p 2 p ∗ + 2 γ γ − 1
p ∗ − p 2 = u 2 + f ( p ∗ , p 2 , ρ 2 ) ( 1 3 )
其中聲速
c
2
=
γ
p
2
/
ρ
2
c_2=\sqrt{\gamma p_2 / \rho_2}
c 2 = γ p 2 / ρ 2
綜合考慮式(12)和式(13),他倆的右端項是相等的,能夠消去
u
∗
u^*
u ∗ ,獲得關於
p
∗
p^*
p ∗ 的方程,以下:
u
1
−
u
2
=
f
(
p
∗
,
p
1
,
ρ
1
)
+
f
(
p
∗
,
p
2
,
ρ
2
)
≡
F
(
p
∗
)
(
14
)
u_1 - u_2 =f(p^*,p_1,\rho_1) + f(p^*,p_2,\rho_2) \equiv F(p^*) \quad (14)
u 1 − u 2 = f ( p ∗ , p 1 , ρ 1 ) + f ( p ∗ , p 2 , ρ 2 ) ≡ F ( p ∗ ) ( 1 4 )
上式中僅含一個未知量
p
∗
p^*
p ∗ ,因此可解,然而方程自己非線性,因此沒有解析形式的解,好在
F
(
p
∗
)
F(p^*)
F ( p ∗ ) 函數自身具備很好的單調性,爲單調增函數,因此對於給定的
p
1
p_1
p 1 、
p
2
p_2
p 2 、
u
1
u_1
u 1 、
u
2
u_2
u 2 、
ρ
1
\rho_1
ρ 1 、
ρ
2
\rho_2
ρ 2 ,能夠很方便地用二分法或Newton法來得到數值解
p
∗
p^*
p ∗ 。
算得
p
∗
p^*
p ∗ 以後,能夠先用式(12)或式(13)來算出
u
∗
u^*
u ∗ ,再由式(11)來算出
Z
1
Z_1
Z 1 (
Z
2
Z_2
Z 2 的算法是同樣的),最後用式(8)算出
ρ
∗
L
\rho^{*L}
ρ ∗ L (
ρ
∗
R
\rho^{*R}
ρ ∗ R 的算法是同樣的)。
至此,已經獲取了狀況1的所有6個未知量,即
Z
1
Z_1
Z 1 、
Z
2
Z_2
Z 2 、
u
∗
u^*
u ∗ 、
p
∗
p^*
p ∗ 、
ρ
∗
L
\rho^{*L}
ρ ∗ L 和
ρ
∗
R
\rho^{*R}
ρ ∗ R 。
2.2 狀況2,左膨脹波,右激波,中間接觸間斷
(
u
1
,
p
1
,
ρ
1
)
=
(
0
,
1
,
1
)
,
(
u
2
,
p
2
,
ρ
2
)
=
(
0
,
0.1
,
0.125
)
(u_1,p_1,\rho_1)=(0,1,1),(u_2,p_2,\rho_2)=(0,0.1,0.125)
( u 1 , p 1 , ρ 1 ) = ( 0 , 1 , 1 ) , ( u 2 , p 2 , ρ 2 ) = ( 0 , 0 . 1 , 0 . 1 2 5 ) 的初始狀態,在t=0.14s的參數以下,這屬於狀況2。
我們先計算(3)和(4)兩區的值,再計算膨脹波內部(5)區的值。
2-4兩區仍然知足R-H關係,與狀況1徹底同樣:
{
ρ
2
(
u
2
−
Z
2
)
=
ρ
∗
R
(
u
∗
−
Z
2
)
(
15
)
ρ
2
u
2
(
u
2
−
Z
2
)
+
p
2
=
ρ
∗
R
u
∗
(
u
∗
−
Z
2
)
+
p
∗
(
16
)
ρ
2
E
2
(
u
2
−
Z
2
)
+
u
2
p
2
=
ρ
∗
R
E
∗
R
(
u
∗
−
Z
2
)
+
u
∗
p
∗
(
17
)
\begin{cases} \displaystyle \rho_2(u_2-Z_2)=\rho^{*R}(u^*-Z_2) & (15)\\ \displaystyle \rho_2 u_2 (u_2-Z_2) + p_2=\rho^{*R} u^* (u^*-Z_2) + p^* & (16)\\ \displaystyle \rho_2 E_2 (u_2-Z_2) + u_2 p_2=\rho^{*R} E^{*R} (u^*-Z_2) + u^* p^* & (17) \end{cases}
⎩ ⎪ ⎨ ⎪ ⎧ ρ 2 ( u 2 − Z 2 ) = ρ ∗ R ( u ∗ − Z 2 ) ρ 2 u 2 ( u 2 − Z 2 ) + p 2 = ρ ∗ R u ∗ ( u ∗ − Z 2 ) + p ∗ ρ 2 E 2 ( u 2 − Z 2 ) + u 2 p 2 = ρ ∗ R E ∗ R ( u ∗ − Z 2 ) + u ∗ p ∗ ( 1 5 ) ( 1 6 ) ( 1 7 )
1-3兩區,首先要知足等熵關係,其次要知足Riemann不變量的相等,即
{
p
∗
(
ρ
∗
L
)
γ
=
p
1
(
ρ
1
)
γ
(
18
)
u
1
+
2
c
1
γ
−
1
=
u
∗
+
2
c
L
γ
−
1
(
19
)
\begin{cases} \displaystyle \frac{p^*}{(\rho^{*L})^\gamma}=\frac{p_1}{(\rho_1)^\gamma} & (18) \\ \\ \displaystyle u_1+\frac{2c_1}{\gamma-1}=u^*+\frac{2c^L}{\gamma-1} & (19) \end{cases}
⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎧ ( ρ ∗ L ) γ p ∗ = ( ρ 1 ) γ p 1 u 1 + γ − 1 2 c 1 = u ∗ + γ − 1 2 c L ( 1 8 ) ( 1 9 )
其中
c
1
=
γ
p
1
/
ρ
1
c_1=\sqrt{\gamma p_1/\rho_1}
c 1 = γ p 1 / ρ 1
,
c
L
=
γ
p
∗
/
ρ
∗
L
c^L=\sqrt{\gamma p^* / \rho^{*L}}
c L = γ p ∗ / ρ ∗ L
關於Riemann不變量,其實是由1維Euler方程作特徵分析所推導出來的,即有兩個特徵線
d
x
/
d
t
=
u
+
c
dx/dt=u+c
d x / d t = u + c 和
d
x
/
d
t
=
u
−
c
dx/dt=u-c
d x / d t = u − c ,在這倆特徵線上Riemann量
R
1
R_1
R 1 和
R
2
R_2
R 2 保持不變,即
{
R
1
=
u
+
2
c
γ
−
1
=
c
o
n
s
t
a
t
d
x
d
t
=
u
+
c
R
2
=
u
−
2
c
γ
−
1
=
c
o
n
s
t
a
t
d
x
d
t
=
u
−
c
\begin{cases} \displaystyle R_1=u+\frac{2c}{\gamma-1}=const & & & & at \quad \displaystyle \frac{dx}{dt}=u+c \\ \\ \displaystyle R_2=u-\frac{2c}{\gamma-1}=const & & & & at \quad \displaystyle \frac{dx}{dt}=u-c \end{cases}
⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎧ R 1 = u + γ − 1 2 c = c o n s t R 2 = u − γ − 1 2 c = c o n s t a t d t d x = u + c a t d t d x = u − c
對於狀況1而言,這裏藍色是特徵線1,向右傳播,紅色是特徵線2,向左傳播。那麼,在藍線上(顯然在時空圖上,它能夠從1區穿過5區穿過3區),都有
R
1
爲
常
數
R_1爲常數
R 1 爲 常 數 ,故而,有式(19)存在。
式(15)-(19)共5個方程,5個未知數
Z
2
Z_2
Z 2 、
u
∗
u^*
u ∗ 、
p
∗
p^*
p ∗ 、
ρ
∗
L
\rho^{*L}
ρ ∗ L 和
ρ
∗
R
\rho^{*R}
ρ ∗ R ,比狀況1少了個
Z
1
Z_1
Z 1 ,可解。
由式(18)(19)能夠推導出,
u
∗
u^*
u ∗ 和
p
∗
p^*
p ∗ 的關係:
u
∗
=
u
1
−
2
c
1
γ
−
1
[
(
p
∗
p
1
)
γ
−
1
2
γ
−
1
]
=
u
1
−
f
(
p
∗
,
p
1
,
ρ
1
)
(
20
)
u^*=u_1-\frac{2c_1}{\gamma-1}\left[\left(\frac{p^*}{p_1}\right)^{\frac{\gamma-1}{2\gamma}}-1\right] =u_1-f(p^*,p_1,\rho_1) \quad (20)
u ∗ = u 1 − γ − 1 2 c 1 [ ( p 1 p ∗ ) 2 γ γ − 1 − 1 ] = u 1 − f ( p ∗ , p 1 , ρ 1 ) ( 2 0 )
與狀況1同樣的,從2-4兩區關係式中能夠推出
u
∗
u^*
u ∗ 和
p
∗
p^*
p ∗ 的關係式(13),將其與上式結合起來,即可消去
u
∗
u^*
u ∗ ,獲得僅包含未知量
p
∗
p^*
p ∗ 的方程,一樣能夠採用數值方法來求出
p
∗
p^*
p ∗ 。
爲方便計,能夠將激波和膨脹波的速度壓力關係寫成統一的表達形式:
左波(激波或膨脹波)
u
∗
=
u
1
−
f
(
p
∗
,
p
1
,
ρ
1
)
u^*=u_1-f(p^*,p_1,\rho_1)
u ∗ = u 1 − f ( p ∗ , p 1 , ρ 1 )
右波(激波或膨脹波)
u
∗
=
u
2
+
f
(
p
∗
,
p
2
,
ρ
2
)
u^*=u_2+f(p^*,p_2,\rho_2)
u ∗ = u 2 + f ( p ∗ , p 2 , ρ 2 )
其中,函數
f
(
p
∗
,
p
i
,
ρ
i
)
f(p^*,p_i,\rho_i)
f ( p ∗ , p i , ρ i ) 爲:
f
(
p
∗
,
p
i
,
ρ
i
)
=
{
p
∗
−
p
i
ρ
i
c
i
γ
+
1
2
γ
p
∗
p
i
+
γ
−
1
2
γ
p
∗
>
p
i
激
波
2
c
i
γ
−
1
[
(
p
∗
p
i
)
γ
−
1
2
γ
−
1
]
p
∗
<
p
i
膨
脹
波
f(p^*,p_i,\rho_i)=\begin{cases} \displaystyle \frac{p^*-p_i}{\rho_i c_i \sqrt{\displaystyle \frac{\gamma+1}{2\gamma}\frac{p^*}{p_i}+\frac{\gamma-1}{2\gamma}}} & & &p^*>p_i & 激波 \\ \\ \displaystyle \frac{2c_i}{\gamma-1}\left[\left(\frac{p^*}{p_i}\right)^{\frac{\gamma-1}{2\gamma}}-1\right] & & & p^*<p_i & 膨脹波 \end{cases}
f ( p ∗ , p i , ρ i ) = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ ρ i c i 2 γ γ + 1 p i p ∗ + 2 γ γ − 1
p ∗ − p i γ − 1 2 c i [ ( p i p ∗ ) 2 γ γ − 1 − 1 ] p ∗ > p i p ∗ < p i 激 波 膨 脹 波 獲得關於壓力
p
∗
p^*
p ∗ 的方程
u
1
−
u
2
=
f
(
p
∗
,
p
1
,
ρ
1
)
+
f
(
p
∗
,
p
2
,
ρ
2
)
≡
F
(
p
∗
)
u_1 - u_2 =f(p^*,p_1,\rho_1) + f(p^*,p_2,\rho_2) \equiv F(p^*)
u 1 − u 2 = f ( p ∗ , p 1 , ρ 1 ) + f ( p ∗ , p 2 , ρ 2 ) ≡ F ( p ∗ )
採用數值方法求解便可得出
p
∗
p^*
p ∗ ,而後能夠算得
u
∗
u^*
u ∗ ,跟狀況1同樣,再由式(11)來算出
Z
2
Z_2
Z 2 (下標1替換爲2便可),最後用式(8)算出
ρ
∗
R
\rho^{*R}
ρ ∗ R (下標1替換爲2便可),而
ρ
∗
L
\rho^{*L}
ρ ∗ L 的計算能夠經過式(18)求出:
ρ
∗
L
=
ρ
1
(
p
∗
p
1
)
1
γ
\displaystyle \rho^{*L}=\rho_1 \left(\frac{p^*}{p_1}\right)^{\frac{1}{\gamma}}
ρ ∗ L = ρ 1 ( p 1 p ∗ ) γ 1
至此,5個未知數
Z
2
Z_2
Z 2 、
u
∗
u^*
u ∗ 、
p
∗
p^*
p ∗ 、
ρ
∗
L
\rho^{*L}
ρ ∗ L 和
ρ
∗
R
\rho^{*R}
ρ ∗ R 都求出來了,接下來求膨脹波內部的物理量。
先看膨脹波的邊界範圍,膨脹波向左傳播,因此波頭的傳播速度爲
Z
1
h
e
a
d
=
u
1
−
c
1
Z_{1head}=u_1-c_1
Z 1 h e a d = u 1 − c 1 ,波尾的傳播速度爲
Z
1
t
a
i
l
=
u
∗
−
c
∗
L
Z_{1tail}=u^*-c^{*L}
Z 1 t a i l = u ∗ − c ∗ L ,那麼在t時刻,波頭位於
x
=
(
u
1
−
c
1
)
t
x=(u_1-c_1)t
x = ( u 1 − c 1 ) t ,波尾位於
x
=
(
u
∗
−
c
∗
L
)
t
x=(u^*-c^{*L})t
x = ( u ∗ − c ∗ L ) t 位置。
膨脹波內部的物理量,利用特徵相容關係計算,紅線爲從
x
=
0
x=0
x = 0 處發出的左行特徵線
d
x
/
d
t
=
u
−
c
dx/dt=u-c
d x / d t = u − c ,故其位置在t時刻爲:
x
/
t
=
u
−
c
x/t=u-c
x / t = u − c
而該位置也可由另一條特徵線藍線在0時刻的位置上右行而來,即特徵線
d
x
/
d
t
=
u
+
c
dx/dt=u+c
d x / d t = u + c ,其上物理量知足
R
2
R_2
R 2 不變量,即:
u
1
+
2
c
1
γ
−
1
=
u
+
2
c
γ
−
1
\displaystyle u_1+\frac{2c_1}{\gamma-1}=u+\frac{2c}{\gamma-1}
u 1 + γ − 1 2 c 1 = u + γ − 1 2 c
聯立這倆式子,能夠求出
u
u
u 和
c
c
c 來,即
{
c
(
x
,
t
)
=
γ
−
1
γ
+
1
(
u
1
−
x
t
)
+
2
c
1
γ
−
1
(
21
)
u
(
x
,
t
)
=
c
+
x
/
t
(
22
)
\begin{cases} \displaystyle c(x,t)=\frac{\gamma-1}{\gamma+1}\left(u_1-\frac{x}{t}\right)+\frac{2c_1}{\gamma-1}& (21) \\ \displaystyle u(x,t)=c+x/t & (22) \end{cases}
⎩ ⎨ ⎧ c ( x , t ) = γ + 1 γ − 1 ( u 1 − t x ) + γ − 1 2 c 1 u ( x , t ) = c + x / t ( 2 1 ) ( 2 2 )
而膨脹波內部的壓力和密度,則可由等熵關係來計算:
p
=
p
1
(
c
/
c
1
)
2
γ
γ
−
1
,
ρ
=
γ
p
/
c
2
p=p_1(c/c_1)^\frac{2\gamma}{\gamma-1},\quad \rho=\gamma p /c^2
p = p 1 ( c / c 1 ) γ − 1 2 γ , ρ = γ p / c 2
至此,膨脹波內部的物理量是位置
x
x
x 和時間
t
t
t 的函數,且都可算出,狀況2分析完畢。
2.3 右膨脹波的處理
其他狀況與此相似,只是在處理右膨脹波時稍有差別,對於右膨脹波而言,1-3兩區,知足Riemann不變量
R
2
R_2
R 2 (紅色特徵線上
d
x
/
d
t
=
u
−
c
dx/dt=u-c
d x / d t = u − c )的相等,即
{
p
∗
(
ρ
∗
R
)
γ
=
p
2
(
ρ
2
)
γ
u
2
−
2
c
2
γ
−
1
=
u
∗
−
2
c
R
γ
−
1
\begin{cases} \displaystyle \frac{p^*}{(\rho^{*R})^\gamma}=\frac{p_2}{(\rho_2)^\gamma} & \\ \\ \displaystyle u_2-\frac{2c_2}{\gamma-1}=u^*-\frac{2c^R}{\gamma-1} & \end{cases}
⎩ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎧ ( ρ ∗ R ) γ p ∗ = ( ρ 2 ) γ p 2 u 2 − γ − 1 2 c 2 = u ∗ − γ − 1 2 c R
因此,推出來的速度和壓力關係式爲
u
∗
=
u
2
+
f
(
p
∗
,
p
2
,
ρ
2
)
u^*=u_2+f(p^*,p_2,\rho_2)
u ∗ = u 2 + f ( p ∗ , p 2 , ρ 2 ) ,與以前是同樣的,即左波是
−
f
-f
− f ,右波是
+
f
+f
+ f ,形式仍舊是統一的。其求解
u
∗
u^*
u ∗ 、
p
∗
p^*
p ∗ 和
ρ
∗
R
\rho^{*R}
ρ ∗ R 的方法和前面也是同樣的。
只是在膨脹波的求解時,略有不一樣。
首先右膨脹波向右傳播,因此波頭的傳播速度爲
Z
2
h
e
a
d
=
u
2
+
c
2
Z_{2head}=u_2+c_2
Z 2 h e a d = u 2 + c 2 ,波尾的傳播速度爲
Z
2
t
a
i
l
=
u
∗
+
c
∗
R
Z_{2tail}=u^*+c^{*R}
Z 2 t a i l = u ∗ + c ∗ R ,那麼在t時刻,波頭位於
x
=
(
u
2
+
c
2
)
t
x=(u_2+c_2)t
x = ( u 2 + c 2 ) t ,波尾位於
x
=
(
u
∗
+
c
∗
R
)
t
x=(u^*+c^{*R})t
x = ( u ∗ + c ∗ R ) t 位置。
而後就是膨脹波內部物理量的計算,此時恰好與左膨脹波相反,利用特徵相容關係計算時,右膨脹波爲從
x
=
0
x=0
x = 0 處發出的右行 特徵線
d
x
/
d
t
=
u
+
c
dx/dt=u+c
d x / d t = u + c ,故其位置在t時刻爲:
x
/
t
=
u
+
c
x/t=u+c
x / t = u + c
而該位置也可由另一條特徵線在0時刻的位置上左行 而來,即特徵線
d
x
/
d
t
=
u
−
c
dx/dt=u-c
d x / d t = u − c ,其上物理量知足
R
2
R_2
R 2 不變量,階:
u
2
−
2
c
2
γ
−
1
=
u
−
2
c
γ
−
1
\displaystyle u_2-\frac{2c_2}{\gamma-1}=u-\frac{2c}{\gamma-1}
u 2 − γ − 1 2 c 2 = u − γ − 1 2 c
聯立這倆式子,能夠求出
u
u
u 和
c
c
c 來,即,注意這裏的式子和左膨脹波在正負號上略有區分
{
c
(
x
,
t
)
=
−
γ
−
1
γ
+
1
(
u
2
−
x
t
)
+
2
c
2
γ
−
1
u
(
x
,
t
)
=
−
c
+
x
/
t
\begin{cases} \displaystyle c(x,t)=-\frac{\gamma-1}{\gamma+1}\left(u_2-\frac{x}{t}\right)+\frac{2c_2}{\gamma-1} \\ \displaystyle u(x,t)=-c+x/t \end{cases}
⎩ ⎨ ⎧ c ( x , t ) = − γ + 1 γ − 1 ( u 2 − t x ) + γ − 1 2 c 2 u ( x , t ) = − c + x / t
而膨脹波內部的密度與壓力的計算,仍是用等熵關係,和左膨脹波時同樣的,再也不贅述。
3 Riemann問題的具體求解步驟
爲便於程序實現,將Riemann問題的上述求解思路的具體步驟彙總以下
已知量爲
u
1
u_1
u 1 、
ρ
1
\rho_1
ρ 1 、
p
1
p_1
p 1 ,
u
2
u_2
u 2 、
ρ
2
\rho_2
ρ 2 、
p
2
p_2
p 2 ,以及時刻
t
t
t 。
判斷可能出現的狀況(五種狀況之一) 1.1. 定義函數
f
(
p
∗
,
p
1
,
ρ
1
)
+
f
(
p
∗
,
p
2
,
ρ
2
)
≡
F
(
p
∗
)
f(p^*,p_1,\rho_1) + f(p^*,p_2,\rho_2) \equiv F(p^*)
f ( p ∗ , p 1 , ρ 1 ) + f ( p ∗ , p 2 , ρ 2 ) ≡ F ( p ∗ ) 其中,函數
f
(
p
∗
,
p
i
,
ρ
i
)
f(p^*,p_i,\rho_i)
f ( p ∗ , p i , ρ i ) 爲:
f
(
p
∗
,
p
i
,
ρ
i
)
=
{
p
∗
−
p
i
ρ
i
c
i
γ
+
1
2
γ
p
∗
p
i
+
γ
−
1
2
γ
p
∗
>
p
i
激
波
2
c
i
γ
−
1
[
(
p
∗
p
i
)
γ
−
1
2
γ
−
1
]
p
∗
<
p
i
膨
脹
波
f(p^*,p_i,\rho_i)=\begin{cases} \displaystyle \frac{p^*-p_i}{\rho_i c_i \sqrt{\displaystyle \frac{\gamma+1}{2\gamma}\frac{p^*}{p_i}+\frac{\gamma-1}{2\gamma}}} & & &p^*>p_i & 激波 \\ \\ \displaystyle \frac{2c_i}{\gamma-1}\left[\left(\frac{p^*}{p_i}\right)^{\frac{\gamma-1}{2\gamma}}-1\right] & & & p^*<p_i & 膨脹波 \end{cases}
f ( p ∗ , p i , ρ i ) = ⎩ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ ρ i c i 2 γ γ + 1 p i p ∗ + 2 γ γ − 1
p ∗ − p i γ − 1 2 c i [ ( p i p ∗ ) 2 γ γ − 1 − 1 ] p ∗ > p i p ∗ < p i 激 波 膨 脹 波 1.2. 判斷屬於哪一種狀況 計算出
F
(
0
)
F(0)
F ( 0 ) 、
F
(
p
1
)
F(p_1)
F ( p 1 ) 、
F
(
p
2
)
F(p_2)
F ( p 2 ) ,根據
u
1
−
u
2
u_1-u_2
u 1 − u 2 的大小進行狀況判斷屬於哪一種類型。
求解中心區域的壓力和速度 採用二分法或Newton法求解方程,獲取壓力
p
∗
p^*
p ∗ :
u
1
−
u
2
=
F
(
p
∗
)
=
f
(
p
∗
,
p
1
,
ρ
1
)
+
f
(
p
∗
,
p
2
,
ρ
2
)
u_1 - u_2 = F(p^*) = f(p^*,p_1,\rho_1) + f(p^*,p_2,\rho_2)
u 1 − u 2 = F ( p ∗ ) = f ( p ∗ , p 1 , ρ 1 ) + f ( p ∗ , p 2 , ρ 2 ) 再由下式算出速度
u
∗
u^*
u ∗
u
∗
=
1
2
[
u
1
+
u
2
−
f
(
p
∗
,
p
1
,
ρ
1
)
+
f
(
p
∗
,
p
2
,
ρ
2
)
]
u^*=\frac{1}{2}[u_1 + u_2 - f(p^*,p_1,\rho_1) + f(p^*,p_2,\rho_2)]
u ∗ = 2 1 [ u 1 + u 2 − f ( p ∗ , p 1 , ρ 1 ) + f ( p ∗ , p 2 , ρ 2 ) ]
求解中心區域接觸間斷兩側密度及左右波的傳播速度 3.1. 左波爲激波的狀況(狀況1和3) 左激波運動速度
Z
1
Z_1
Z 1
Z
1
=
u
1
−
p
∗
−
p
1
ρ
1
(
u
1
−
u
∗
)
Z_1 = u_1-\frac{p^* - p_1}{\rho_1(u_1-u^*)}
Z 1 = u 1 − ρ 1 ( u 1 − u ∗ ) p ∗ − p 1 中心區域左側密度
ρ
∗
L
\rho^{*L}
ρ ∗ L
ρ
∗
L
=
ρ
1
(
u
1
−
Z
1
)
(
u
∗
−
Z
1
)
\displaystyle \rho^{*L} = \frac{\rho_1(u_1-Z_1)}{(u^*-Z_1)}
ρ ∗ L = ( u ∗ − Z 1 ) ρ 1 ( u 1 − Z 1 ) 3.2. 左波爲膨脹波的狀況(狀況2,4,5) 波頭速度
Z
1
h
e
a
d
Z_{1head}
Z 1 h e a d 和波尾速度
Z
1
t
a
i
l
Z_{1tail}
Z 1 t a i l
Z
1
h
e
a
d
=
u
1
−
c
1
,
Z
1
t
a
i
l
=
u
∗
−
c
∗
L
Z_{1head}=u_1-c_1, \quad Z_{1tail}=u^*-c^{*L}
Z 1 h e a d = u 1 − c 1 , Z 1 t a i l = u ∗ − c ∗ L 注意對於狀況5,其內部爲真空,沒法計算聲速
c
∗
L
c^{*L}
c ∗ L ,其膨脹波的波尾速度爲(這個不是很肯定~)
Z
1
t
a
i
l
_
c
a
s
e
5
=
u
1
−
2
c
1
γ
−
1
Z_{1tail\_case5}=u_1-\frac{2c_1}{\gamma-1}
Z 1 t a i l _ c a s e 5 = u 1 − γ − 1 2 c 1 膨脹波內物理量的計算(
Z
1
h
e
a
d
t
<
x
<
Z
1
t
a
i
l
t
Z_{1head}t<x<Z_{1tail}t
Z 1 h e a d t < x < Z 1 t a i l t )
{
c
(
x
,
t
)
=
γ
−
1
γ
+
1
(
u
1
−
x
t
)
+
2
c
1
γ
−
1
u
(
x
,
t
)
=
c
+
x
/
t
\begin{cases} \displaystyle c(x,t)=\frac{\gamma-1}{\gamma+1}\left(u_1-\frac{x}{t}\right)+\frac{2c_1}{\gamma-1} \\ \displaystyle u(x,t)=c+x/t \end{cases}
⎩ ⎨ ⎧ c ( x , t ) = γ + 1 γ − 1 ( u 1 − t x ) + γ − 1 2 c 1 u ( x , t ) = c + x / t 而膨脹波內部的壓力和密度,則可由等熵關係來計算:
p
=
p
1
(
c
/
c
1
)
2
γ
γ
−
1
,
ρ
=
γ
p
/
c
2
p=p_1(c/c_1)^\frac{2\gamma}{\gamma-1},\quad \rho=\gamma p /c^2
p = p 1 ( c / c 1 ) γ − 1 2 γ , ρ = γ p / c 2 3.3. 右波爲激波的狀況(狀況1,2) 右激波運動速度
Z
2
Z_2
Z 2
Z
2
=
u
2
−
p
∗
−
p
2
ρ
2
(
u
2
−
u
∗
)
Z_2 = u_2-\frac{p^* - p_2}{\rho_2(u_2-u^*)}
Z 2 = u 2 − ρ 2 ( u 2 − u ∗ ) p ∗ − p 2 中心區域左側密度
ρ
∗
R
\rho^{*R}
ρ ∗ R
ρ
∗
R
=
ρ
2
(
u
2
−
Z
2
)
(
u
∗
−
Z
2
)
\displaystyle \rho^{*R} = \frac{\rho_2(u_2-Z_2)}{(u^*-Z_2)}
ρ ∗ R = ( u ∗ − Z 2 ) ρ 2 ( u 2 − Z 2 ) 3.4. 右波爲膨脹波的狀況(狀況3,4,5) 波頭速度
Z
2
h
e
a
d
Z_{2head}
Z 2 h e a d 和波尾速度
Z
2
t
a
i
l
Z_{2tail}
Z 2 t a i l
Z
2
h
e
a
d
=
u
2
+
c
2
,
Z
2
t
a
i
l
=
u
∗
+
c
∗
R
Z_{2head}=u_2+c_2, \quad Z_{2tail}=u^*+c^{*R}
Z 2 h e a d = u 2 + c 2 , Z 2 t a i l = u ∗ + c ∗ R 注意對於狀況5,其內部爲真空,沒法計算聲速
c
∗
R
c^{*R}
c ∗ R ,其膨脹波的波尾速度爲(這個不是很肯定~)
Z
2
t
a
i
l
_
c
a
s
e
5
=
u
2
+
2
c
2
γ
−
1
Z_{2tail\_case5}=u_2+\frac{2c_2}{\gamma-1}
Z 2 t a i l _ c a s e 5 = u 2 + γ − 1 2 c 2 膨脹波內物理量的計算(
Z
2
t
a
i
l
t
<
x
<
Z
2
h
e
a
d
t
Z_{2tail}t<x<Z_{2head}t
Z 2 t a i l t < x < Z 2 h e a d t )
{
c
(
x
,
t
)
=
−
γ
−
1
γ
+
1
(
u
2
−
x
t
)
+
2
c
2
γ
−
1
u
(
x
,
t
)
=
−
c
+
x
/
t
\begin{cases} \displaystyle c(x,t)=-\frac{\gamma-1}{\gamma+1}\left(u_2-\frac{x}{t}\right)+\frac{2c_2}{\gamma-1} \\ \displaystyle u(x,t)=-c+x/t \end{cases}
⎩ ⎨ ⎧ c ( x , t ) = − γ + 1 γ − 1 ( u 2 − t x ) + γ − 1 2 c 2 u ( x , t ) = − c + x / t 而膨脹波內部的壓力和密度,則可由等熵關係來計算:
p
=
p
2
(
c
/
c
2
)
2
γ
γ
−
1
,
ρ
=
γ
p
/
c
2
p=p_2(c/c_2)^\frac{2\gamma}{\gamma-1},\quad \rho=\gamma p /c^2
p = p 2 ( c / c 2 ) γ − 1 2 γ , ρ = γ p / c 2
生成數據,繪製圖形,展現結果。
4 程序實現
程序採用matlab編寫,較好實現和理解。
f
(
p
∗
,
p
i
,
ρ
i
)
f(p^*,p_i,\rho_i)
f ( p ∗ , p i , ρ i ) 函數
function [ f ] = P01_fPsPiRi ( Ps, Pi, Ri )
% P01_FPSP1R1 f ( Ps, Pi, Rhoi) 函數
% 激波(膨脹波)一側已知P和Rho,另外一側Ps,求取f的函數
gamma = 1.4 ; % 理想氣體比熱比
Ci = sqrt ( gamma * Pi / Ri) ; % 聲速
if ( Ps > Pi)
f = ( Ps - Pi) / ( Ri * Ci) / . . .
sqrt ( ( gamma + 1 ) / ( 2 * gamma) * ( Ps / Pi) + . . .
( gamma - 1 ) / ( 2 * gamma) ) ;
end
if ( Ps < Pi)
f = 2 * Ci / ( gamma - 1 ) * . . .
( ( Ps / Pi) ^ ( ( gamma - 1 ) / ( 2 * gamma) ) - 1 ) ;
end
if ( Ps == Pi)
f = 0 ;
end
end
判斷狀況的函數
function [ idxCase ] = P02_judgeCase ( Fp0, Fp1, Fp2, U1, U2, P1, P2 )
% P02_JUDGECASE 判斷屬於哪一種狀況,依據F ( 0 ) , F ( p1) , F ( p2) , 根據u2 - u1大小來判斷
% 此處顯示詳細說明
U1_U2 = U1 - U2;
idxCase = 0 ; % 狀況標緻
% p2>= p1, U1- U2對應區間
% -- 5 -- Fp0-- 4 -- Fp1-- 3 -- Fp2-- 1 -- ->
if P2 >= P1
if ( U1_U2) >= Fp2
idxCase = 1 ;
elseif ( U1_U2) >= Fp1 && ( U1_U2) < Fp2
idxCase = 3 ;
elseif ( U1_U2) >= Fp0 && ( U1_U2) < Fp1
idxCase = 4 ;
elseif ( U1_U2) < Fp0
idxCase = 5 ;
end
end
% p2<= p1, U1- U2對應區間
% -- 5 -- Fp0-- 4 -- Fp2-- 2 -- Fp1-- 1 -- ->
if P2 <= P1
if ( U1_U2) >= Fp1
idxCase = 1 ;
elseif ( U1_U2) >= Fp2 && ( U1_U2) < Fp1
idxCase = 2 ;
elseif ( U1_U2) >= Fp0 && ( U1_U2) < Fp2
idxCase = 4 ;
elseif ( U1_U2) < Fp0
idxCase = 5 ;
end
end
二分法求解中間區域壓力
p
∗
p^*
p ∗ 的函數,順道把
u
∗
u^*
u ∗ 一併計算好了
function [ Ps, Us ] = P03_solvePs ( U1, P1, R1, U2, P2, R2 )
% P03_SOLVEPS 求解中心區的壓力和速度
% 解方程 u1 - u2 = F ( p* ) = f ( p* , p1, rho1) + f ( p* , p2, rho2)
% 此處顯示詳細說明
PSpn = [ 0 , 1e10 ] ; % 壓力必定是正值的,給個足夠大的範圍吧,0 - 10000 MPa
U1_U2 = U1 - U2;
for iter = 1 : 1000
Ps = mean ( PSpn) ;
Fps = P01_fPsPiRi ( Ps, P1, R1) + P01_fPsPiRi ( Ps, P2, R2) ;
if U1_U2 == Fps
return ;
end
if U1_U2 > Fps
PSpn = [ Ps, PSpn ( 2 ) ] ;
else
PSpn = [ PSpn ( 1 ) , Ps] ;
end
if PSpn ( 2 ) - PSpn ( 1 ) < 1e-10
Ps = mean ( PSpn) ;
break ;
end
end
Us = 0.5 * ( U1 + U2 + P01_fPsPiRi ( Ps, P2, R2) - P01_fPsPiRi ( Ps, P1, R1) ) ;
end
左激波狀況下計算激波運行速度
Z
1
Z_1
Z 1 和中間區域左側密度
ρ
∗
L
\rho^{*L}
ρ ∗ L 的函數
function [ R1s, Z1 ] = P04_calcShockR1sZ1 ( P1, U1, R1, Ps, Us, gamma )
% P04_CALCRISZI 此處顯示有關此函數的摘要
% 此處顯示詳細說明
Z1 = U1 - ( Ps - P1) / ( R1 * ( U1 - Us) ) ;
R1s = R1 * ( U1 - Z1) / ( Us - Z1) ;
end
左膨脹波狀況下計算波頭波尾運行速度
Z
1
h
e
a
d
Z_{1head}
Z 1 h e a d 和
Z
1
t
a
i
l
Z_{1tail}
Z 1 t a i l ,以及中間區域左側密度
ρ
∗
L
\rho^{*L}
ρ ∗ L 的函數
function [ R1s, Z1Head, Z1Tail ] = . . .
P05_calcExpanR1sZ1 ( P1, U1, R1, Ps, Us, gamma, idxCase )
% P05_CALCEXPANRISZI 此處顯示有關此函數的摘要
% 此處顯示詳細說明
C1 = sqrt ( gamma * P1 / R1) ;
Z1Head = U1 - C1;
if ( idxCase ~ = 5 )
R1s = R1 * ( Ps / P1) ^ ( 1 / gamma) ;
C1s = sqrt ( gamma * Ps / R1s) ;
Z1Tail = Us - C1s;
end
% 對於狀況5 ,中心區爲真空,聲速c1* 無從計算,改由該式計算:
if ( idxCase == 5 )
% 感受好像不對……………………
R1s = 0 ; % 真空
Z1Tail = U1 - 2 * C1 / ( gamma - 1 ) ;
end
end
右激波狀況下計算激波運行速度
Z
2
Z_2
Z 2 和中間區域右側密度
ρ
∗
R
\rho^{*R}
ρ ∗ R 的函數,這個函數實際上和左激波的徹底同樣,不必單獨寫一個出來的
function [ R2s, Z2 ] = P06_calcShockR2sZ2 ( P2, U2, R2, Ps, Us )
% P04_CALCSHOCKR2SZ2 此處顯示有關此函數的摘要
% 此處顯示詳細說明
Z2 = U2 - ( Ps - P2) / ( R2 * ( U2 - Us) ) ;
R2s = R2 * ( U2 - Z2) / ( Us - Z2) ;
end
右膨脹波狀況下計算波頭波尾運行速度
Z
2
h
e
a
d
Z_{2head}
Z 2 h e a d 和
Z
2
t
a
i
l
Z_{2tail}
Z 2 t a i l ,以及中間區域左側密度
ρ
∗
R
\rho^{*R}
ρ ∗ R 的函數
function [ R2s, Z2Head, Z2Tail ] = . . .
P07_calcExpanR2sZ2 ( P2, U2, R2, Ps, Us, gamma, idxCase )
% P07_CALCEXPANR2SZ2 此處顯示有關此函數的摘要
% 此處顯示詳細說明
C2 = sqrt ( gamma * P2 / R2) ;
Z2Head = U2 + C2;
if ( idxCase ~ = 5 )
R2s = R2 * ( Ps / P2) ^ ( 1 / gamma) ;
C2s = sqrt ( gamma * Ps / R2s) ;
Z2Tail = Us + C2s;
end
% 對於狀況5 ,中心區爲真空,聲速c2* 無從計算,改由該式計算:
if ( idxCase == 5 )
% 感受不太對……………………
R2s = 0 ; % 真空
Z2Tail = U2 + 2 * C2 / ( gamma - 1 ) ;
end
end
左膨脹波內部狀態值