system: [SYSTEM]

user: 2. 数值格式的构建 2.1. Burgers方程 以Burgers方程为例： ∂ u ∂ t + u ∂ u ∂ x = ν ∂ 2 u ∂ x 2 ，   x ∈ Ω = [ a ， b ] ，   t ∈ [ 0 ， T ] (2.1) 下利用有限体积法给出具体求解过程。 将计算区间 [ a ， b ] 剖分成N个等距的网格，记 x 1 2 = a < x 3 2 = a + Δ x < ⋯ < x N + 1 2 = b (2.2) 则有每一个控制单元 I j = [ x j − 1 2 ， x j + 1 2 ] ， j = ( 1 ， ⋯ ， N ) 的长度为 Δ x = b − a N 将(2.1)式在 I j 上积分，可得 ∫ I j ∂ u ∂ t d x + ∫ I j ∂ f ∂ x d x = ∫ I j ν ∂ 2 u ∂ x 2 d x 其中， f = u 2 。 进一步写成 ∂ ∂ t ∫ I j u ( x ， t ) d x + f ( x ， t ) | x j + 1 2 x j + 1 2 = ν ∂ 2 u ∂ x 2 | x j + 1 2 x j + 1 2 (2.3) 进而可得 ∂ ∂ t ∫ I j u ( x ， t ) d x + [ f ( x j + 1 2 ， t ) − f ( x j − 1 2 ， t ) ] = ν [ u ′ ( x j + 1 2 ， t ) − u ′ ( x j + 1 2 ， t ) ] (2.4) 定义 u ¯ j ( t ) = 1 Δ x ∫ I j u ( x ， t ) d x 是第j个单元的单元平均值，则(2.4)式可以简化为 Δ x ∂ u ¯ j ( t ) ∂ t + [ f ( x j + 1 2 ， t ) − f ( x j − 1 2 ， t ) ] = ν [ u ′ ( x j + 1 2 ， t ) − u ′ ( x j + 1 2 ， t ) ] 为了简单起见，记 u ( x j + 1 2 ， t ) = u j + 1 2 则有 Δ x ∂ u ¯ j ( t ) ∂ t + ( f j + 1 2 − f j − 1 2 ) = v ( u ′ j + 1 2 − u ′ j − 1 2 ) (2.5) 再次，引入空间离散，在 t = t 0 时，由上面单元积分平均值的定义，可以计算 u ¯ 1 0 ， u ¯ 2 0 ， ⋯ ， u ¯ N 0 ，由等式(2.5)可知，要求解 t = t 1 时的 u ¯ 1 1 ， u ¯ 2 1 ， ⋯ ， u ¯ N 1 的话，必须知道单元界面处的点值。 下用单元积分平均值表示单元界面处的点值 u ( x j + 1 2 ， t ) ， j = ( 0 ， 1 ， ⋯ ， N ) ，然后利用数值格式实现用单 元积分平均值表示点值，代入方程(2.5)，得出便于求解的线性方程或线性方程组。由图1可知，由于是等距剖分，故令 x C = x j ，由于对流项的离散产生的数值耗散比较大，所以先建立对流项的离散格式。 图1. 三个相邻的节点及单元 2.2. 高阶格式 如图1所示，U、C、D是相邻的3个网格节点，分别表示上游(upwind point)、中心(central point)和下游(downwind point)的三个节点，f表示控制单元的界面(cell face)。若界面值 ϕ f 由单元平均值 ϕ U ， ϕ C ， ϕ D 确定，一般情况下，选取三个单元平均值重构界面值时可以表达成以下函数关系： ϕ f = f ( ϕ ¯ U ， ϕ ¯ C ， ϕ ¯ D ) (2.6) 则 ϕ f 可以表达为 ϕ f = ϕ ¯ C + [ 1 + k 4 ( ϕ ¯ D − ϕ ¯ C ) + 1 − k 4 ( ϕ ¯ C − ϕ ¯ U ) ] (2.7) 其中，参数 k ∈ [ − 1 ， 1 ] ，对k赋不同的值可得到不同的高阶格式。根据Leonard的正则变量化方法 [ 18 ]，定义正则化变量形式(Normalized Variable Formulation， NVF)为 ϕ ^ = ϕ ¯ − ϕ ¯ U ϕ ¯ D − ϕ ¯ U 这里的 ϕ 的取值为 ϕ U ， ϕ C ， ϕ D ， ϕ f 。于是有(2.6)的变量正则化形式是 ϕ ^ f = f ( ϕ ^ U ， ϕ ^ C ， ϕ ^ D ) (2.8) 因为 ϕ ^ U = 0 ， ϕ ^ D = 1 ，所以(2.8)化简为 ϕ ^ f = f ( ϕ ^ C ) 则k格式(2.7)可化为 ϕ ^ f = ( 1 − k 2 ) ϕ C + 1 4 ( 1 + k ) (2.9) 由式(2.9)得知， ϕ ^ f 的变化只依赖于k和 ϕ ^ C ，很大程度上简化了新的数值格式的建立过程。 表1给出了几种常见的对流格式的NV线，值得注意的是，这些线性高阶格式都不满足有界性，因此，采用有界性准则结合线性高阶格式来构造高分辨率格式。 Table 1 The linear convection schemes and the NV formulation Schemes k Non-Normalized Normalized SOU −1 ϕ f = 3 2 ϕ C − 1 2 ϕ U ϕ ^ f = 3 2 ϕ ^ C CD 1 ϕ f = 1 2 ϕ C + 1 2 ϕ D ϕ ^ f = 1 2 ϕ ^ C + 1 2 Fromm 0 ϕ f = ϕ C + 1 4 ( ϕ D − ϕ U ) ϕ ^ f = ϕ ^ C + 1 4 QUICK 1 2 ϕ f = 3 4 ϕ C + 3 8 ϕ D − 1 8 ϕ U ϕ ^ f = 3 4 ϕ ^ C + 3 8 CUI 1 3 ϕ f = 5 6 ϕ C + 1 3 ϕ D − 1 6 ϕ U ϕ ^ f = 5 6 ϕ ^ C + 1 3 表1. 线性对流格式及其NV格式 通常称数值格式的正则变量化形式在 ϕ ^ C − ϕ ^ f 坐标系上的图形表达为格式的正则变量图(Normalized Variable Diagram， NVD)，某一个格式在NVD上的图形表达称为其对应的NV线。在Leonard提出的NVD的基础上，Gaskell和Lau提出了对流有界性准则，即CBC准则。利用正则变量化形式，CBC准则可以表为： { ϕ ^ C < ϕ ^ f = f ( ϕ ^ C ) < 1 ，       0 < ϕ ^ C < 1 ϕ ^ f = ϕ ^ C ，                                           ϕ ^ C ≤ 0 ϕ ^ f = ϕ ^ C ，                                           ϕ ^ C ≥ 1 (2.10) 数值格式的有界性，又称单调性，是指其数值计算结果不会超过物理问题自身所规定的上下限，即网格界面值 ϕ f 应满足以下不等式： min ( ϕ ^ C ， ϕ ^ D ) ≤ ϕ f ≤ max ( ϕ ^ C ， ϕ ^ D ) (2.11) 现在来分析一下CBC准则是如何保证界面值满足有界性的。当 ϕ ^ U ≤ ϕ ^ C ≤ ϕ ^ D 或者 ϕ ^ U ≥ ϕ ^ C ≥ ϕ ^ D ，即解是单调时，此时如果界面值 ϕ f 满足 ϕ ^ C ≤ ϕ ^ f ≤ ϕ ^ D 或者 ϕ ^ C ≥ ϕ ^ f ≥ ϕ ^ D (2.12) ϕ ^ C ≤ ϕ ^ f ≤ 1 ，当 0 ≤ ϕ ^ C ≤ 1 (2.13) 当 ϕ ¯ C ∉ [ ϕ ¯ U ， ϕ ¯ D ] 或者 ϕ ¯ C ∉ [ ϕ ¯ D ， ϕ ¯ U ] 时，解不是单调的，此时如果使用一阶迎风格式 ϕ f = ϕ ¯ C ，就能保持解是单调的。上述情况用正则化变量形式表达就是 ϕ ^ f = ϕ ^ C ，当 ϕ ^ C < 0 或 ϕ ^ C > 1 (2.14) 然而，Wei [ 19 ] 和Hou [ 20 ] 证明了CBC准则只能保证数值格式的有界性，而未提及数值格式的精度。为了克服这个缺点，Wei和Hou提出了一个改进的CBC准则，即BAIR准则。它的正则变量化形式为 { 3 2 ϕ ^ C ≤ ϕ ^ f = f ( ϕ ^ C ) ≤ 1 2 ( ϕ ^ C + 1 ) ，               0 < ϕ ^ C < 1 2 1 2 ( ϕ ^ C + 1 ) ≤ ϕ ^ f ≤ 3 2 ϕ ^ C 且 ϕ ^ f ≤ 1 ，                 1 2 ≤ ϕ ^ C ≤ 1 ϕ ^ f = ϕ ^ C ，                                                                     ϕ ^ C ≤ 0 或 ϕ ^ C ≥ 1 (2.15) 另一个重要的对流项有界性约束是TVD (Total Variational Diminishing)约束条件，用限制器函数表示为 0 ≤ ψ ( r ) ≤ min ( 2 r ， 2 ) ，     r > 0 ψ ( r ) = 0 ，     r ≤ 0 其中 ψ ( r ) 是一个限制器(limiter)函数，其中 r = ϕ D − ϕ C ϕ C − ϕ U TVD约束条件也可以表达为 { ϕ ^ f ≤ 1 且 ϕ ^ f ∈ [ ϕ ^ C ， 2 ϕ ^ C ] ，                     0 < ϕ ^ C < 1 ϕ ^ f = ϕ ^ C ，                                                           ϕ ^ C ≤ 0 或 ϕ ^ C ≥ 1 (2.16) 综上所述，将BAIR区域与TVD区域绘制于图2中 图2. BAIR区域(虚线部分)和TVD区域(阴影部分) 2.3. Hermite插值构造新格式 由上可知，若格式满足对流有界性，那么格式的NV线必须落在TVD区域和BAIR区域的重合区域内，由前面提到的HR格式的标准化形式： ϕ ^ f = f ( ϕ ^ C ) ，由图2可知 f ( 0 ) = 0 ， f ( 1 2 ) = 3 4 ， f ( 1 ) = 1 由于所选的CUI格式不满足对流有界性，因此利用分段的思想来构造MCUI格式，使得此格式满足对流有界性准则。在 1 3 ≤ ϕ ^ C ≤ 2 3 的区间内，选取原有的CUI格式，在 0 < ϕ ^ C < 1 3 内，选取 f ( 0 ) = 0 ， f ( 1 3 ) = 11 18 和 f ′ ( 0 ) = 2 ，利用Hermite插值构造曲线，使曲线在重合的区域内，如图3所示，得到满足对流有界性的格式MCUI格式。该格式的正则化形式为 图3. MCUI格式在BAIR区域中的NV线 本文采用Local Lax-Friedrichs格式求解界面的数值通量f，任意单元体界面通量f可以表示为 f = h ( ϕ L ， ϕ R ) ，利用Local Lax-Friedrichs计算数值流通量式子如下： f Lax = 1 2 [ f ( ϕ L ) + f ( ϕ R ) − max | f ′ ( ϕ ) | ( ϕ R − ϕ L ) ] 对流项的离散完成后，扩散项采用二阶中心差分格式： ∂ φ ¯ j ∂ t + 1 Δ x ( f ^ j + 1 2 − f ^ j − 1 2 ) = v Δ x ( u j + 1 − 2 u j + u j − 1 Δ x ) 2.4. 时间项的离散 完成了关于空间导数的离散后，得到了关于时间t的一个常微分方程，即 d ϕ ¯ d t = L (ϕ) 为了抑制非物理振荡，采用三阶Runge-Kutta格式进行离散： { ϕ ( 1 ) = ϕ n + L ( ϕ n ) ϕ ( 2 ) = 3 4 ϕ n + 1 4 [ ϕ ( 1 ) + L ( ϕ ( 1 ) ) ] ϕ n + 1 = 1 3 ϕ n + 2 3 [ ϕ ( 2 ) + L ( ϕ ( 2 ) ) ]