学习自F. Moukalled, L. Mangani, M. Darwish所著The Finite Volume Method in Computational Fluid Dynamics - An Advanced Introduction with OpenFOAM and Matlab Chapter 11 Discretization of the Convection Termhtml
在前面的第8-9章,我们详细讲解了在正交、非正交、结构、非结构网格上的通有稳态扩散方程的离散方法。本章我们讲讲CFD的控制方程中另外一个很是重要的项,对流项的离散方法。最初,跟扩散项中所采用的离散方式同样,对流项也是对物理量采用对称和线性分布(廓线profile)假设来离散的,然而,这种分布廓线有很大缺陷,促令人们提出了使用迎风廓线来修正其缺陷。尽管迎风廓线能够获得物理上说得通的结果,然而其被代表是高度diffusive(扩散?)的,致使结果只有一阶精度。为了提升精度,提出了偏迎风的高阶廓线。离散偏差却是下降了,可是高阶廓线却引出了另外一种形式的偏差,dispersion偏差(色散?),关于这种偏差的处理方法将放到下一章讲解。还有一点须要说明,咱们假设驱动扩散项的流场,是事先已知的。那么流场的计算将放到后续章节里详解(可能你已经猜到了,由于离散方程的系数矩阵自己就是与流场量相关的,哪怕是定常流场,也须要迭代计算,而不可压缩中还有压力速度的耦合问题,还得构造解耦算法来折腾呢)。web
1 引言
尽管对流项看起来很简单,然而其离散方法却很是麻烦,以致于人们研究了30来年。这些工做给影响其离散的问题照亮了道路,也催生了大量的离散格式。鉴于文献的数量是如此庞大,我们不得不用两个章节来分析它们。本章将引入基本概念和高阶(High Order,缩写为HO)偏迎风格式。下一章会讲到对流项的界限(bounding)问题,其有助于发展高阶精度的无振荡对流格式,即,所谓的高分辨率(High Resolution(HR))格式。算法
为清晰起见,新概念的引入将首先在1维网格上进行,而后再扩展到多维非正交网格上。本章将用1维对流-扩散问题的离散做为开端,经过稳定性判据,代表中心差分算法的缺陷。随后,代表迎风格式可经过该稳定性测试。接着解释了低阶格式的数值diffusion(扩散)偏差和高阶格式的数值dispersion(色散)偏差。而对高分辨率格式的处理则放到下一章进行讲解。架构
2 稳态一维对流和扩散
为便于说明问题,给出一个很是简单的一维定常对流-扩散方程,其控制方程为
d
(
ρ
u
ϕ
)
d
x
−
d
d
x
(
Γ
ϕ
d
ϕ
d
x
)
=
0
\frac{d(\rho u \phi)}{d x} - \frac{d}{dx}\left( \Gamma^{\phi}\frac{d \phi}{d x} \right)=0
d x d ( ρ u ϕ ) − d x d ( Γ ϕ d x d ϕ ) = 0 万分幸运的是,这个问题存在着解析解,因此它一般用做基准算例来跟各类各样的数值格式作对照。app
2.1 解析解
若是截面是不变的,那么这个稳态1维问题的连续方程是
d
(
ρ
u
)
d
x
=
0
\frac{d (\rho u)}{d x}=0
d x d ( ρ u ) = 0 这代表
ρ
u
\rho u
ρ u 是定值,那么对流扩散方程变成了
ρ
u
d
ϕ
d
x
−
d
d
x
(
Γ
ϕ
d
ϕ
d
x
)
=
0
\rho u \frac{d \phi}{d x} - \frac{d}{dx}\left( \Gamma^{\phi}\frac{d \phi}{d x} \right)=0
ρ u d x d ϕ − d x d ( Γ ϕ d x d ϕ ) = 0 对
x
x
x 积分,得
ρ
u
ϕ
−
Γ
ϕ
d
ϕ
d
x
=
c
1
\rho u \phi - \Gamma^{\phi}\frac{d \phi}{d x}=c_1
ρ u ϕ − Γ ϕ d x d ϕ = c 1
c
1
c_1
c 1 为积分常数,由边界条件来定。上面这个方程进一步写成
d
ϕ
d
x
=
ρ
u
Γ
ϕ
ϕ
−
c
1
Γ
ϕ
\frac{d \phi}{d x}=\frac{\rho u}{ \Gamma^{\phi}} \phi - \frac{c_1}{ \Gamma^{\phi}}
d x d ϕ = Γ ϕ ρ u ϕ − Γ ϕ c 1 引入变量替换,定义
Φ
\Phi
Φ
Φ
=
ρ
u
Γ
ϕ
ϕ
−
c
1
Γ
ϕ
\Phi=\frac{\rho u}{ \Gamma^{\phi}} \phi - \frac{c_1}{ \Gamma^{\phi}}
Φ = Γ ϕ ρ u ϕ − Γ ϕ c 1 则方程变为
d
Φ
d
x
=
ρ
u
Γ
ϕ
Φ
\frac{d\Phi}{dx}=\frac{\rho u}{\Gamma^\phi}\Phi
d x d Φ = Γ ϕ ρ u Φ 即
d
Φ
Φ
=
ρ
u
Γ
ϕ
d
x
\frac{d\Phi}{\Phi}=\frac{\rho u}{\Gamma^\phi} dx
Φ d Φ = Γ ϕ ρ u d x 两侧同时积分,得
L
n
(
Φ
)
=
ρ
u
Γ
ϕ
x
+
c
3
Ln(\Phi)=\frac{\rho u}{\Gamma^\phi} x + c_3
L n ( Φ ) = Γ ϕ ρ u x + c 3 其中
c
3
c_3
c 3 为积分常数,进一步写为
Φ
=
c
2
e
ρ
u
Γ
ϕ
x
\Phi = c_2 e^{\frac{\rho u}{\Gamma^\phi} x }
Φ = c 2 e Γ ϕ ρ u x 其中
c
2
=
e
c
3
c_2=e^{c_3}
c 2 = e c 3 为积分常数,再把
Φ
\Phi
Φ 替换回最初的变量
ϕ
\phi
ϕ ,获得解析解
ϕ
=
c
2
Γ
ϕ
e
ρ
u
Γ
ϕ
x
+
c
1
ρ
u
\phi=\frac{c_2\Gamma^\phi e^{\frac{\rho u}{\Gamma^\phi} x }+ c_1}{\rho u}
ϕ = ρ u c 2 Γ ϕ e Γ ϕ ρ u x + c 1 一维问题的网格剖分以下图所示 框架
以上图的
W
W
W 和
E
E
E 两节点之间的部分为例,边界条件为
{
ϕ
=
ϕ
W
a
t
x
=
x
W
ϕ
=
ϕ
E
a
t
x
=
x
E
\begin{cases} \phi=\phi_W&at&x=x_W \\ \phi=\phi_E&at&x=x_E \end{cases}
{ ϕ = ϕ W ϕ = ϕ E a t a t x = x W x = x E 可根据该边界条件求得积分常数
c
1
c_1
c 1 和
c
2
c_2
c 2 ,从而得到解析解为
ϕ
−
ϕ
W
ϕ
E
−
ϕ
W
=
e
P
e
L
x
−
x
W
L
−
1
e
P
e
L
−
1
\frac{\phi-\phi_W}{\phi_E-\phi_W}=\frac{e^{Pe_L\frac{x-x_W}{L}}-1}{e^{Pe_L}-1}
ϕ E − ϕ W ϕ − ϕ W = e P e L − 1 e P e L L x − x W − 1 其中
P
e
L
Pe_L
P e L 为Peclet数(基于长度
L
L
L ),表明了变量
ϕ
\phi
ϕ 的对流输运速率与扩散输运速率的比值,即
P
e
L
=
ρ
u
L
Γ
ϕ
L
=
x
E
−
x
W
Pe_L=\frac{\rho u L}{\Gamma^\phi}\quad\quad L = x_E-x_W
P e L = Γ ϕ ρ u L L = x E − x W 不一样的
P
e
L
Pe_L
P e L 下所获得的不一样结果以下图所示,可见,
P
e
L
=
0
Pe_L=0
P e L = 0 时对应的是纯扩散问题,
ϕ
\phi
ϕ 从
W
W
W 到
E
E
E 的变化是一条直线,而随着
P
e
L
Pe_L
P e L 的增大,对流输运速率所占比重愈来愈大,
ϕ
\phi
ϕ 从
W
W
W 到
E
E
E 的变化也逐渐变为了更加陡峭的廓线形式。 ide
2.2 数值解
在1维单元上对于1维对流扩散方程
d
(
ρ
u
ϕ
)
d
x
−
d
d
x
(
Γ
ϕ
d
ϕ
d
x
)
=
0
\displaystyle\frac{d(\rho u \phi)}{d x} - \frac{d}{dx}\left( \Gamma^{\phi}\frac{d \phi}{d x} \right)=0
d x d ( ρ u ϕ ) − d x d ( Γ ϕ d x d ϕ ) = 0 进行数值积分,得
∫
V
C
[
∇
⋅
(
ρ
v
ϕ
)
−
∇
⋅
(
Γ
ϕ
∇
ϕ
)
]
d
V
=
0
\int_{V_C}[\nabla\cdot(\rho\bold v\phi)-\nabla\cdot(\Gamma^\phi\nabla\phi)]dV=0
∫ V C [ ∇ ⋅ ( ρ v ϕ ) − ∇ ⋅ ( Γ ϕ ∇ ϕ ) ] d V = 0 其中
v
=
u
i
\bold v=u\bold i
v = u i 为速度矢量,守恒方程能够写成对流通量和扩散通量的形式,即
∫
V
C
∇
⋅
(
J
ϕ
,
C
+
J
ϕ
,
D
)
d
V
=
0
\int_{V_C}\nabla\cdot(\bold J^{\phi,C}+\bold J^{\phi,D})dV=0
∫ V C ∇ ⋅ ( J ϕ , C + J ϕ , D ) d V = 0 其中对流通量
J
ϕ
,
C
=
ρ
v
ϕ
\bold J^{\phi,C}=\rho\bold v\phi
J ϕ , C = ρ v ϕ ,扩散通量
J
ϕ
,
D
=
−
Γ
ϕ
∇
ϕ
\bold J^{\phi,D}=-\Gamma^\phi\nabla\phi
J ϕ , D = − Γ ϕ ∇ ϕ 。接下来使用散度定理,把体积分转化成面积分,即
∫
V
C
∇
⋅
(
J
ϕ
,
C
+
J
ϕ
,
D
)
d
V
=
∫
∂
V
C
(
J
ϕ
,
C
+
J
ϕ
,
D
)
⋅
d
S
=
∫
∂
V
C
(
ρ
u
ϕ
i
−
Γ
ϕ
d
ϕ
d
x
i
)
⋅
d
S
=
0
\int_{V_C}\nabla\cdot(\bold J^{\phi,C}+\bold J^{\phi,D})dV= \int_{\partial V_C}(\bold J^{\phi,C}+\bold J^{\phi,D})\cdot d\bold S= \int_{\partial V_C}\left(\rho u \phi \bold i-\Gamma^\phi \frac{d\phi}{dx}\bold i\right)\cdot d\bold S = 0
∫ V C ∇ ⋅ ( J ϕ , C + J ϕ , D ) d V = ∫ ∂ V C ( J ϕ , C + J ϕ , D ) ⋅ d S = ∫ ∂ V C ( ρ u ϕ i − Γ ϕ d x d ϕ i ) ⋅ d S = 0 将面积分用流过单元面的通量加和形式表示,即
∑
f
∼
n
b
(
C
)
(
ρ
u
ϕ
i
−
Γ
ϕ
d
ϕ
d
x
i
)
f
⋅
S
f
=
0
\sum_{f\sim nb(C)}\left(\rho u \phi \bold i-\Gamma^\phi \frac{d\phi}{dx}\bold i\right)_f\cdot \bold S_f=0
f ∼ n b ( C ) ∑ ( ρ u ϕ i − Γ ϕ d x d ϕ i ) f ⋅ S f = 0 注意,若是面积矢量
S
f
\bold S_f
S f 是沿着反方向的(
−
x
-x
− x 方向),那么它的符号是负的,对于恒定截面的状况,上式变为
[
(
ρ
u
Δ
y
ϕ
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
]
−
[
(
ρ
u
Δ
y
ϕ
)
w
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
=
0
\left[(\rho u \Delta y\phi)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e\right]- \left[(\rho u \Delta y\phi)_w-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right]=0
[ ( ρ u Δ y ϕ ) e − ( Γ ϕ d x d ϕ Δ y ) e ] − [ ( ρ u Δ y ϕ ) w − ( Γ ϕ d x d ϕ Δ y ) w ] = 0 单元面上的速度
u
u
u 是已知的(
u
e
,
u
w
u_e,u_w
u e , u w 已知),那些个梯度项(
(
d
ϕ
/
d
x
)
e
,
(
d
ϕ
/
d
x
)
w
({d\phi}/{dx})_e,({d\phi}/{dx})_w
( d ϕ / d x ) e , ( d ϕ / d x ) w )用以前讲过的离散方法能够获得。如今的问题是若是继续离散的话,面上的值
ϕ
e
\phi_e
ϕ e 和
ϕ
w
\phi_w
ϕ w 须要用邻近的节点值来获得,肯定这些面上值的方法就是文献中所谓的“对流格式 ”。svg
2.3 初步推导:中心差分格式(The Center Difference (CD) Scheme)
乍一看,好像没啥难的啊,就跟在扩散项离散中采用的线性插值廓线同样,来作这个对流离散不就行了么,即,在给定面好比右侧面
e
e
e 上的
ϕ
\phi
ϕ 值的计算,能够假设变量的空间分布为
ϕ
(
x
)
=
k
0
+
k
1
(
1
−
x
C
)
\phi(x)=k_0+k_1(1-x_C)
ϕ ( x ) = k 0 + k 1 ( 1 − x C ) 其中的
k
0
k_0
k 0 和
k
1
k_1
k 1 为系数,使用
ϕ
=
ϕ
E
,
x
=
x
E
\phi=\phi_E,x=x_E
ϕ = ϕ E , x = x E 和
ϕ
=
ϕ
C
,
x
=
x
C
\phi=\phi_C,x=x_C
ϕ = ϕ C , x = x C ,可得
ϕ
e
=
ϕ
C
+
ϕ
E
−
ϕ
C
x
E
−
x
C
(
x
e
−
c
C
)
\phi_e=\phi_C+\frac{\phi_E-\phi_C}{x_E-x_C}(x_e-c_C)
ϕ e = ϕ C + x E − x C ϕ E − ϕ C ( x e − c C ) 这即是中心差分格式,其可经过Taylor展开并略去2阶以上的项来推出,即其有2阶精度。函数
在均匀网格上,该离散型式为
ϕ
e
=
ϕ
C
+
ϕ
E
2
\phi_e=\frac{\phi_C+\phi_E}{2}
ϕ e = 2 ϕ C + ϕ E 这样,对于上一小节最后获得的离散格式中,第1个中括号项
[
(
ρ
u
Δ
y
ϕ
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
]
\left[(\rho u \Delta y\phi)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e\right]
[ ( ρ u Δ y ϕ ) e − ( Γ ϕ d x d ϕ Δ y ) e ] 变为
[
(
ρ
u
Δ
y
ϕ
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
]
=
(
ρ
u
Δ
y
)
e
ϕ
C
+
ϕ
E
2
−
(
Γ
ϕ
Δ
y
δ
x
)
e
(
ϕ
E
−
ϕ
C
)
=
F
l
u
x
C
e
ϕ
C
+
F
l
u
x
F
e
ϕ
E
+
F
l
u
x
V
e
\begin{aligned} \left[(\rho u \Delta y\phi)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e\right] & = (\rho u \Delta y)_e\frac{\phi_C+\phi_E}{2}-\left(\Gamma^\phi \frac{\Delta y}{\delta x}\right)_e(\phi_E-\phi_C) \\ & = FluxC_e\phi_C+FluxF_e\phi_E+FluxV_e \end{aligned}
[ ( ρ u Δ y ϕ ) e − ( Γ ϕ d x d ϕ Δ y ) e ] = ( ρ u Δ y ) e 2 ϕ C + ϕ E − ( Γ ϕ δ x Δ y ) e ( ϕ E − ϕ C ) = F l u x C e ϕ C + F l u x F e ϕ E + F l u x V e 其中
F
l
u
x
C
e
=
Γ
e
ϕ
Δ
y
e
δ
x
e
+
(
ρ
u
Δ
y
)
e
2
F
l
u
x
F
e
=
−
Γ
e
ϕ
Δ
y
e
δ
x
e
+
(
ρ
u
Δ
y
)
e
2
F
l
u
x
V
e
=
0
\begin{aligned} & FluxC_e = \Gamma^\phi_e \frac{\Delta y_e}{\delta x_e}+\frac{(\rho u \Delta y)_e}{2} \\ & FluxF_e = -\Gamma^\phi_e \frac{\Delta y_e}{\delta x_e}+\frac{(\rho u \Delta y)_e}{2} \\ & FluxV_e = 0 \end{aligned}
F l u x C e = Γ e ϕ δ x e Δ y e + 2 ( ρ u Δ y ) e F l u x F e = − Γ e ϕ δ x e Δ y e + 2 ( ρ u Δ y ) e F l u x V e = 0 一样,第2个中括号项
−
[
(
ρ
u
Δ
y
ϕ
)
w
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
-\left[(\rho u \Delta y\phi)_w-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right]
− [ ( ρ u Δ y ϕ ) w − ( Γ ϕ d x d ϕ Δ y ) w ] 变为
−
[
(
ρ
u
Δ
y
ϕ
)
w
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
=
−
[
(
ρ
u
Δ
y
)
w
ϕ
C
+
ϕ
W
2
−
(
Γ
ϕ
Δ
y
δ
x
)
w
(
ϕ
C
−
ϕ
W
)
]
=
F
l
u
x
C
w
ϕ
C
+
F
l
u
x
F
w
ϕ
W
+
F
l
u
x
V
w
\begin{aligned} -\left[(\rho u \Delta y\phi)_w-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right] &= -\left[ (\rho u \Delta y)_w\frac{\phi_C+\phi_W}{2}-\left(\Gamma^\phi \frac{\Delta y}{\delta x}\right)_w(\phi_C-\phi_W) \right] \\ & = FluxC_w\phi_C+FluxF_w\phi_W+FluxV_w \end{aligned}
− [ ( ρ u Δ y ϕ ) w − ( Γ ϕ d x d ϕ Δ y ) w ] = − [ ( ρ u Δ y ) w 2 ϕ C + ϕ W − ( Γ ϕ δ x Δ y ) w ( ϕ C − ϕ W ) ] = F l u x C w ϕ C + F l u x F w ϕ W + F l u x V w 其中
F
l
u
x
C
w
=
Γ
w
ϕ
Δ
y
w
δ
x
w
−
(
ρ
u
Δ
y
)
w
2
F
l
u
x
F
w
=
−
Γ
w
ϕ
Δ
y
w
δ
x
w
−
(
ρ
u
Δ
y
)
w
2
F
l
u
x
V
w
=
0
\begin{aligned} & FluxC_w = \Gamma^\phi_w \frac{\Delta y_w}{\delta x_w}-\frac{(\rho u \Delta y)_w}{2} \\ & FluxF_w = -\Gamma^\phi_w \frac{\Delta y_w}{\delta x_w}-\frac{(\rho u \Delta y)_w}{2} \\ & FluxV_w = 0 \end{aligned}
F l u x C w = Γ w ϕ δ x w Δ y w − 2 ( ρ u Δ y ) w F l u x F w = − Γ w ϕ δ x w Δ y w − 2 ( ρ u Δ y ) w F l u x V w = 0 从而推得对流扩散方程的离散形式为
a
C
ϕ
C
+
a
E
ϕ
E
+
a
W
ϕ
W
=
0
a_C\phi_C+a_E\phi_E+a_W\phi_W=0
a C ϕ C + a E ϕ E + a W ϕ W = 0 其中
a
E
=
F
l
u
x
F
e
=
−
Γ
e
ϕ
Δ
y
e
δ
x
e
+
(
ρ
u
Δ
y
)
e
2
a
W
=
F
l
u
x
F
w
=
−
Γ
w
ϕ
Δ
y
w
δ
x
w
−
(
ρ
u
Δ
y
)
w
2
a
C
=
F
l
u
x
C
e
+
F
l
u
x
C
w
=
Γ
e
ϕ
Δ
y
e
δ
x
e
+
(
ρ
u
Δ
y
)
e
2
+
Γ
w
ϕ
Δ
y
w
δ
x
w
−
(
ρ
u
Δ
y
)
w
2
\begin{aligned} & a_E=FluxF_e=-\Gamma^\phi_e \frac{\Delta y_e}{\delta x_e}+\frac{(\rho u \Delta y)_e}{2} \\ & a_W=FluxF_w=-\Gamma^\phi_w \frac{\Delta y_w}{\delta x_w}-\frac{(\rho u \Delta y)_w}{2} \\ & a_C=FluxC_e+FluxC_w=\Gamma^\phi_e \frac{\Delta y_e}{\delta x_e}+\frac{(\rho u \Delta y)_e}{2}+ \Gamma^\phi_w \frac{\Delta y_w}{\delta x_w}-\frac{(\rho u \Delta y)_w}{2} \end{aligned}
a E = F l u x F e = − Γ e ϕ δ x e Δ y e + 2 ( ρ u Δ y ) e a W = F l u x F w = − Γ w ϕ δ x w Δ y w − 2 ( ρ u Δ y ) w a C = F l u x C e + F l u x C w = Γ e ϕ δ x e Δ y e + 2 ( ρ u Δ y ) e + Γ w ϕ δ x w Δ y w − 2 ( ρ u Δ y ) w 因为问题是一维的,有
Δ
y
e
=
Δ
y
w
\Delta y_e=\Delta y_w
Δ y e = Δ y w ,故可把它们都设成1。此外,从连续方程可获得
(
ρ
u
Δ
y
)
e
−
(
ρ
u
Δ
y
)
w
=
0
(\rho u \Delta y)_e-(\rho u \Delta y)_w=0
( ρ u Δ y ) e − ( ρ u Δ y ) w = 0 ,且
u
u
u 为常数。假设扩散系数为定值,则离散方程系数变为
a
E
=
−
Γ
ϕ
x
E
−
x
C
+
(
ρ
u
)
e
2
a
W
=
−
Γ
ϕ
x
C
−
x
W
−
(
ρ
u
)
w
2
a
C
=
−
(
a
E
+
a
W
)
\begin{aligned} & a_E=-\frac{\Gamma^\phi}{x_E-x_C}+\frac{(\rho u)_e}{2} \\ & a_W=-\frac{\Gamma^\phi}{x_C-x_W}-\frac{(\rho u)_w}{2} \\ & a_C=-(a_E+a_W) \end{aligned}
a E = − x E − x C Γ ϕ + 2 ( ρ u ) e a W = − x C − x W Γ ϕ − 2 ( ρ u ) w a C = − ( a E + a W ) 回代到离散格式
a
C
ϕ
C
+
a
E
ϕ
E
+
a
W
ϕ
W
=
0
a_C\phi_C+a_E\phi_E+a_W\phi_W=0
a C ϕ C + a E ϕ E + a W ϕ W = 0 ,可得
ϕ
C
−
ϕ
W
ϕ
E
−
ϕ
W
=
a
E
a
E
+
a
W
\frac{\phi_C-\phi_W}{\phi_E-\phi_W}=\frac{a_E}{a_E+a_W}
ϕ E − ϕ W ϕ C − ϕ W = a E + a W a E 若是是均匀网格,能够写成
P
e
L
=
ρ
u
L
Γ
ϕ
,
L
=
x
E
−
x
W
Pe_L=\frac{\rho u L}{\Gamma^\phi},L = x_E-x_W
P e L = Γ ϕ ρ u L , L = x E − x W 的形式,单元
C
C
C 的数值解为(注意,书中给出的公式RHS为
1
2
(
1
−
P
e
L
2
)
\frac{1}{2}(1-\frac{Pe_L}{2})
2 1 ( 1 − 2 P e L ) 实际应为
1
2
(
1
−
P
e
L
4
)
\frac{1}{2}(1-\frac{Pe_L}{4})
2 1 ( 1 − 4 P e L ) )
ϕ
C
−
ϕ
W
ϕ
E
−
ϕ
W
=
1
2
(
1
−
P
e
L
4
)
\frac{\phi_C-\phi_W}{\phi_E-\phi_W}=\frac{1}{2}\left( 1- \frac{Pe_L}{4} \right)
ϕ E − ϕ W ϕ C − ϕ W = 2 1 ( 1 − 4 P e L ) 单元
C
C
C 的精确解,由上一小节的解析解给出
ϕ
C
−
ϕ
W
ϕ
E
−
ϕ
W
=
e
P
e
L
/
2
−
1
e
P
e
L
−
1
\frac{\phi_C-\phi_W}{\phi_E-\phi_W}=\frac{e^{Pe_L/2}-1}{e^{Pe_L}-1}
ϕ E − ϕ W ϕ C − ϕ W = e P e L − 1 e P e L / 2 − 1 让
P
e
L
Pe_L
P e L 从-10变化到10,数值解和解析解给出的结果展现在下图中,当
P
e
L
Pe_L
P e L 值(绝对值)较小时,数值解和解析解很是接近,当
P
e
L
Pe_L
P e L 的值(绝对值)逐渐增大并跨过阈值后,中心差分格式给出的数值解就和解析解产生了很大误差,其变得不受约束(无界)呈现出不符合物理意义的特性。即,解析解对于正的和负的
P
e
L
Pe_L
P e L 分别逐渐趋近于0和1,中心差分格式给出的数值解则随着
P
e
L
Pe_L
P e L 从
−
∞
-\infin
− ∞ 增大到
+
∞
+\infin
+ ∞ 而从
+
∞
+\infin
+ ∞ 线性减少到
−
∞
-\infin
− ∞ 。这代表前面离散过程当中采用的某些假设是不切实际的或者说是不符合物理意义的,究竟是什么缘由形成的呢?学习
以下图所示,在点
C
C
C 处的扩散所受到
C
C
C 点上游和下游条件的影响是等效的(下图a),而对流过程则是与方向高度相关的过程,其仅在流动方向上有输运特性(下图b)。所以,给上下游节点赋予了一样的权重的线性廓线假设,对于扩散项的近似是没问题的(下图a),却没办法描述对流项的方向特性,此时陡峭的廓线更为合适(下图b),这即是形成前述中心差分格式数值解和解析解之间误差的缘由。
下图c给出了对流-扩散联合效应下的影响区域以及更加实际的廓线,该影响区域在低Peclet数下趋近于扩散区域(下图a),在高Peclet数下则趋近于对流区域(下图b)。所以,只要扩散在传输特性中占优,那么使用线性廓线能产生符合物理实际的解。然而,一旦对流压倒了扩散(问题变得对流占优了),再用线性廓线的假设就会产生不符合物理意义的解。能够容易地估算出Peclet数在何值下会产生该现象,假设流动是沿着
x
x
x 正方向的,注意到
a
E
a_E
a E 系数有可能会变成正值,这样便会致使非物理解(若是流动是沿着
x
x
x 负方向的话,那么
a
W
a_W
a W 可能会变成正值),即
a
E
=
−
Γ
e
ϕ
Δ
y
e
δ
x
e
+
(
ρ
u
Δ
y
)
e
2
>
0
⇒
(
ρ
u
)
e
δ
x
e
Γ
e
ϕ
>
2
a_E=-\Gamma^\phi_e \frac{\Delta y_e}{\delta x_e}+\frac{(\rho u \Delta y)_e}{2}>0 \Rightarrow \frac{(\rho u)_e\delta x_e}{\Gamma_e^\phi} > 2
a E = − Γ e ϕ δ x e Δ y e + 2 ( ρ u Δ y ) e > 0 ⇒ Γ e ϕ ( ρ u ) e δ x e > 2 定义Peclet数为
P
e
=
ρ
u
δ
x
Γ
ϕ
Pe=\frac{\rho u\delta x}{\Gamma^\phi}
P e = Γ ϕ ρ u δ x 这样,对于均匀网格来讲,
P
e
=
P
e
L
/
2
Pe=Pe_L/2
P e = P e L / 2 ,那么
a
E
>
0
a_E>0
a E > 0 的条件变为
P
e
>
2
Pe>2
P e > 2 所以,单元的Peclet数(Pe)大于2的话,离散过程变得不相符,由于此时邻居值的增长会致使
C
C
C 处值的下降,这又会反过来进一步增长邻居值,致使错误的放大。
固然,经过减少网格尺度让单元Peclet数小于2,就能够避免这种状况。然而,对于不少实际状况,这样作的话将会显著增长存储量和计算量,以致超出计算机负荷。并且,对于纯对流的问题(即不考虑粘性扩散效应,例如,Euler流动),这么作的话也是不可行的,因此须要发展修正方法。
2.4 迎风格式(Upwind Scheme)
如上图,与对流过程更加契合的格式为迎风格式,迎风格式基本上是模仿了对流的物理特性,即,单元面上的值是依赖于迎风节点上的值的,换言之,依赖于流动方向的。图中所示的单元面上的值用下式给出
ϕ
e
=
{
ϕ
C
i
f
m
˙
e
>
0
ϕ
E
i
f
m
˙
e
<
0
ϕ
w
=
{
ϕ
C
i
f
m
˙
w
>
0
ϕ
W
i
f
m
˙
w
<
0
\phi_e=\begin{cases} \phi_C & if & \dot m_e > 0 \\ \phi_E & if & \dot m_e < 0 \end{cases} \quad\quad\quad \phi_w=\begin{cases} \phi_C & if & \dot m_w > 0 \\ \phi_W & if & \dot m_w < 0 \end{cases}
ϕ e = { ϕ C ϕ E i f i f m ˙ e > 0 m ˙ e < 0 ϕ w = { ϕ C ϕ W i f i f m ˙ w > 0 m ˙ w < 0 (注意,这里的
ϕ
w
\phi_w
ϕ w 没有写反,由于质量流量
m
˙
\dot m
m ˙ 跟速度
u
u
u 是不一样的,看下面说明)
其中
m
˙
e
\dot m_e
m ˙ e 和
m
˙
w
\dot m_w
m ˙ w 是在面
e
e
e 和
w
w
w 的质量流量(面积矢量的正方向是朝外的,而非指向单元中心
C
C
C 的)
m
˙
e
=
(
ρ
v
⋅
S
)
e
=
(
ρ
u
S
)
e
=
(
ρ
u
Δ
y
)
e
m
˙
w
=
(
ρ
v
⋅
S
)
w
=
−
(
ρ
u
S
)
w
=
−
(
ρ
u
Δ
y
)
w
\begin{aligned} & \dot m_e=(\rho \bold v \cdot \bold S)_e=(\rho u S)_e=(\rho u \Delta y)_e \\ & \dot m_w=(\rho \bold v \cdot \bold S)_w=-(\rho u S)_w=-(\rho u \Delta y)_w \end{aligned}
m ˙ e = ( ρ v ⋅ S ) e = ( ρ u S ) e = ( ρ u Δ y ) e m ˙ w = ( ρ v ⋅ S ) w = − ( ρ u S ) w = − ( ρ u Δ y ) w 如此,面
e
e
e 的对流通量可写成
m
˙
e
ϕ
e
=
∣
∣
m
˙
e
,
0
∣
∣
ϕ
C
−
∣
∣
−
m
˙
e
,
0
∣
∣
ϕ
E
=
F
l
u
x
C
e
C
o
n
v
ϕ
C
+
F
l
u
x
F
e
C
o
n
v
ϕ
E
+
F
l
u
x
V
e
C
o
n
v
\begin{aligned} \dot m_e \phi_e &= ||\dot m_e,0||\phi_C-||-\dot m_e,0||\phi_E \\ &= FluxC_e^{Conv}\phi_C+FluxF_e^{Conv}\phi_E+FluxV_e^{Conv} \end{aligned}
m ˙ e ϕ e = ∣ ∣ m ˙ e , 0 ∣ ∣ ϕ C − ∣ ∣ − m ˙ e , 0 ∣ ∣ ϕ E = F l u x C e C o n v ϕ C + F l u x F e C o n v ϕ E + F l u x V e C o n v 其中
F
l
u
x
C
e
C
o
n
v
=
∣
∣
m
˙
e
,
0
∣
∣
F
l
u
x
F
e
C
o
n
v
=
−
∣
∣
−
m
˙
e
,
0
∣
∣
F
l
u
x
V
e
C
o
n
v
=
0
\begin{aligned} &FluxC_e^{Conv}= ||\dot m_e,0|| \\ &FluxF_e^{Conv}=-||-\dot m_e,0|| \\ &FluxV_e^{Conv}=0 \end{aligned}
F l u x C e C o n v = ∣ ∣ m ˙ e , 0 ∣ ∣ F l u x F e C o n v = − ∣ ∣ − m ˙ e , 0 ∣ ∣ F l u x V e C o n v = 0 其中的
∣
∣
a
,
b
∣
∣
=
max
(
a
,
b
)
||a,b||=\max(a,b)
∣ ∣ a , b ∣ ∣ = max ( a , b ) 表明了
a
a
a 和
b
b
b 中的最大值。一样手法,也可推导面
w
w
w 的对流通量
m
˙
w
ϕ
w
=
∣
∣
m
˙
w
,
0
∣
∣
ϕ
C
−
∣
∣
−
m
˙
w
,
0
∣
∣
ϕ
W
=
F
l
u
x
C
w
C
o
n
v
ϕ
C
+
F
l
u
x
F
w
C
o
n
v
ϕ
W
+
F
l
u
x
V
w
C
o
n
v
\begin{aligned} \dot m_w \phi_w &= ||\dot m_w,0||\phi_C-||-\dot m_w,0||\phi_W \\ &= FluxC_w^{Conv}\phi_C+FluxF_w^{Conv}\phi_W+FluxV_w^{Conv} \end{aligned}
m ˙ w ϕ w = ∣ ∣ m ˙ w , 0 ∣ ∣ ϕ C − ∣ ∣ − m ˙ w , 0 ∣ ∣ ϕ W = F l u x C w C o n v ϕ C + F l u x F w C o n v ϕ W + F l u x V w C o n v 其中
F
l
u
x
C
w
C
o
n
v
=
∣
∣
m
˙
w
,
0
∣
∣
F
l
u
x
F
w
C
o
n
v
=
−
∣
∣
−
m
˙
w
,
0
∣
∣
F
l
u
x
V
w
C
o
n
v
=
0
\begin{aligned} &FluxC_w^{Conv}= ||\dot m_w,0|| \\ &FluxF_w^{Conv}=-||-\dot m_w,0|| \\ &FluxV_w^{Conv}=0 \end{aligned}
F l u x C w C o n v = ∣ ∣ m ˙ w , 0 ∣ ∣ F l u x F w C o n v = − ∣ ∣ − m ˙ w , 0 ∣ ∣ F l u x V w C o n v = 0 把扩散项用上标
D
i
f
f
{Diff}
D i f f 表示,推得一维稳态对流扩散方程的离散格式为
(
F
l
u
x
C
e
C
o
n
v
+
F
l
u
x
C
e
D
i
f
f
+
F
l
u
x
C
w
C
o
n
v
+
F
l
u
x
C
w
D
i
f
f
)
ϕ
C
+
(
F
l
u
x
F
e
C
o
n
v
+
F
l
u
x
F
e
D
i
f
f
)
ϕ
E
+
(
F
l
u
x
F
w
C
o
n
v
+
F
l
u
x
F
w
D
i
f
f
)
ϕ
W
=
0
\begin{aligned} (FluxC_e^{Conv}&+FluxC_e^{Diff}+FluxC_w^{Conv}+FluxC_w^{Diff})\phi_C\\ &+(FluxF_e^{Conv}+FluxF_e^{Diff})\phi_E+(FluxF_w^{Conv}+FluxF_w^{Diff})\phi_W=0 \end{aligned}
( F l u x C e C o n v + F l u x C e D i f f + F l u x C w C o n v + F l u x C w D i f f ) ϕ C + ( F l u x F e C o n v + F l u x F e D i f f ) ϕ E + ( F l u x F w C o n v + F l u x F w D i f f ) ϕ W = 0 可写成下面形式
a
C
ϕ
C
+
a
E
ϕ
E
+
a
W
ϕ
W
=
b
C
a_C\phi_C+a_E\phi_E+a_W\phi_W=b_C
a C ϕ C + a E ϕ E + a W ϕ W = b C 其中
a
E
=
F
l
u
x
F
e
C
o
n
v
+
F
l
u
x
F
e
D
i
f
f
=
−
∣
∣
−
m
˙
e
,
0
∣
∣
−
Γ
e
ϕ
S
e
δ
x
e
a
W
=
F
l
u
x
F
w
C
o
n
v
+
F
l
u
x
F
w
D
i
f
f
=
−
∣
∣
−
m
˙
w
,
0
∣
∣
−
Γ
w
ϕ
S
w
δ
x
w
a
C
=
∑
f
(
F
l
u
x
C
f
C
o
n
v
+
F
l
u
x
C
f
D
i
f
f
)
=
∣
∣
m
˙
e
,
0
∣
∣
+
∣
∣
m
˙
w
,
0
∣
∣
+
Γ
e
ϕ
S
e
δ
x
e
+
Γ
w
ϕ
S
w
δ
x
w
=
−
(
a
E
+
a
W
)
+
(
m
˙
e
+
m
˙
w
)
⏟
=
0
b
C
=
−
∑
f
(
F
l
u
x
V
f
C
o
n
v
+
F
l
u
x
V
f
D
i
f
f
)
=
0
\begin{aligned} a_E&= FluxF_e^{Conv}+FluxF_e^{Diff} \\ &= -||-\dot m_e,0|| - \Gamma^\phi_e \frac{S_e}{\delta x_e} \\ a_W&= FluxF_w^{Conv}+FluxF_w^{Diff} \\ &=-||-\dot m_w,0|| -\Gamma^\phi_w \frac{S_w}{\delta x_w} \\ a_C&= \sum_f \left( FluxC_f^{Conv} + FluxC_f^{Diff} \right)\\ &=||\dot m_e,0||+||\dot m_w,0||+\Gamma^\phi_e \frac{S_e}{\delta x_e}+\Gamma^\phi_w \frac{S_w}{\delta x_w} \\ &=-(a_E+a_W)+\underbrace{(\dot m_e + \dot m_w)}_{=0} \\ b_C&=-\sum_f \left( FluxV_f^{Conv} + FluxV_f^{Diff} \right)\\ &=0 \end{aligned}
a E a W a C b C = F l u x F e C o n v + F l u x F e D i f f = − ∣ ∣ − m ˙ e , 0 ∣ ∣ − Γ e ϕ δ x e S e = F l u x F w C o n v + F l u x F w D i f f = − ∣ ∣ − m ˙ w , 0 ∣ ∣ − Γ w ϕ δ x w S w = f ∑ ( F l u x C f C o n v + F l u x C f D i f f ) = ∣ ∣ m ˙ e , 0 ∣ ∣ + ∣ ∣ m ˙ w , 0 ∣ ∣ + Γ e ϕ δ x e S e + Γ w ϕ δ x w S w = − ( a E + a W ) + = 0
( m ˙ e + m ˙ w ) = − f ∑ ( F l u x V f C o n v + F l u x V f D i f f ) = 0 显而易见,迎风格式推出了负的邻居系数,并且在知足连续方程的状况下(即,
m
˙
e
+
m
˙
w
=
0
\dot m_e + \dot m_w=0
m ˙ e + m ˙ w = 0 ),主节点上的系数为
a
C
=
−
(
a
W
+
a
E
)
a_C=-(a_W+a_E)
a C = − ( a W + a E ) 这确保了有界性。
在连续方程知足的前提下,假设为均匀网格和常扩散系数,用
ϕ
E
\phi_E
ϕ E 和
ϕ
W
\phi_W
ϕ W 所给出的
ϕ
C
\phi_C
ϕ C 值为
ϕ
C
−
ϕ
W
ϕ
E
−
ϕ
W
=
2
+
∣
∣
−
P
e
L
,
0
∣
∣
4
+
∣
∣
−
P
e
L
,
0
∣
∣
+
∣
∣
P
e
L
,
0
∣
∣
=
2
+
∣
∣
−
P
e
L
,
0
∣
∣
4
+
∣
P
e
L
∣
\frac{\phi_C-\phi_W}{\phi_E-\phi_W} =\frac{2+||-Pe_L,0||}{4+||-Pe_L,0||+||Pe_L,0||} =\frac{2+||-Pe_L,0||}{4+|Pe_L|}
ϕ E − ϕ W ϕ C − ϕ W = 4 + ∣ ∣ − P e L , 0 ∣ ∣ + ∣ ∣ P e L , 0 ∣ ∣ 2 + ∣ ∣ − P e L , 0 ∣ ∣ = 4 + ∣ P e L ∣ 2 + ∣ ∣ − P e L , 0 ∣ ∣ 将该迎风格式的数值解与精确的解析解、以前中心差分格式的数值解一并展现于下图中。当
P
e
L
Pe_L
P e L 的值(绝对值)较小时,迎风格式并无中心差分格式的结果准确,这是由于迎风廓线只有一阶精度,而线性廓线具备二阶精度;而当
P
e
L
Pe_L
P e L 的值(绝对值)较大时,中心差分格式是不稳定的,其表现为无界性,已经失去了物理意义,而此时的迎风格式,尽管并非特别准确,可是物理意义上是正确的。
如此一来,就有了精确性和稳定性之间的权衡。使用迎风格式,获得的解即使在高
P
e
L
Pe_L
P e L 下依旧保持有界性和有物理意义,然而付出的代价就是精度较低。另外一方面,二阶精度的中心差分格式当
P
e
L
Pe_L
P e L 超出特定阈值的时候会变得不稳定,产生不符合物理意义的解。两种格式都受到了偏差的影响,一个影响了精确性,另外一个影响了稳定性。这些都是什么偏差呢?在引入背风(downwind)格式后,我们再讨论这个问题。
2.5 背风格式(Downwind Scheme)
若是把迎风格式反过来用,即,用背风格式的话,会发生什么有趣的事情呢?如上图所示,在这种插值廓线中,是把界面背风方向节点处的值视做界面上的值,这样,面
e
e
e 和面
w
w
w 处的值为
ϕ
e
=
{
ϕ
E
i
f
m
˙
e
>
0
ϕ
C
i
f
m
˙
e
<
0
ϕ
w
=
{
ϕ
W
i
f
m
˙
w
>
0
ϕ
C
i
f
m
˙
w
<
0
\phi_e=\begin{cases} \phi_E & if & \dot m_e>0 \\ \phi_C & if & \dot m_e<0 \end{cases} \quad\quad\quad \phi_w=\begin{cases} \phi_W & if & \dot m_w>0 \\ \phi_C & if & \dot m_w<0 \end{cases}
ϕ e = { ϕ E ϕ C i f i f m ˙ e > 0 m ˙ e < 0 ϕ w = { ϕ W ϕ C i f i f m ˙ w > 0 m ˙ w < 0 面上的对流通量能够写成
m
˙
e
ϕ
e
=
−
∣
∣
−
m
˙
e
,
0
∣
∣
ϕ
C
+
∣
∣
m
˙
e
,
0
∣
∣
ϕ
E
=
F
l
u
x
C
e
C
o
n
v
ϕ
C
+
F
l
u
x
F
e
C
o
n
v
ϕ
E
+
F
l
u
x
V
e
C
o
n
v
m
˙
w
ϕ
w
=
−
∣
∣
−
m
˙
w
,
0
∣
∣
ϕ
C
+
∣
∣
m
˙
w
,
0
∣
∣
ϕ
W
=
F
l
u
x
C
w
C
o
n
v
ϕ
C
+
F
l
u
x
F
w
C
o
n
v
ϕ
W
+
F
l
u
x
V
w
C
o
n
v
\begin{aligned} \dot m_e\phi_e & = - ||-\dot m_e,0||\phi_C+||\dot m_e,0||\phi_E \\ &= FluxC_e^{Conv}\phi_C+FluxF_e^{Conv}\phi_E+FluxV_e^{Conv} \\ \dot m_w\phi_w & = - ||-\dot m_w,0||\phi_C+||\dot m_w,0||\phi_W \\ &= FluxC_w^{Conv}\phi_C+FluxF_w^{Conv}\phi_W+FluxV_w^{Conv} \end{aligned}
m ˙ e ϕ e m ˙ w ϕ w = − ∣ ∣ − m ˙ e , 0 ∣ ∣ ϕ C + ∣ ∣ m ˙ e , 0 ∣ ∣ ϕ E = F l u x C e C o n v ϕ C + F l u x F e C o n v ϕ E + F l u x V e C o n v = − ∣ ∣ − m ˙ w , 0 ∣ ∣ ϕ C + ∣ ∣ m ˙ w , 0 ∣ ∣ ϕ W = F l u x C w C o n v ϕ C + F l u x F w C o n v ϕ W + F l u x V w C o n v 可进一步推得一维稳态对流扩散方程的离散形式为
(
F
l
u
x
C
e
C
o
n
v
+
F
l
u
x
C
e
D
i
f
f
+
F
l
u
x
C
w
C
o
n
v
+
F
l
u
x
C
w
D
i
f
f
)
ϕ
C
+
(
F
l
u
x
F
e
C
o
n
v
+
F
l
u
x
F
e
D
i
f
f
)
ϕ
E
+
(
F
l
u
x
F
w
C
o
n
v
+
F
l
u
x
F
w
D
i
f
f
)
ϕ
W
=
0
\begin{aligned} (FluxC_e^{Conv}&+FluxC_e^{Diff}+FluxC_w^{Conv}+FluxC_w^{Diff})\phi_C\\ &+(FluxF_e^{Conv}+FluxF_e^{Diff})\phi_E+(FluxF_w^{Conv}+FluxF_w^{Diff})\phi_W=0 \end{aligned}
( F l u x C e C o n v + F l u x C e D i f f + F l u x C w C o n v + F l u x C w D i f f ) ϕ C + ( F l u x F e C o n v + F l u x F e D i f f ) ϕ E + ( F l u x F w C o n v + F l u x F w D i f f ) ϕ W = 0 可写成下面形式
a
C
ϕ
C
+
a
E
ϕ
E
+
a
W
ϕ
W
=
b
C
a_C\phi_C+a_E\phi_E+a_W\phi_W=b_C
a C ϕ C + a E ϕ E + a W ϕ W = b C 其中
a
E
=
F
l
u
x
F
e
C
o
n
v
+
F
l
u
x
F
e
D
i
f
f
=
∣
∣
m
˙
e
,
0
∣
∣
−
Γ
e
ϕ
S
e
δ
x
e
a
W
=
F
l
u
x
F
w
C
o
n
v
+
F
l
u
x
F
w
D
i
f
f
=
∣
∣
m
˙
w
,
0
∣
∣
−
Γ
w
ϕ
S
w
δ
x
w
a
C
=
∑
f
(
F
l
u
x
C
f
C
o
n
v
+
F
l
u
x
C
f
D
i
f
f
)
=
−
∣
∣
−
m
˙
e
,
0
∣
∣
−
∣
∣
−
m
˙
w
,
0
∣
∣
+
Γ
e
ϕ
S
e
δ
x
e
+
Γ
w
ϕ
S
w
δ
x
w
=
−
(
a
E
+
a
W
)
+
(
m
˙
e
+
m
˙
w
)
⏟
=
0
b
C
=
−
∑
f
(
F
l
u
x
V
f
C
o
n
v
+
F
l
u
x
V
f
D
i
f
f
)
=
0
\begin{aligned} a_E&= FluxF_e^{Conv}+FluxF_e^{Diff} \\ &= ||\dot m_e,0|| - \Gamma^\phi_e \frac{S_e}{\delta x_e} \\ a_W&= FluxF_w^{Conv}+FluxF_w^{Diff} \\ &=||\dot m_w,0|| -\Gamma^\phi_w \frac{S_w}{\delta x_w} \\ a_C&= \sum_f \left( FluxC_f^{Conv} + FluxC_f^{Diff} \right)\\ &=-||-\dot m_e,0||-||-\dot m_w,0||+\Gamma^\phi_e \frac{S_e}{\delta x_e}+\Gamma^\phi_w \frac{S_w}{\delta x_w} \\ &=-(a_E+a_W)+\underbrace{(\dot m_e + \dot m_w)}_{=0} \\ b_C&=-\sum_f \left( FluxV_f^{Conv} + FluxV_f^{Diff} \right)\\ &=0 \end{aligned}
a E a W a C b C = F l u x F e C o n v + F l u x F e D i f f = ∣ ∣ m ˙ e , 0 ∣ ∣ − Γ e ϕ δ x e S e = F l u x F w C o n v + F l u x F w D i f f = ∣ ∣ m ˙ w , 0 ∣ ∣ − Γ w ϕ δ x w S w = f ∑ ( F l u x C f C o n v + F l u x C f D i f f ) = − ∣ ∣ − m ˙ e , 0 ∣ ∣ − ∣ ∣ − m ˙ w , 0 ∣ ∣ + Γ e ϕ δ x e S e + Γ w ϕ δ x w S w = − ( a E + a W ) + = 0
( m ˙ e + m ˙ w ) = − f ∑ ( F l u x V f C o n v + F l u x V f D i f f ) = 0 在连续方程知足的前提下,假设为均匀网格和常扩散系数,用
ϕ
E
\phi_E
ϕ E 和
ϕ
W
\phi_W
ϕ W 所给出的
ϕ
C
\phi_C
ϕ C 值为
ϕ
C
−
ϕ
W
ϕ
E
−
ϕ
W
=
2
−
∣
∣
P
e
L
,
0
∣
∣
4
−
∣
∣
−
P
e
L
,
0
∣
∣
−
∣
∣
P
e
L
,
0
∣
∣
=
2
−
∣
∣
P
e
L
,
0
∣
∣
4
−
∣
P
e
L
∣
\frac{\phi_C-\phi_W}{\phi_E-\phi_W} =\frac{2-||Pe_L,0||}{4-||-Pe_L,0||-||Pe_L,0||} =\frac{2-||Pe_L,0||}{4-|Pe_L|}
ϕ E − ϕ W ϕ C − ϕ W = 4 − ∣ ∣ − P e L , 0 ∣ ∣ − ∣ ∣ P e L , 0 ∣ ∣ 2 − ∣ ∣ P e L , 0 ∣ ∣ = 4 − ∣ P e L ∣ 2 − ∣ ∣ P e L , 0 ∣ ∣ 不用把上式的图形画出来,也能够看出,当
∣
P
e
L
∣
→
4
|Pe_L|\rightarrow4
∣ P e L ∣ → 4 的时候,解变得彻底无界。背风格式与其它格式联合起来预测突变界面时是有用的,然而这里引入背风格式的目的主要是为了便于在下一节给出更好的稳定性分析。
3 截断偏差:数值扩散和反扩散(Truncation Error: Numerical Diffusion and Anti-Diffusion)
截断偏差是由离散过程的天然近似所形成的,对于笛卡尔网格上的一维情形较容易分析。下面将作迎风、背风、中心差分格式的扩散和反扩散分析。
3.1 迎风格式
针对经过迎风格式离散获得的方程,尝试将其恢复到最初的积分方程并考察其截断偏差。假设流动是沿着
x
x
x 正方向的,将
ϕ
C
\phi_C
ϕ C 和
ϕ
W
\phi_W
ϕ W 分别写成
ϕ
e
\phi_e
ϕ e 和
ϕ
w
\phi_w
ϕ w 函数的形式,迎风格式为
ϕ
e
=
ϕ
C
ϕ
w
=
ϕ
W
\phi_e=\phi_C\quad\quad\quad\phi_w=\phi_W
ϕ e = ϕ C ϕ w = ϕ W 这样,使用迎风格式的一维对流扩散方程离散形式为
(
ρ
u
Δ
y
)
e
ϕ
C
−
(
ρ
u
Δ
y
)
w
ϕ
W
−
[
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
=
0
(\rho u \Delta y)_e\phi_C-(\rho u \Delta y)_w\phi_W- \left[\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right]=0
( ρ u Δ y ) e ϕ C − ( ρ u Δ y ) w ϕ W − [ ( Γ ϕ d x d ϕ Δ y ) e − ( Γ ϕ d x d ϕ Δ y ) w ] = 0 将
ϕ
C
\phi_C
ϕ C 作一维Taylor展开,以单元面
e
e
e 的值为基准,得
ϕ
C
=
ϕ
e
+
(
d
ϕ
d
x
)
e
(
x
C
−
x
e
)
+
1
2
(
d
2
ϕ
d
x
2
)
e
(
x
C
−
x
e
)
2
+
.
.
.
=
ϕ
e
−
(
d
ϕ
d
x
)
e
(
x
e
−
x
C
)
+
.
.
.
\begin{aligned} \phi_C&=\phi_e+\left( \frac{d\phi}{dx} \right)_e(x_C-x_e)+\frac{1}{2}\left( \frac{d^2\phi}{dx^2} \right)_e(x_C-x_e)^2+...\\ &=\phi_e-\left( \frac{d\phi}{dx} \right)_e(x_e-x_C)+... \end{aligned}
ϕ C = ϕ e + ( d x d ϕ ) e ( x C − x e ) + 2 1 ( d x 2 d 2 ϕ ) e ( x C − x e ) 2 + . . . = ϕ e − ( d x d ϕ ) e ( x e − x C ) + . . . 对于均匀网格
ϕ
C
=
ϕ
e
−
(
d
ϕ
d
x
)
e
(
δ
x
)
e
2
+
1
2
(
d
2
ϕ
d
x
2
)
e
(
(
δ
x
)
e
2
)
2
+
.
.
.
\phi_C=\phi_e-\left( \frac{d\phi}{dx} \right)_e\frac{(\delta x)_e}{2}+\frac{1}{2}\left( \frac{d^2\phi}{dx^2} \right)_e\left(\frac{(\delta x)_e}{2}\right)^2+...
ϕ C = ϕ e − ( d x d ϕ ) e 2 ( δ x ) e + 2 1 ( d x 2 d 2 ϕ ) e ( 2 ( δ x ) e ) 2 + . . . 可得到
ϕ
W
\phi_W
ϕ W 的类似表达式
ϕ
W
=
ϕ
w
−
(
d
ϕ
d
x
)
w
(
δ
x
)
w
2
+
1
2
(
d
2
ϕ
d
x
2
)
w
(
(
δ
x
)
w
2
)
2
+
.
.
.
\phi_W=\phi_w-\left( \frac{d\phi}{dx} \right)_w\frac{(\delta x)_w}{2}+\frac{1}{2}\left( \frac{d^2\phi}{dx^2} \right)_w\left(\frac{(\delta x)_w}{2}\right)^2+...
ϕ W = ϕ w − ( d x d ϕ ) w 2 ( δ x ) w + 2 1 ( d x 2 d 2 ϕ ) w ( 2 ( δ x ) w ) 2 + . . . 截去二阶项和高阶项,将其代入到对流项中,离散方程的左端项变为
(
ρ
u
Δ
y
)
e
ϕ
C
−
(
ρ
u
Δ
y
)
w
ϕ
W
−
[
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
=
(
ρ
u
Δ
y
)
e
[
ϕ
e
−
(
d
ϕ
d
x
)
e
(
δ
x
)
e
2
]
−
(
ρ
u
Δ
y
)
w
[
ϕ
w
−
(
d
ϕ
d
x
)
w
(
δ
x
)
w
2
]
−
[
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
\begin{aligned} &(\rho u \Delta y)_e\phi_C-(\rho u \Delta y)_w\phi_W- \left[\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right]=\\ &(\rho u \Delta y)_e\left[ \phi_e-\left( \frac{d\phi}{dx} \right)_e\frac{(\delta x)_e}{2} \right]-(\rho u \Delta y)_w\left[ \phi_w-\left( \frac{d\phi}{dx} \right)_w\frac{(\delta x)_w}{2} \right]-\\ &\left[\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right] \end{aligned}
( ρ u Δ y ) e ϕ C − ( ρ u Δ y ) w ϕ W − [ ( Γ ϕ d x d ϕ Δ y ) e − ( Γ ϕ d x d ϕ Δ y ) w ] = ( ρ u Δ y ) e [ ϕ e − ( d x d ϕ ) e 2 ( δ x ) e ] − ( ρ u Δ y ) w [ ϕ w − ( d x d ϕ ) w 2 ( δ x ) w ] − [ ( Γ ϕ d x d ϕ Δ y ) e − ( Γ ϕ d x d ϕ Δ y ) w ] 能够改写为
(
ρ
u
Δ
y
)
e
ϕ
C
−
(
ρ
u
Δ
y
)
w
ϕ
W
−
[
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
=
(
ρ
u
Δ
y
)
e
ϕ
e
−
(
ρ
u
Δ
y
)
w
ϕ
w
−
[
(
Γ
ϕ
+
ρ
u
δ
x
2
)
e
(
d
ϕ
d
x
Δ
y
)
e
−
(
Γ
ϕ
+
ρ
u
δ
x
2
)
w
(
d
ϕ
d
x
Δ
y
)
w
]
\begin{aligned} &(\rho u \Delta y)_e\phi_C-(\rho u \Delta y)_w\phi_W- \left[\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right]=\\ &(\rho u \Delta y)_e\phi_e-(\rho u \Delta y)_w\phi_w-\left[\left(\Gamma^\phi +\rho u\frac{\delta x}{2}\right)_e\left(\frac{d\phi}{dx}\Delta y\right)_e-\left(\Gamma^\phi +\rho u\frac{\delta x}{2}\right)_w\left(\frac{d\phi}{dx}\Delta y\right)_w\right] \end{aligned}
( ρ u Δ y ) e ϕ C − ( ρ u Δ y ) w ϕ W − [ ( Γ ϕ d x d ϕ Δ y ) e − ( Γ ϕ d x d ϕ Δ y ) w ] = ( ρ u Δ y ) e ϕ e − ( ρ u Δ y ) w ϕ w − [ ( Γ ϕ + ρ u 2 δ x ) e ( d x d ϕ Δ y ) e − ( Γ ϕ + ρ u 2 δ x ) w ( d x d ϕ Δ y ) w ] 显而易见,待求解的方程中额外加入了扩散项份量,这常被称为截断偏差。数值扩散的值为
Γ
t
r
u
n
c
a
t
i
o
n
ϕ
=
ρ
u
δ
x
2
\Gamma^\phi_{truncation}=\rho u \frac{\delta x}{2}
Γ t r u n c a t i o n ϕ = ρ u 2 δ x 该截断偏差,也称为流向扩散,经过更改扩散系数的值影响了待求解方程,从而下降了解的精确性。这样,至关于改变了对流扩散方程的扩散效应。另外一方面,该额外的流向扩散效应也是有益的,由于其对解进行了限定,起到了稳定做用,可获得物理上有意义的解。
显然,要想减小这个流向数值扩散,须要针对对流项构造高阶精度的近似格式。然而,后面章节中会讲到,这些格式在构造的时候还须要保证解的有界性。
3.2 背风格式
跟上一小节相似,假设流动是沿着
x
x
x 正方向的,将
ϕ
E
\phi_E
ϕ E 和
ϕ
C
\phi_C
ϕ C 分别写成
ϕ
e
\phi_e
ϕ e 和
ϕ
w
\phi_w
ϕ w 函数的形式,背风格式为
ϕ
e
=
ϕ
E
ϕ
w
=
ϕ
C
\phi_e=\phi_E\quad\quad\quad\phi_w=\phi_C
ϕ e = ϕ E ϕ w = ϕ C 这样,使用背风格式的一维对流扩散方程离散形式为
(
ρ
u
Δ
y
)
e
ϕ
E
−
(
ρ
u
Δ
y
)
w
ϕ
C
−
[
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
e
−
(
Γ
ϕ
d
ϕ
d
x
Δ
y
)
w
]
=
0
(\rho u \Delta y)_e\phi_E-(\rho u \Delta y)_w\phi_C- \left[\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_e-\left(\Gamma^\phi \frac{d\phi}{dx}\Delta y\right)_w\right]=0
( ρ u Δ y ) e ϕ E − ( ρ u Δ y ) w ϕ C − [ ( Γ ϕ d x d ϕ Δ y ) e − ( Γ ϕ d x d ϕ Δ y ) w ] = 0 在均匀网格上,将
ϕ
E
\phi_E
ϕ E 和
ϕ
C
\phi_C
ϕ C 作一维Taylor展开,分别以单元面
e
e
e 和
w
w
w 的值为基准,得
ϕ
E
=
ϕ
e
+
(
d
ϕ
d
x
)
e
(
δ
x
)
e
2
+
1
2
(
d
2
ϕ
d
x
2
)
e
(
(
δ
x
)
e
2
)
2
+
.
.
.