system: [SYSTEM]

user: 2. 数值格式 考虑一维情况下的对流扩散方程： { u t + f ( u ) x = a ( u ) x x ，     x ∈ ( − ∞ ， ∞ ) ，     t ∈ ( 0 ， ∞ ) ， u ( x ， 0 ) = u 0 ( x ) ，         x ∈ ( − ∞ ， ∞ ) .             (1) 为简便化，计算在均匀网格上进行，若记 x i 为计算的网格节点， I i = { x i − 1 2 ， x i + 1 2 } 表示计算单元，则网格步长为 Δ x = x i + 1 − x i ，网格单元中心为 x i + 1 2 = 1 / 2 ( x i + x i + 1 ) 。 令 v = u x ， b ( u ， v ) = a ( u ) x = a ′ ( u ) v ， g ( u ， v ) = f ( u ) x = f ′ ( u ) v ，在方程(1)两端对x求导数，得如下方程： { u t + f ( u ) x = a ( u ) x x ， u ( x ， 0 ) = u 0 ( x ) ， v t + g ( u ， v ) x = b ( u ， v ) x x ， v ( x ， 0 ) = v 0 ( x ) . 定义 u 和 v 的单元平均值： { u ¯ i ( t ) = 1 Δ x ∫ I i u ( x ， t ) d x ， v ¯ i ( t ) = 1 Δ x ∫ I i v ( x ， t ) d x . 对(1)式在单元 I i 上积分化简得到一个对流扩散方程(1)的等价形式为： { d u ¯ i ( t ) d t = − 1 Δ x [ ( f ( u ( x i + 1 2 ， t ) ) ) − ( f ( u ( x i − 1 2 ， t ) ) ) ] + 1 Δ x ∫ x i − 1 2 x i + 1 2 a ( u ) x d x ， d v ¯ i ( t ) d t = − 1 Δ x [ ( g ( u ( x i + 1 2 ， t ) ， v ( x i + 1 2 ， t ) ) ) − ( g ( u ( x i − 1 2 ， t ) ， v ( x i − 1 2 ， t ) ) ) ] + 1 Δ x ∫ i − 1 2 x i + 1 2 b ( u ， v ) x d x ， 则可得微分方程(1)的半离散形式为： { d u ¯ i ( t ) d t = − 1 Δ x ( f ^ i + 1 2 − f ^ i − 1 2 ) + a i ( t ) ， d v ¯ i ( t ) d t = − 1 Δ x ( g ^ i + 1 2 − g ^ i − 1 2 ) + b i ( t ) ， (2) 称 f ^ i + 1 2 和 g ^ i + 1 2 为数值通量，它们需要满足数值通量条件：Lipschitz-连续和相容性。这里我们使用Lax-Friedrichs通量 [ 17 ]： { f ^ i + 1 2 = 1 2 [ f ( u i + 1 2 − ) + f ( u i + 1 2 + ) − α ( u i + 1 2 + − u i + 1 2 − ) ] ， g ^ i + 1 2 = 1 2 [ g ( u i + 1 2 − ， v i + 1 2 − ) + g ( u i + 1 2 + ， v i + 1 2 + ) − α ( v i + 1 2 + − v i + 1 2 − ) ] . 其中 α = max u ∈ D | f ′ ( u ) | ， D = [ min ( a ， b ) ， max ( a ， b ) ] 。 为了保证整个空间方向的精度，本文采用三点的埃尔米特插值去近似扩散项： a i = 5 4 Δ x 2 u ¯ i − 1 - 1 Δ x 2 u ¯ i − 1 4 Δ x 2 u ¯ i + 1 + 1 2 Δ x v ¯ i − 1 + 1 Δ x v ¯ i + 1 ， b i = 3 16 Δ x u ¯ i − 1 - 3 2 Δ x u ¯ i + 21 16 Δ x u ¯ i + 1 + 1 16 v ¯ i − 1 - 3 16 v ¯ i + 1 . 使用三阶TVD Runge-Kutta [ 18 ] 对常微分方程(2)进行时间上的离散 { u ¯ (1) = u ¯ n + Δ t L ( u ¯ n ) ， u ¯ (2) = 3 4 u ¯ n + 1 4 u ¯ (1) + 1 4 Δ t L ( u ¯ (1) ) ， u ¯ (3) = 1 3 u ¯ n + 2 3 u ¯ (2) + 2 3 Δ t L ( u ¯ (2) ) . 有限体积HWENO格式重要的部分是根据单元平均值 { u ¯ i ， v ¯ i } 计算点值 { u i + 1 2 ± ， v i + 1 2 ± } 的重构，这个重构过程还要保证格式的高阶精度和本质无振荡性质。下面分别给出 u i + 1 2 ± ， v i + 1 2 ± 的HWENO重构步骤。 2.1. 根据单元平均值 { u ¯ i ， v ¯ i } ，由HWENO方法重构 u i + 1 2 ± 的步骤 1) 给定三个小模板 S 0 = { I i − 1 ， I i } ， S 1 = { I i ， I i + 1 } ， S 2 = { I i − 1 ， I i ， I i + 1 } 和一个大模板 T = { I i − 1 ， I i ， I i + 1 } = S 0 ∪ S 1 ∪ S 2 ， 在集合 S 0 ， S 1 ， S 2 ， T 上分别重构三个二次多项式 p 0 ( x ) ， p 1 ( x ) ， p 2 ( x ) 和一个四次多项式 q ( x ) ，其分别满足下面的条件： 1 Δ x ∫ I i + j p 0 ( x )   d x = u ¯ i + j ， j = − 1 ， 0 ， 1 Δ x ∫ I i − 1 p ′ 0 ( x )   d x = v ¯ i − 1 ; 1 Δ x ∫ I i + j p 1 ( x ) d x = u ¯ i + j ， j = 0 ， 1 ， 1 Δ x ∫ I i + 1 p ′ 1 ( x )   d x = v ¯ i + 1 ; 1 Δ x ∫ I i + j p 2 ( x ) d x = u ¯ i + j ， j = − 1 ， 0 ， 1 ; 1 Δ x ∫ I i + j q ( x )   d x = u ¯ i + j ， j = − 1 ， 0 ， 1 ， 1 Δ x ∫ I i + j q ′ ( x )   d x = v ¯ i + j . 经计算，这些多项式在单元边界 x i + 1 2 处的值可表示为： p 0 ( x i + 1 2 ) = − 7 6 u ¯ i − 1 + 13 6 u ¯ i − 2 Δ x 3 v ¯ i − 1 ， p 1 ( x i + 1 2 ) = 5 6 u ¯ i + 1 + 1 6 u ¯ i − Δ x 3 v ¯ i + 1 ， p 2 ( x i + 1 2 ) = − 1 6 u ¯ i − 1 + 5 6 u ¯ i + 1 3 u ¯ i + 1 ， q ( x i + 1 2 ) = − 23 120 u ¯ i − 1 + 19 30 u ¯ i + 67 120 u ¯ i + 1 − Δ x ( 3 40 v ¯ i − 1 + 7 40 v ¯ i + 1 ) . 2) 求线性权 γ 0 ， γ 1 ， γ 2 ，满足： q ( x i + 1 2 ) = ∑ j = 0 2 γ j p j ( x i + 1 2 ) ， 对于在大模板上的所有的 u 和 v 的单元平均值都成立且满足 ∑ j = 0 2 γ j = 1 。从而可得： γ 0 = 9 80 ， γ 1 = 21 40 ， γ 2 = 29 80 . 3) 计算光滑指示子 β j 。光滑指示子是用来反映插值函数 p j ( x ) 在所在目标单元 I i 上的光滑程度。这里采用文献 [ 7 ] 的光滑指示子的表达形式： β j = ∑ l = 1 2 ∫ I i Δ x 2 l − 1 ( ∂ l ∂ x l p j ( x ) ) 2 d x . 本文中，通过计算求得： β 0 = ( − 2 u ¯ i − 1 + 2 u ¯ i − Δ x v ¯ i + 1 ) 2 + 13 3 ( − u ¯ i − 1 + u ¯ i − Δ x v ¯ i − 1 ) 2 ， β 1 = ( − 2 u ¯ i + 2 u ¯ i + 1 − Δ x v ¯ i + 1 ) 2 + 13 3 ( u ¯ i − u ¯ i + 1 + Δ x v ¯ i + 1 ) 2 ， β 2 = 1 4 ( − u ¯ i − 1 + u ¯ i + 1 ) 2 + 13 12 ( u ¯ i − 1 − 2 u ¯ i + u ¯ i + 1 ) 2 . 4) 计算非线性权。 ω j = ω ¯ k ∑ k = 0 2 ω ¯ k ，         ω ¯ k = γ k ( ε + β k ) 2 ， j ， k = 0 ， 1 ， 2 ， 这里 γ k 是2)中的线性权， ε 是一个事先给定的非常小的正数，避免分母变为0，本文计算中取 ε = 10 − 6 。最后可计算出 u i + 1 2 − 的HWENO重构表达形式为： u i + 1 2 − ≈ ∑ j = 0 2 ω j p j ( x i + 1 2 ) . 对于 u i + 1 2 + 的重构过程与上面的 u i + 1 2 − 的重构过程关于单元边界 x i + 1 2 成镜面对称的，可由上述步骤类似得到。 2.2. 根据单元平均值 { u ¯ i ， v ¯ i } ，由HWENO方法重构 v i + 1 2 ± 的步骤 1) 同样给定三个小模板 S 0 = { I i − 1 ， I i } ， S 1 = { I i ， I i + 1 } ， S 2 = { I i − 1 ， I i ， I i + 1 } 和一个大模板 T = { I i − 1 ， I i ， I i + 1 } = S 0 ∪ S 1 ∪ S 2 ， 在集合 S 0 ， S 1 ， S 2 ， T 上分别重构三个三次多项式 p 0 ( x ) ， p 1 ( x ) ， p 2 ( x ) 和一个五次多项式 q ( x ) ，分别满足条件： 1 Δ x ∫ I i + j p 0 ( x )   d x = u ¯ i + j ， 1 Δ x ∫ I i + j p ′ 0 ( x )   d x = v ¯ i + j ， j = − 1 ， 0 ; 1 Δ x ∫ I i + j p 1 ( x ) d x = u ¯ i + j ， 1 Δ x ∫ I i + j p ′ 1 ( x )   d x = v ¯ i + j ， j = 0 ， 1 ; 1 Δ x ∫ I i + j p 2 ( x ) d x = u ¯ i + j ， j = − 1 ， 0 ， 1 ， 1 Δ x ∫ I i p ′ 2 ( x )   d x = v ¯ i ; 1 Δ x ∫ I i + j q ( x )   d x = u ¯ i + j ， 1 Δ x ∫ I i + j q ′ ( x )   d x = v ¯ i + j ， j = − 1 ， 0 ， 1. 经计算，这些多项式的一阶导数在单元边界 x i + 1 2 处的值可表示为： p ′ 0 ( x i + 1 2 ) = 4 Δ x ( u ¯ i − 1 − u ¯ i ) + 3 2 v ¯ i − 1 + 7 2 v ¯ i ， p ′ 1 ( x i + 1 2 ) = − 2 Δ x ( − u ¯ i + 1 + u ¯ i ) − 1 2 v ¯ i − 1 2 v ¯ i + 1 ， p ′ 2 ( x i + 1 2 ) = 1 4 Δ x ( u ¯ i − 1 − 4 u ¯ i + 3 u ¯ i + 1 ) + 1 2 v ¯ i ， q ′ ( x i + 1 2 ) = 1 Δ x ( 1 4 u ¯ i − 1 − 2 u ¯ i + 7 4 u ¯ i + 1 ) + 1 12 v ¯ i − 1 − 1 6 v ¯ i − 5 12 v ¯ i + 1 . 2) 计算线性权 γ ′ 0 ， γ ′ 1 ， γ ′ 2 。由： q ′ ( x i + 1 2 ) = ∑ j = 0 2 γ ′ j p ′ j ( x i + 1 2 ) ， 则 γ ′ 0 = 1 18 ， γ ′ 1 = 5 6 ， γ ′ 2 = 1 9 . 3) 计算光滑指示子。导数的光滑指示子的定义如下： β ′ j = ∑ l = 2 3 ∫ I i Δ x 2 l − 1 ( ∂ l ∂ x l p j ( x ) ) 2 d x . 因为重构的是函数的一阶导数值而不是函数值，因此求和从二阶导数开始。经计算，本文中光滑指示子的表达式可写为： β ′ 0 = 4 ( 3 u ¯ i − 1 − 3 u ¯ i + Δ x v ¯ i − 1 + 2 Δ x v ¯ i ) 2 + 39 ( 2 u ¯ i − 1 − 2 u ¯ i + Δ x v ¯ i − 1 + Δ x v ¯ i ) 2 ， β ′ 1 = 4 ( − 3 u ¯ i + 3 u ¯ i + 1 − Δ x v ¯ i + 1 − 2 Δ x v ¯ i ) 2 + 39 ( 2 u ¯ i − 2 u ¯ i + 1 + Δ x v ¯ i + 1 + Δ x v ¯ i ) 2 ， β ′ 2 = ( u ¯ i − 1 − 2 u ¯ i + u ¯ i + 1 ) 2 + 39 4 ( − u ¯ i − 1 − 2 Δ x v ¯ i + u ¯ i + 1 ) 2 . 4) 计算非线性权，利用： ω ′ j = ω ¯ ′ k ∑ k = 0 2 ω ¯ ′ k ， ω ¯ ′ k = γ ′ k ( ε + β ′ k ) 2 ， j ， k = 0 ， 1 ， 2. 最后，基于HWENO重构的 v i + 1 2 − 为： v i + 1 2 − ≈ ∑ j = 0 2 ω ′ j p ′ j ( x i + 1 2 ) . 同样地，利用镜面对称，可求出 v i + 1 2 + 的重构。 将重构得到的 u i + 1 2 ± ， v i + 1 2 ± 代入通量中，此时(2)式即化为常微分方程，最后通过TVD Runge-Kutta法进行时间上的离散。