16.901 讲义笔记 2002.3.13
主题: * 有限体积格式
我们已经学习了偏微分方程组的有限差分格式。因此,我们今天将看一下有
限体积格式。首先让我们考虑 1 维传导方程:
0
TT
v
tx
??
+=
??
, 并且为常量。 0v >
这个偏微分方程实际上是材料(即气体,固体等等)在某个体积上的守恒原
理的应用,然后再将这块体积“收缩”到无穷小。在多维情况,按照下面的方法
来做。
假设我们使用的是能量守恒原理。也就是:
体积内能量随时间总的变化率 =对体积做的功 +对体积加的热量
假设我们处理的问题没有做功也没有加热,那么,
体积内能量随时间的总变化率 =0
随时间的总变化率可以分为两部分:
⑴ 能量局部的变化
⑵ 进入或离开体积的能量,即“流量”
如果设每单位体积的能量与温度成比例:
由假设 → EcTρ≡ ,其中 ρ ≡物质密度, c ≡比热。
V
E
dV
t
?
≡
?
∫∫∫
体积内随时间的变化率 ,
S
VEv ndS?≡
∫∫
K K
w
单位时间内从表面离开体积 的能量 。
守恒式变为:
S
0
V
E
dV Ev ndS
t
?
+ ?=
?
∫∫∫ ∫∫
K K
w
我们可以用高斯定理(散度定理)作替换:
S
()
V
Ev ndS Ev dV?=??
∫∫ ∫∫∫
K K K
w
其中 () () () (Ev uE vE E
xyz
)ω
???
?? ,≡ + +
???
K
vuivj kω≡++
K
K K
K
()0
[()]
V
E
Ev V
t
E
Ev dV
t
?
+?? =
?
0
?
?+??
?
∫∫∫
K
=
K
因为 是任
意的,故处处成立.
将这些降为 1 维:
()0
E
vE
tx
? ?
+ =
??
由 EcTρ≡ 得:
() ( )cT v cT
tx
ρρ0
? ?
+ =
??
( 1)
最后,注意到质量为常数,可得:
() ( ) 0v
tx
ρρ
? ?
+ =
??
因此,方程( 1)变为:
() ()0cT v cT
tx
? ?
+ =
??
用 T 代替 cT 则得到我们的精确的模型方程:
0
TT
v
tx
? ?
+ =
??
所以,让我们向前几步回到能量的积分方程:
S
0
V
E
dV Ev ndS
t
?
+ ?=
?
∫∫∫ ∫∫
K K
w
1 维的问题里,在从
i
x 到
1i
x
+
的“体积内”,我们有:
S
yz
S
0
V
E
dxdydz Ev ndydz
t
?
+ ?=
?
∫∫∫ ∫∫
K K
w
i+1
1
i
x
x
()
ii
yz yz
xx
E
dx S Ev n Ev n S
t
+
?
??
0+ ?+? =
??
?
??
∫
K K K K
S
yz
是无关量,可以消去。
此外,
i
x
ni=?
K
K
1i
x
ni
+
=
K
K
由此得到:
i+1
i
x
1
x
() () 0
ii
E
dx Ev Ev
t
+
?
+ ?=
?
∫
假设我们给这一问题加上网格:
并且假设未知数都是平均数:
i+1
i
1/2
x
1
x
2
1
i
i
EE
x
+
+
≡
Δ
∫
d
i+1 i+1
ii
xx
11
22
()
ii
Ed d
dx Edx E x
tdt dt
++
?
?= =Δ
?
∫∫
假设网格并不随时间变化 :
i+1
i
1
x
2
1
x
2
i
i
dE
E
dx x
tdt
+
+
?
=Δ
?
∫
←到目前为止这是准确的
1
2
11
2
() () 0
i
ii
i
dE
xEvEv
dt
+
+
+
?Δ + ? =
)
i
Ev
+
有两个问题使之变为离散方程:
( 1) 如何随时间积分?
( 2) 如何求 ( 或 ?
1
()
i
Ev
对于( 1) ,我们可以用标准的时间积分(即常微分方程)方法。例如,向前欧拉
方法:
11
22
1
2
() () 0
ii
nn
nn
ii
i
EE
xEvE
dt
++
+
+
+
?
Δ+?v=
对于( 2) ,问题有些微妙并且存在多个解(相同的 w|ODE 选项)
选项:
( 1) (文中没有给出。译者注)
( 2)
我们如何处理这个扩散问题呢?
即: ()
TT T
vk
txxx
? ???
+=
? ???
首先,扩散项是由于我们先前忽略了热量的增加才出现的:
SV
E
dV Ev ndS
t
?
+?=
?
∫∫∫ ∫∫
K K
w
热量增加
在表面热量才可以传递。典型的线性模型假设:
()
x
y
T
qk
qqiqjn
x
T
qkTn
qk
y
?
?
=
?
= ×+× ??
? ?
?
??
?
=??
?
?
=
? ?
?
K K
K
K
?体积的热量增加 =
S
k T ndS? ?
∫∫
K
w
VSS
E
dV Ev ndS k T ndS
t
?
?+?=?
?
∫∫∫ ∫∫∫ ∫∫
?
K K K
w x
注意:散度定理的应用导致了:
() ( )
E
vE
t
?
+?? =?? ?
?
K
kT
在 1 维中,由积分常数法则给出:
i+1
i
x
11
x
()()()()
ii i
ET
dx Ev Ev k k
tx
++
??
+?= ?
∫
i
T
x
?
现在,我们必须决定如何估计 ()
i
T
k
x
?
?
和
1
()
i
T
k
x
+
?
?
一个简单的方法就是用有限差分:
11
22
11
22
()
1
()
2
ii
ii
ii
TT
T
kk
x
x x
?+
+?
?
?
=
?
Δ+Δ
若使用均匀的网格和常数 k 则得到:
11
22
()
ii
i
TT
T
kk
xx
+ ?
?
?
=
?Δ
且控制方程变为(假设 k , xΔ 是常数) :
i+1
i
31 11
x
22 2
1
x
() ()
ii ii
ii
TT TT
E
dx Ev Ev k k
tx
2
x
+ ++
+
?
? ?
?
+?= ?
?Δ
∫
Δ
i+1
i
2
2
2
x
131
x
22
2
() () ( 2 )
ii
iii
T
x
x
Ek
dx Ev Ev T T T
+
++?
?
Δ
?
?
?+?=?+
∫
1
2
阶中心差分
另一种办法是什么呢?