求解一维对流扩散方程的高阶方法
High-Order Methods for Solving One-Dimensional Convection-Diffusion Equations
摘要: 本文提出了一类求解一维对流扩散方程的埃尔米特插值的加权本质无振荡格式,称为HWENO (Hermite WENO)格式。这类格式的主要优点是在光滑区域内实现高阶精度,在间断处能够保持强间断性且无振荡。本文将对流扩散方程中对流项采用HWENO格式去求解,为了保证格式的紧性和高阶精度,扩散项采用三点的埃尔米特插值去近似得到,首先将方程写成守恒的半离散形式。格式的构造中,空间项基于有限体积形式的高精度Hermite重构,时间项采用非线性稳定的Runge-Kutta方法推进。大量的数值结果验证了本文格式的有效性和稳定性。
Abstract: In this paper, a class of weighted essentially non-oscillatory (WENO) schemes of Hermite interpolation, termed HWENO (Hermite WENO) schemes, for solving one-dimension convection-diffusion equations is presented. The main advantage of the schemes is their capability to achieve high order formal accuracy in smooth regions while maintaining stable, nonoscillatory and sharp discontinuity transitions. In this paper, the convection term in the convection-diffusion equation is solved by the HWENO scheme. In order to ensure the compactness and high order accuracy of the scheme, the diffusion term is approximated by the three-point Hermite interpolation. Firstly, the equation is written into a conserved semi-discrete form. The constructed spatial term was based on the high order accuracy Hermite interpolation, finite volume formulation, and the time term was advanced by using the nonlinearly stable Runge-Kutta method. A large number of numerical results verify the validity and stability of the proposed scheme.
文章引用:刘艺明, 刘红霞. 求解一维对流扩散方程的高阶方法[J]. 应用数学进展, 2021, 10(4): 1132-1140. https://doi.org/10.12677/AAM.2021.104123

1. 引言

对流扩散方程所涉及的物理模型在许多的领域有着广泛的应用。例如气体动力学、石油勘探等方面。对于这类方程的求解方法虽然也有不少,但当求解的问题背景带有间断时,其他方法就显得顾此失彼了。因此设计准确有效的方法来解决这些问题是相当重要的,并且已经吸引了许多研究人员和实践者的兴趣。为了解决这一问题,近几十年来发展了许多高阶数值方法 [1] [2] [3] [4]。1987年Harten等人提出了有限体积ENO格式 [5],它使用一个基于局部光滑的自适应模板,从而在函数光滑的地方产生高阶精度。之后,刘旭东等人在1994年提出了一个高阶WENO格式 [6] [7],不再仅使用一个候选模板,而是使用所有候选模板的线性凸组合。在没破坏间断点附近的非振荡行为的情况下,还使数值通量的精度提高了一阶。2004年,邱建贤和舒其望根据WENO的重构思想,提出了一类Hermite WENO (HWENO)格式 [8],其重构过程需要原函数值及其一阶导数值,而原始的WENO格式只需原函数值参与重构。相比较WENO格式而言,HWENO格式为更紧致的一类格式,具有紧性。之后将HWENO格式推广到求解二维守恒律 [9] 和Hamilton-Jacobi [10] 方程。而本文的FVM-HWENO方法思想来源于求解带间断问题的双曲方程,即在问题的光滑处可以达到高阶精度,在问题的间断处可以有很好的陡峭的过度,是处理带有间断问题的一类较满意的数值方法。而且之前的文献 [11] - [16] 对于数值格式的研究大都考虑双曲问题,对于其他类型的方程研究较少,本文将HWENO方法用于求解对流扩散方程的对流项,扩散项采用三点的埃尔米特插值去近似,提出了适合这类方程的数值格式。

本文基于FVM-HWENO方法,推导了对流扩散方程的数值求解格式,且在光滑处保持高阶精度,间断处保持无振荡,数值实验证明了本文格式对求解带间断和强激波的对流扩散方程的有效性。

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法进行时间上的离散。

3. 数值结果

3.1. 算例3.1一维精度测试

这部分我们给出了大量的数值算例,通过算例说明HWENO格式的性质和算法的稳定性和有效性。数值实验均在Matlab 2018a环境中执行。

