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. 数值格式
考虑一维情况下的对流扩散方程:
(1)
为简便化,计算在均匀网格上进行,若记
为计算的网格节点,
表示计算单元,则网格步长为
,网格单元中心为
。
令
,在方程(1)两端对x求导数,得如下方程:
定义
和
的单元平均值:
对(1)式在单元
上积分化简得到一个对流扩散方程(1)的等价形式为:
则可得微分方程(1)的半离散形式为:
(2)
称
和
为数值通量,它们需要满足数值通量条件:Lipschitz-连续和相容性。这里我们使用Lax-Friedrichs通量 [17]:
其中
。
为了保证整个空间方向的精度,本文采用三点的埃尔米特插值去近似扩散项:
使用三阶TVD Runge-Kutta [18] 对常微分方程(2)进行时间上的离散
有限体积HWENO格式重要的部分是根据单元平均值
计算点值
的重构,这个重构过程还要保证格式的高阶精度和本质无振荡性质。下面分别给出
,
的HWENO重构步骤。
2.1. 根据单元平均值
,由HWENO方法重构
的步骤
1) 给定三个小模板
和一个大模板
在集合
上分别重构三个二次多项式
和一个四次多项式
,其分别满足下面的条件:
经计算,这些多项式在单元边界
处的值可表示为:
2) 求线性权
,满足:
对于在大模板上的所有的
和
的单元平均值都成立且满足
。从而可得:
3) 计算光滑指示子
。光滑指示子是用来反映插值函数
在所在目标单元
上的光滑程度。这里采用文献 [7] 的光滑指示子的表达形式:
本文中,通过计算求得:
4) 计算非线性权。
这里
是2)中的线性权,
是一个事先给定的非常小的正数,避免分母变为0,本文计算中取
。最后可计算出
的HWENO重构表达形式为:
对于
的重构过程与上面的
的重构过程关于单元边界
成镜面对称的,可由上述步骤类似得到。
2.2. 根据单元平均值
,由HWENO方法重构
的步骤
1) 同样给定三个小模板
和一个大模板
在集合
上分别重构三个三次多项式
和一个五次多项式
,分别满足条件:
经计算,这些多项式的一阶导数在单元边界
处的值可表示为:
2) 计算线性权
。由:
则
3) 计算光滑指示子。导数的光滑指示子的定义如下:
因为重构的是函数的一阶导数值而不是函数值,因此求和从二阶导数开始。经计算,本文中光滑指示子的表达式可写为:
4) 计算非线性权,利用:
最后,基于HWENO重构的
为:
同样地,利用镜面对称,可求出
的重构。
将重构得到的
代入通量中,此时(2)式即化为常微分方程,最后通过TVD Runge-Kutta法进行时间上的离散。
3. 数值结果
3.1. 算例3.1一维精度测试
这部分我们给出了大量的数值算例,通过算例说明HWENO格式的性质和算法的稳定性和有效性。数值实验均在Matlab 2018a环境中执行。
求解线性对流扩散方程:
问题的初始解为
,且在计算区域取周期边界条件。精确解为
。这里我们取
,时间计算到
。表1的数据结果显示本文的数值格式达到了五阶精度。

Table 1. Error and accuracy of HWENO schemes
表1. HWENO格式的误差和精度阶
3.2. 算例3.2非线性Burgers方程 [19]
该问题在区间
上满足边界条件
。取
,最终时间计算到
。初始值为:
该问题的精确解被给出:
图1画出了该方程在网格为100的时候和精确解的数值结果。可以清楚地看到,数值计算结果与精确解吻合的很好。
3.3. 算例3.3 Buckley-Leveret方程的求解
求解Buckley-Leveret方程 [20]:
数值解计算到
,取
,边界条件为常值边界条件即
。
和初始条件为:
流通量为:
图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方法推进。本文的难点在于,方程的解既要达到高精度,保证格式的紧性,又要实现无振荡性质。结合方程的特点,我们这里也给出了较好的数值离散方法,这个方法构造简单,也比较容易实现。最后大量的数值算例验证了该方法的精度和本质无振荡性质。