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 ? + ?= ? ∫∫∫ ∫∫ KK w 我们可以用高斯定理(散度定理)作替换: S () V Ev ndS Ev dV?=?? ∫∫ ∫∫∫ K KK 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 KKK 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 ? ? = ? = ×+× ?? ? ? ? ?? ? =?? ? ? = ? ? ? KK K   K   ?体积的热量增加 = S k T ndS? ? ∫∫ K w VSS E dV Ev ndS k T ndS t ? ?+?=? ? ∫∫∫ ∫∫∫ ∫∫ ? K KK wx 注意:散度定理的应用导致了: () ( ) 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  阶中心差分 另一种办法是什么呢?