求解线性对流扩散方程:

{ u t + u x = ε u x x , u ( x , 0 ) = u 0 ( x ) , 0 x 2 π , t > 0.

问题的初始解为 u ( x , 0 ) = sin ( x ) ,且在计算区域取周期边界条件。精确解为 u ( x , t ) = e ε t sin ( x t ) 。这里我们取 ε = 0.01 ,时间计算到 t = 1 表1的数据结果显示本文的数值格式达到了五阶精度。

Table 1. Error and accuracy of HWENO schemes

表1. HWENO格式的误差和精度阶

3.2. 算例3.2非线性Burgers方程 [19]

{ u t + ( u 2 / 2 ) x = ε u x x , u ( x , 0 ) = u 0 ( x ) , 0 x 2 , t > 0.

该问题在区间 [ 0 , 2 ] 上满足边界条件 u ( 0 , t ) = u ( 2 , t ) = 0 。取 ε = 0.01 , α = 2 ,最终时间计算到 t = 1 。初始值为:

u ( x , 0 ) = 2 π ε sin ( π x ) α + cos ( π x ) ,

该问题的精确解被给出:

u ( x , t ) = 2 π ε exp ( π 2 ε t ) sin ( π x ) α + exp ( π 2 ε t ) cos ( π x ) .

图1画出了该方程在网格为100的时候和精确解的数值结果。可以清楚地看到,数值计算结果与精确解吻合的很好。

3.3. 算例3.3 Buckley-Leveret方程的求解

求解Buckley-Leveret方程 [20]:

{ u t + f ( u ) x = ε ( v ( u ) u x ) x , u ( x , 0 ) = u 0 ( x ) , 0 x 1 , t > 0.

数值解计算到 t = 0.2 ,取 ε = 0.01 ,边界条件为常值边界条件即 u ( 0 , t ) = 1 v ( u ) 和初始条件为:

v ( u ) = { 4 u ( 1 u ) , 0 u 1 0 , ,

u ( x , 0 ) = { 1 3 x , 0 x 1 / 3 0 , 1 / 3 x 1 .

流通量为: f ( u ) = u 2 u 2 + ( 1 u ) 2 .

图2画出了数值解与800个网格点的解作为参考解之间的数值结果,从结果可以看出在间断处基本无振荡。

Figure 1. Numerical simulation of Burgers equation

图1. Burgers方程的数值模拟

Figure 2. Numerical simulation of Buckley-Leveret equation

图2. Buckley-Leveret方程的数值模拟

4. 总结

本文求解了对流扩散方程,对流项采用五阶HWENO方法重构,扩散项采用了三点的埃尔米特插值,时间上采用经典的总变差有界的三阶Runge-Kutta方法推进。本文的难点在于,方程的解既要达到高精度,保证格式的紧性,又要实现无振荡性质。结合方程的特点,我们这里也给出了较好的数值离散方法,这个方法构造简单,也比较容易实现。最后大量的数值算例验证了该方法的精度和本质无振荡性质。

参考文献

[1] Shu, C.W. (2009) High Order Weighted Essentially Nonoscillatory Schemes for Convection Dominated Problems. SIAM Review, 51, 82-126.
https://doi.org/10.1137/070679065
[2] 陈凡, 徐之晓. 对流扩散方程的迎风间断有限体积元方法[J]. 枣庄学院学报, 2018, 35(5): 53-58.
[3] Cheng, Y.D. and Shu, C.W. (2009) Superconvergence of Local Discontinuous Galerkin Methods for One-Dimensional Convection-Diffusion Equations. Computers & Structures, 87, 630-641.
https://doi.org/10.1016/j.compstruc.2008.11.012
[4] 程晓晗, 封建湖, 郑素佩. 求解对流扩散方程的低耗散中心迎风格式[J]. 应用数学, 2017, 30(2): 344-349.
[5] Harten, A., Engquist, B., Osher, S. and Chakravarthy, S.R. (1997) Uniformly High Order Accurate Essentially Nonoscillatory Schemes, III. Journal of Computational Physics, 131, 3-47.
https://doi.org/10.1006/jcph.1996.5632
[6] Liu, X.D., Osher, S. and Chan, T. (1994) Weighted Essentially Non-Oscillatory Schemes. Journal of Computational Physics, 115, 200-212.
https://doi.org/10.1006/jcph.1994.1187
[7] Jiang, G.S. and Shu, C.W. (1996) Efficient Implementation of Weighted ENO Schemes. Journal of Computational Physics, 126, 202-228.
https://doi.org/10.1006/jcph.1996.0130
[8] Qiu, J.X. and Shu, C.W. (2004) Hermite WENO Schemes and Their Application as Limiters for Runge-Kutta Galerkin Method: One-Dimension Case. Journal of Computational Physics, 193, 115-135.
https://doi.org/10.1016/j.jcp.2003.07.026
[9] Qiu, J.X. and Shu, C.W. (2005) Hermite WENO Schemes and Their Application as Limiters for Runge-Kutta Discontinuous Galerkin Method II: Two Dimensional Case. Computers & Fluids, 34, 642-663.
https://doi.org/10.1016/j.compfluid.2004.05.005
[10] Zheng, F. and Qiu, J.X. (2016) Directly Solving the Hamilton-Jacobi Equations by Hermite WENO Schemes. Journal of Computational Physics, 307, 423-445.
https://doi.org/10.1016/j.jcp.2015.12.011
[11] Liu, H.X. and Qiu, J.X. (2015) Finite Difference Hermite WENO Schemes for Hyperbolic Conservation Laws. Journal of Scientific Computing, 63, 548-572.
https://doi.org/10.1007/s10915-014-9905-2
[12] Zhao, Z., Zhu, J. and Chen, Y.B. (2019) A New Hybrid WENO Scheme for Hyperbolic Conservation Laws. Computers & Fluids, 179, 422-436.
https://doi.org/10.1016/j.compfluid.2018.10.024
[13] Zhu, J. and Qiu, J.X. (2017) A New Type of Finite Volume WENO Schemes for Hyperbolic Conservation Laws. Journal of Scientific Computing, 73, 1338-1359.
https://doi.org/10.1007/s10915-017-0486-8
[14] Zhu, J. and Qiu, J.X. (2016) A New Fifth Order Finite Difference WENO Scheme for Solving Hyperbolic Conservation Laws. Journal of Computational Physics, 318, 110-121.
https://doi.org/10.1016/j.jcp.2016.05.010
[15] Zhu, J. and Qiu, J.X. (2017) A New Third Order Finite Volume Weighted Essentially Non-Oscillatory Scheme on Tetrahedral Meshes. Journal of Computational Physics, 349, 220-222.
https://doi.org/10.1016/j.jcp.2017.08.021
[16] Tao, Z.J., Li, F.Y. and Qiu, J.X. (2015) High-Order Central Hermite WENO Schemes on Staggered Meshes for Hyperbolic Conservation Laws. Journal of Computational Physics, 281, 148-176.
https://doi.org/10.1016/j.jcp.2014.10.027
[17] Luo, D.M., Huang, W.Z. and Qiu, J.X. (2016) A Hybrid LDG-HWENO Scheme for Kdv-Type Equations. Journal of Computational Physics, 313, 754-774.
https://doi.org/10.1016/j.jcp.2016.02.064
[18] Zhu, J., Shu, C.W. and Qiu, J.X. (2020) High-Order Runge-Kutta Discontinuous Galerkin Methods with a New Type of Multi-Resolution WENO Limiters on Triangular Meshes. Applied Numerical Mathematics, 153, 519-539.
https://doi.org/10.1016/j.apnum.2020.03.013
[19] Yang, X.J., Ge, Y.B. and Zhang, L. (2019) A Class of High-Order Compact Difference Schemes for Solving the Burgers’ Equations. Applied Mathematics and Computation, 358, 394-417.
https://doi.org/10.1016/j.amc.2019.04.023
[20] Zhang, Y.F., Zhang, X.X. and Shu, C.W. (2013) Maximum-Principle-Satisfying Second Order Discontinuous Galerkin Schemes for Convection-Diffusion Equations on Triangular Meshes. Journal of Computational Physics, 234, 295-316.
https://doi.org/10.1016/j.jcp.2012.09.032