修正有限差分HWENO方法求解对流扩散方程
Modified Finite Difference HWENO Method for Convection-Diffusion Equations
DOI: 10.12677/aam.2025.144145, PDF, HTML, XML,    科研立项经费支持
作者: 王亚博:太原理工大学数学学院,山西 晋中;刘红霞*:太原理工大学人工智能学院,山西 晋中
关键词: 有限差分方法对流扩散方程HWENO格式Hermite插值Finite Difference Method Convection-Diffusion Equations HWENO Schemes Hermite Interpolation
摘要: 在本文中,我们提出了一种修正的高阶有限差分Hermite WENO (HWENO)方法,用于求解均匀网格中的一维和二维对流扩散方程。与求解双曲守恒律的有限差分HWENO方法不同,我们扩展了该方法以求解对流扩散方程。其关键不是使用通量分裂技术,而是使用添加高阶修正项的想法来提高数值通量的精度。此外,在重构过程中,我们不在单元界面上使用函数及其导数值,而是使用解及其导数的点值直接插值。使用Hermite插值计算高阶导数和扩散项,以保持方法的紧凑性。这种方法的一个优点是数值通量的重构过程可以采用任意单调通量。另一个优点是,修改后的方法仍然具有HWENO方案的紧性,并且在相同的网格上也具有更小的数值误差和更好的分辨率。通过一维和二维问题的数值算例验证了所提方法的有效性和稳定性。
Abstract: In this paper, we propose a modified high-order finite difference Hermite WENO (HWENO) method for solving one and two dimensions convection-diffusion equations in uniform meshes. Unlike the finite difference HWENO method for solving hyperbolic conservation laws, we extend the method to solve convection-diffusion equations. The key is not to use the flux splitting technique, but to use the idea of adding higher-order corrections to improve the precision of the numerical flux. Moreover, in the reconstruction process, we do not use the function and its derivative values on the cell interface, but use the direct interpolation of the point values of the solution and its derivatives. The higher derivatives and diffusion term are computed using Hermite interpolation to maintain the compactness of the method. An advantage of this method is that the reconstruction process of the numerical flux can adopt any monotone flux. Another advantage is that the modified method still has the compactness of the HWENO schemes, and also has smaller numerical errors and better resolution on the same mesh. The validity and stability of the proposed method are verified by numerical examples of one and two dimensions problems.
文章引用:王亚博, 刘红霞. 修正有限差分HWENO方法求解对流扩散方程[J]. 应用数学进展, 2025, 14(4): 122-134. https://doi.org/10.12677/aam.2025.144145

1. 引言

在本文中,我们根据求解双曲守恒律的数值方法[1]和文献[2]中的思想从而提出了一种修正的高阶Hermite加权本质非振荡(HWENO)方法来求解有限差分框架下对流占优的对流扩散方程。HWENO方案的构造基于从本质非振荡 (ENO)方案推导的加权本质非振荡(WENO)方案。它们是求解双曲守恒律的较有效和流行的数值方案。Harten和Osher [3] [4]开创性的基于总变分递减(TVD)方法构造了有限体积ENO方案来求解一维问题。Harten还在[5]中完成了二维问题的有限体积ENO方案的研究。在此之后,Casper和Atkins在[6] [7]中开发了一种多维、高阶精度的有限体积ENO方案。随后,Shu和Osher [2] [8]于1988年和1989年提出了一类用于解决多维问题的有限差分ENO方案。1994年,Liu等[9]在有限体积框架内提出了第一个WENO方案,这是第r阶ENO方案的改进版本,其数值精度可以达到(r + 1)阶。后来,Jiang和Shu [10]提出了一个有限差分WENO方案,使用相同的模板可以达到(2r − 1)级精度,并给出了方案的一般框架。与ENO方案相比,WENO方案的重构过程也采用了自适应模板的思想。区别在于,ENO方案仅使用所有候选模板中的一个,而WENO方案使用所有候选模板的非线性凸组合,并为每个模板分配与该模板上数值解的光滑度相关的非线性权重。WENO方案与ENO方案相比具有一些如[11]中所述的优势。

由于高阶WENO方案需要使用有关目标单元及其相邻单元中的解的信息,因此高阶WENO方案需要使用更宽的模板。为了同时实现高阶精度和紧凑性,Qiu和Shu [12] [13]提出了一类基于WENO方案的有限体积HWENO方案,并将其用作Runge-Kutta间断Galerkin方法的限制器。HWENO方案不仅具有像WENO方案一样随时间演变的数值推进格式,而且这些解及其一阶导数值都随时间演变并参与空间重构。因此,HWENO方案以增加额外的工作为代价实现紧凑性。然而,这些方案使用不同的模板来获得不同的多项式来重构解及其一阶导数,因此这些方案不够稳定和鲁棒,无法解决一些问题,例如这些方案不能很好地模拟双马赫和向前步长问题[14]。后来,Liu和Qiu [1] [15]提出了一维和二维双曲守恒律的高阶有限差分HWENO方案,并解决了这个问题。在此方案中,与一维方案的五阶精度相比,二维方案的精度降低为四阶。随后,Zhao等[16]通过使用Hermite限制器修改了解的导数,以提高方案的稳定性,并使有限差分HWENO方案在一维和二维情况下都达到五阶精度。对HWENO方案的更多参考可以在[17]-[20]及其参考文献中找到。

双曲守恒律与对流占优的对流扩散方程密切相关,因此我们希望应用HWENO方案在有限差分框架上求解对流扩散方程。在本文方法中,我们使用HWENO重构作为空间离散化,使用Runge-Kutta方法作为时间离散化,使用中心差分公式作为扩散项离散化。二维HWENO重构时我们使用逐维重构的思想,这既提高了计算效率,又使其易于推进到更高的维度。与[1]相比,对流项的解有几个共同点:首先,可以使用任意单调通量;第二种是直接使用解及其一阶导数点值插值进行计算,而不是使用函数及其一阶导数值进行计算。也有一些差异:首先,我们使用中心差分公式而不是通量分裂来计算高阶通量[2];其次,我们使用Hermite插值而不是WENO重构来计算二维混合导数。改进的HWENO方法在一维情况下可以达到五阶精度,但由于混合导数的影响,在二维情况下只能达到四阶精度。综上所述,修改后的 HWNEO方法大大简化了计算并提高了效率,同时也保持了之前方法的优点。

2. 一维数值格式的构造

为简单起见,我们首先考虑一维标量对流扩散方程:

{ u t + f ( u ) x = ε 2 u x 2 , u ( x , 0 ) = u 0 ( x ) , (1)

其中t是时间变量,x是一维情况下的空间变量。 ε 则是扩散系数。此外,u是守恒量,f(u)是空间x方向上的通量函数。所提出的数值方法均定义在均匀网格中。计算区域[a, b]被N等分,也就是说

a = x 1 2 < x 3 2 < < x N + 1 2 = b ,其中 x i + 1 2 x i 分别表示单元 I i = [ x i 1 2 , x i + 1 2 ] 的单元边界和单元中心。且有 x i = x i 1 2 + Δ x 2 ,其中 Δ x = b a N 是空间步长。函数 u ( x , t ) 关于空间变量的一阶导数记为 v ( x , t ) 。那么,从方程(1)和它关于空间变量的导数方程有

{ u t + f ( u ) x = ε 2 u x 2 , u ( x , 0 ) = u 0 ( x ) , v t + h ( u , v ) x = ε 2 v x 2 , v ( x , 0 ) = v 0 ( x ) , (2)

其中 v 0 ( x ) = ( u 0 ) x h ( u , v ) = f ( u ) v 。我们用以下半离散有限差分方案近似(2)

{ u i t = 1 Δ x ( f ^ i + 1 2 f ^ i 1 2 ) + ε 2 u x 2 | x i , v i t = 1 Δ x ( h ^ i + 1 2 h ^ i 1 2 ) + ε 2 v x 2 | x i , (3)

其中 f ^ i + 1 2 h ^ i + 1 2 分别是原始方程及其空间导数方程的数值通量。它们满足数值通量的一般条件,例如单调

性、Lipschitz连续性以及与物理通量 f ( u ) h ( u , v ) 的一致性。

如果直接使用HWENO重构来计算数值通量,则只能获得低阶精度。为了提高精度,经典的有限差分HWNEO方法使用通量分裂来重构函数及其一阶导数。本章我们没有使用这种方法,而是使用[1]中求解双曲守恒律的想法来求解对流扩散方程。在一维有限差分框架中,五阶精度的离散化为

{ 1 Δ x ( f ^ i + 1 2 f ^ i 1 2 ) = f ( u ) x | x i + O ( Δ x 6 ) , 1 Δ x ( h ^ i + 1 2 h ^ i 1 2 ) = h ( u , v ) x | x i + O ( Δ x 5 ) , (4)

[2]中,数值通量 f ^ i + 1 2 h ^ i + 1 2 的构造如下

{ f ^ i + 1 2 = f ^ i + 1 2 L + f ^ i + 1 2 H , h ^ i + 1 2 = h ^ i + 1 2 L + h ^ i + 1 2 H , (5)

其中由Taylor展开得到的高阶修正项 f ^ i + 1 2 H h ^ i + 1 2 H 可以来提高数值通量的精度。低阶的通量项 f ^ i + 1 2 L = f ^ L ( u i + 1 2 , u i + 1 2 + ) h ^ i + 1 2 L = h ^ L ( u i + 1 2 , u i + 1 2 + , v i + 1 2 , v i + 1 2 + ) 是任意的单调通量。 u i + 1 2 ± v i + 1 2 ± u ( x , t ) v ( x , t ) 在半点 x = x i + 1 2 处由偏左或偏右模板的HWENO重构得到的数值近似。在这里,我们使用以下Lax-Friedrichs通量近似 f ^ i + 1 2 L h ^ i + 1 2 L

{ f ^ i + 1 2 L = 1 2 [ f ( u i + 1 2 ) + f ( u i + 1 2 + ) α ( u i + 1 2 + u i + 1 2 ) ] , h ^ i + 1 2 L = 1 2 [ h ( u i + 1 2 , v i + 1 2 ) + h ( u i + 1 2 + , v i + 1 2 + ) α ( v i + 1 2 + v i + 1 2 ) ] , (6)

其中 α 定义为 max u f ( u ) 。高阶修正项 f ^ i + 1 2 H h ^ i + 1 2 H 的系数至少是 Δ x 2 ,再加上一维情况下要达到五阶精度,

因此整体截断误差应达到 O ( Δ x 6 ) 。即有

{ f ^ i + 1 2 H = 1 24 Δ x 2 2 f x 2 | x i + 1 2 + 7 5760 Δ x 4 4 f x 4 | x i + 1 2 + O ( Δ x 6 ) , h ^ i + 1 2 H = 1 24 Δ x 2 2 h x 2 | x i + 1 2 + 7 5760 Δ x 4 4 h x 4 | x i + 1 2 + O ( Δ x 6 ) , (7)

2.1. f ^ i + 1 2 L h ^ i + 1 2 L 的构造

要构造 f ^ i + 1 2 L h ^ i + 1 2 L 需要先重构 u i + 1 2 ± v i + 1 2 ± 。现在我们详细描述由给定点值 { u i , v i } 得到点值 { u i + 1 2 ± , v i + 1 2 ± } 的五阶HWENO插值过程。uv在半点 x = x i + 1 2 处由偏左模板 S = { x i 1 , x i , x i + 1 } 从左侧重构得到的值即为 u i + 1 2   v i + 1 2 。同理,uv在半点 x = x i + 1 2 处由偏右模板 S + = { x i , x i + 1 , x i + 2 } 从右侧重构得到的值即为 u i + 1 2 + v i + 1 2 + 。以下是 u i + 1 2   v i + 1 2 的构造算法,而 u i + 1 2 + v i + 1 2 + 的值可以用镜像对称的方法得到。

完整的五阶HWENO重构过程可以表示为

U i + 1 2 j = 0 2 ω j p j ( x i + 1 2 ) , (8)

其中   U = ( u , v ) T p j ( x i + 1 2 ) 是多项式在半点 x = x i + 1 2 处的函数值,该多项式根据重构对象满足在小模板上的对应插值性质。这些插值多项式满足的性质取决于重构对象,具体所满足的性质在[1]中已经给出。此外, ω j 是非线性权重,它满足 ω j 0 j = 0 2 ω j = 1

非线性权 ω j 的具体表达式如下

ω j = ω ¯ j k ω ¯ k ,   ω ¯ k = γ k ( β k + ε ) 2 , j , k = 0 , 1 , 2 , (9)

其中 γ j 是线性权,它满足 q ( x i + 1 2 ) = j = 0 2 γ j p j ( x i + 1 2 ) j = 0 2 γ j = 1 q ( x i + 1 2 ) 则类似于满足某些性质的插值多项式 p j ( x i + 1 2 ) ,不同之处在于它的模板是在大模板 S 上而不是小模板上,所满足的具体性质也可见[1]

ε 可取任意能避免分母为零的正实数,在本文均取为106 β j 是光滑指示子,我们使用[10]中如下的定义

β j = l = k r I i Δ x 2 l 1 ( l x l p j ( x ) ) 2 d x . (10)

求和上限r是多项式 p j ( x ) 的次数,求和下限k取决于重构对象,即重构 u i + 1 2   时取k = 1,重构 v i + 1 2 时取k = 2。

2.1.1. u i + 1 2 的构造算法

插值多项式的函数值如下

p 0 ( x i + 1 2 ) = 1 4 ( 5 u i 1 + 9 u i 3 Δ x v i 1 ) p 1 ( x i + 1 2 ) = 1 4 ( u i + 3 u i + 1 Δ x v i + 1 ) p 2 ( x i + 1 2 ) = 1 8 ( u i 1 + 6 u i + 3 u i + 1 ) q ( x i + 1 2 ) = 1 64 ( 8 u i 1 + 36 u i + 36 u i + 1 3 Δ x v i 1 9 Δ x v i + 1 ) (11)

而线性权的值为 γ 0 = 1 16 , γ 1 = 9 16 , γ 2 = 3 8

光滑指示子 β j 的表达式如下

β 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 . (12)

2.1.2. v i + 1 2 的构造算法

插值多项式的函数值如下

p 0 ( x i + 1 2 ) = 1 4 Δ x ( 18 u i 1 18 u i + 7 Δ x v i 1 + 15 Δ x v i ) , p 1 ( x i + 1 2 ) = 1 4 Δ x ( 6 u i + 6 u i + 1 Δ x v i Δ x v i + 1 ) , p 2 ( x i + 1 2 ) = 1 8 Δ x ( u i 1 8 u i + 7 u i + 1 + 2 Δ x v i ) , q ( x i + 1 2 ) = 1 64 Δ x ( 3 u i 1 96 u i + 93 u i + 1 + Δ x v i 1 12 Δ x v i 15 Δ x v i + 1 ) . (13)

则线性权的值为 γ 0 = 1 112 , γ 1 = 15 16 , γ 2 = 3 56

光滑指示子如下

β 0 = 13 12 ( 12 u i 1 12 u i + 6 Δ x v i 1 + 6 Δ x v i ) 2 + ( 6 u i 1 6 u i + 2 Δ x v i 1 + 4 Δ x v i ) 2 , β 1 = 13 12 ( 12 u i 12 u i + 1 + 6 Δ x v i + 6 Δ x v i + 1 ) 2 + ( 6 u i 6 u i + 1 + 4 Δ x v i + 2 Δ x v i + 1 ) 2 , β 2 = 13 12 ( 3 u i 1 + 3 u i + 1 6 Δ x v i ) 2 + ( u i 1 2 u i + u i + 1 ) 2 . (14)

那么这就完成了 u i + 1 2 ± v i + 1 2 ± 的HWENO重构,然后我们将其代入到(8)就完成了 f ^ i + 1 2 L h ^ i + 1 2 L 的计算。

2.2. f ^ i + 1 2 H h ^ i + 1 2 H 的构造

从(7)可以看出,我们只需要分别构造通量函数 f ( u ) h ( u , v ) 的二阶和四阶导数就完成了高阶修正

f ^ i + 1 2 H h ^ i + 1 2 H 的计算。为了保持数值方法的紧凑性,我们在此使用以下Hermite方法推导的中心差分法对

高阶导数进行近似处理

2 f x 2 | x i + 1 2 = 27 64 Δ x 2 f i 1 + 27 64 Δ x 2 f i + 27 64 Δ x 2 f i + 1 27 64 Δ x 2 f i + 2 19 192 Δ x h i 1 99 64 Δ x h i + 99 64 Δ x h i + 1 + 19 192 Δ x h i + 2 4 f x 4 | x i + 1 2 = 45 4 Δ x 4 f i 1 45 4 Δ x 4 f i 45 4 Δ x 4 f i + 1 + 45 4 Δ x 4 f i + 2 + 11 4 Δ x 3 h i 1 + 57 4 Δ x 3 h i 57 4 Δ x 3 h i + 1 11 4 Δ x 3 h i + 2 ,

以及公式

2 h x 2 | x i + 1 2 = 281 288 Δ x 3 f i 1 + 513 32 Δ x 3 f i 513 32 Δ x 3 f i + 1 281 288 Δ x 3 f i + 2 + 19 96 Δ x 2 h i 1 + 297 32 Δ x 2 h i + 297 32 Δ x 2 h i + 1 + 19 96 Δ x 2 h i + 2 , 4 h x 4 | x i + 1 2 = 785 18 Δ x 5 f i 1 345 2 Δ x 5 f i + 345 2 Δ x 5 f i + 1 + 785 18 Δ x 5 f i + 2 55 6 Δ x 4 h i 1 285 2 Δ x 4 h i 285 2 Δ x 4 h i + 1 55 6 Δ x 4 h i + 2 ,

其中 f i h i 分别是 f ( u i ) h ( u i , v i ) 的简写。

2.3. 扩散项的离散

由于对流占优的对流扩散方程与双曲守恒律密切相关,因此以上就完成了半离散格式(3)中对流项的离散化。在这里,我们仍然使用Hermite插值的思想来离散扩散项。扩散项中的高阶导数的离散表达式如下

{ 2 u x 2 | x i = 1 2 Δ x 2 ( 4 u i 1 8 u i + 4 u i + 1 + Δ x v i 1 Δ x v i + 1 ) , 2 v x 2 | x i = 1 2 Δ x 3 ( 15 u i 1 + 15 u i + 1 3 Δ x v i 1 24 Δ x v i 3 Δ x v i + 1 ) , (15)

其中该格式可以达到五阶精度。

2.4. 时间项的离散

完成上述步骤后,我们只需要离散时间项就能完成数值求解过程。在此,我们使用经典的三阶TVD Runge-Kutta方法来离散时间项

{ 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 ( n + 1 ) = 1 3 U ( n ) + 2 3 U ( 2 ) + 2 3 Δ t L ( U ( 2 ) ) , (16)

这样,我们就完成了一个完整的对流扩散方程的一维数值格式。

3. 二维数值格式的构造

然后我们考虑二维标量对流扩散方程

{ u t + f ( u ) x + g ( u ) y = ε ( 2 u x 2 + 2 u y 2 ) , u ( x , y , 0 ) = u 0 ( x , y ) , (17)

其中 u = u ( x , y , t ) 是守恒量, f ( u ) g ( u ) 分别是空间变量xy方向上的通量函数。为简化表述,数值

方法定义在均匀网格中。也就是说计算域被均匀网格点 { ( x i + 1 2 , y j + 1 2 ) } 划分,且 i = 0 , , N x j = 0 , , N y Δ x = x i + 1 2 x i 1 2 Δ y = y j + 1 2 y j 1 2 分别是xy方向上的空间步长。那么,单元和单元中心分别定义为 I i , j = [ x i 1 2 , x i + 1 2 ] × [ y j 1 2 , y j + 1 2 ] ( x i , y j ) = ( 1 2 ( x i 1 2 + x i + 1 2 ) , 1 2 ( y j 1 2 + y j + 1 2 ) ) 。我们将守恒量u关于xy的一阶导数记为vw。然后,从方程(17)及其导数方程得到

{ u t + f ( u ) x + g ( u ) y = ε ( 2 u x 2 + 2 u y 2 ) , u ( x , y , 0 ) = u 0 ( x , y ) , v t + h ( u , v ) x + r ( u , v ) y = ε ( 2 v x 2 + 2 v y 2 ) , v ( x , y , 0 ) = v 0 ( x , y ) , w t + q ( u , w ) x + s ( u , w ) y = ε ( 2 w x 2 + 2 w y 2 ) , w ( x , y , 0 ) = w 0 ( x , y ) , (18)

其中

{ h ( u , v ) = f ( u ) v , r ( u , v ) = g ( u ) v , v 0 ( x , y ) = ( u 0 ) x , q ( u , w ) = f ( u ) w , s ( u , w ) = g ( u ) w , w 0 ( x , y ) = ( u 0 ) y .

方程(18)的半离散有限差分格式为

u i , j t = 1 Δ x ( f ^ i + 1 2 , j f ^ i 1 2 , j ) 1 Δ y ( g ^ i , j + 1 2 g ^ i , j 1 2 ) + ε ( 2 u x 2 + 2 u y 2 ) | ( x i , y j ) , v i , j t = 1 Δ x ( h ^ i + 1 2 , j h ^ i 1 2 , j ) 1 Δ y ( r ^ i , j + 1 2 r ^ i , j 1 2 ) + ε ( 2 v x 2 + 2 v y 2 ) | ( x i , y j ) , w i , j t = 1 Δ x ( q ^ i + 1 2 , j q ^ i 1 2 , j ) 1 Δ y ( s ^ i , j + 1 2 s ^ i , j 1 2 ) + ε ( 2 w x 2 + 2 w y 2 ) | ( x i , y j ) , (19)

其中 u ( x i , y j , t ) , v ( x i , y j , t ) w ( x i , y j , t ) 的值近似表示为 u i , j , v i , j w i , j 。需要注意的是,在二维对流扩散方

程中的对流项和扩散项中都存在混合导数。这里,对流项中的非混合数值通量 f ^ i ± 1 2 , j , h ^ i ± 1 2 , j , g ^ i , j ± 1 2 s ^ i , j ± 1 2 以及扩散项中的非混合导数 2 u x 2 , 2 v x 2 , 2 u y 2 2 w y 2 都是以类似的一维方式逐维重构的。唯一的例外是对流项中混合数值通量 q ^ i + 1 2 , j , r ^ i , j + 1 2 和扩散项中混合导数 2 v y 2 , 2 w x 2 的构造,它们由简单的三点Hermite插值得出的

四阶中心差分公式近似,而不是通常的通量分裂方法。再加上虽然对流项的处理可以使用[19]的最新研究方法达到五阶数值精度,但是由于扩散项差分近似和该方法对于复杂问题的计算比较困难等原因使得本文提出的方法在二维情况下只能达到四阶精度。

混合数值通量 q ^ i + 1 2 , j , r ^ i , j + 1 2 的差分公式如下

{ q ^ i + 1 2 , j = 1 64 Δ x ( 3 f i 1 , j 96 f i , j + 93 f i + 1 , j + Δ x q i 1 , j 12 Δ x q i , j 15 Δ x q i + 1 , j ) , r ^ i , j + 1 2 = 1 64 Δ y ( 3 g i , j 1 96 g i , j + 93 g i , j + 1 + Δ y r i , j 1 12 Δ y r i , j 15 Δ y r i , j + 1 ) . (20)

混合导数 2 v y 2 , 2 w x 2 的数值近似如下

{ 2 v y 2 | ( x i , y j ) = 3 2 Δ y 3 ( 5 u i , j 1 + 5 u i , j + 1 Δ y v i , j 1 8 Δ y v i , j Δ y v i , j + 1 ) , 2 w x 2 | ( x i , y j ) = 3 2 Δ x 3 ( 5 u i 1 , j + 5 u i + 1 , j Δ x w i 1 , j 8 Δ x w i , j Δ x w i + 1 , j ) . (21)

4. 数值算例

本节提供了上一节所构造的求解对流扩散方程数值方法的经典数值算例,以证明所提方法的准确性和有效性。一维和二维均匀网格点的数量分别用N N x × N y 表示。三阶TVD Runge-Kutta方法用于一维和二维数值方法的时间项离散,CFL条件数为0.6。

4.1. 一维线性方程精度测试

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

该问题选取周期边界条件。该问题的精确解为 u ( x , t ) = exp ( ε t ) sin ( x t ) 。终止时刻设置为 t = 1 ε = 0.01 表1给出了用HWENO数值方法得到的数值精度。我们能够发现数值方法在一维情况下达到了五阶精度。

Table 1. One-dimensional accuracy test

1. 一维精度测试

N

L 1 误差

精度

L 2 误差

精度

L 误差

精度

10

2.84E−03

3.18E−03

4.73E−03

20

8.45E−04

5.07

9.87E−05

5.01

1.55E−04

4.93

40

2.58E−06

5.03

2.93E−06

5.07

4.55E−06

5.09

80

7.98E−08

5.02

8.89E−08

5.04

1.35E−07

5.07

160

2.47E−09

5.01

2.74E−09

5.02

3.97E−09

5.09

320

7.58E−11

5.02

8.41E−11

5.02

1.19E−10

5.06

640

2.42E−12

4.97

2.69E−12

4.97

3.78E−12

4.98

4.2. 一维Burgers方程

{ u t + ( u 2 / 2 ) x = ε 2 u x 2 , u ( x , 0 ) = sin ( π x ) ,   1 x 1. (23)

该问题选取Dirichlet边界条件,即有 u ( 1 , t ) = u ( 1 , t ) = 0 。该问题没有直接的精确解,需要通过Hopf-Cole变换[21]来获得。扩散系数取为 ε = 0.01 / π ,终止时刻为 t = 0 .69 。当 N = 100 时我们在图1中给出数值解和精确解的拟合图像。可以看见数值解较好地拟合了精确解,这意味着所设计的数值方法是有效的。

Figure 1. One-dimensional Burgers equation

1. 一维Burgers方程

4.3. 一维Buckley-Leverett方程

u t + f ( u ) x = ε ( v ( u ) u x ) x , ε v ( u ) 0. (24)

该算例的终止时刻设置为 t = 0.2 ,扩散系数取为 ε = 0.01 。且

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

该算例不考虑重力影响,故通量函数可以表示为

f ( u ) = u 2 u 2 + ( 1 u ) 2 ,

至于守恒量u的连续初始条件为

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

空间计算区域 [ 1 , 1 ] 上的边界条件为 u ( 0 , t ) = 1 , u ( 1 , t ) = 0 。该问题目前尚未有精确的解析解,故我们用HWENO数值方法在网格点 N = 500 时得到的数值解作为参考的精确解。图2显示了 N = 100 的数值解与参考精确解之间的对比。我们发现即使在不连续处也没有振荡,数值解与研究中所述方法得出的参考解非常吻合。

4.4. 二维线性方程精度测试

{ u t + u x + u y = ε ( 2 u x 2 + 2 u y 2 ) , u ( x , y , 0 ) = sin ( 2 π ( x + y ) ) . (25)

精确解为 u ( x , y , t ) = exp ( 8 π 2 ε t ) sin ( 2 π ( x + y t ) ) 。此时计算域 ( x , y ) [ 0 , 1 ] × [ 0 , 1 ] 上的所有边界均选取周期边界条件。终止时刻设置为 t = 0.1 且扩散系数取为 ε = 0.001 表2列出了使用修正的HWENO方法得到的数值结果。可以看出,所构造的数值方法达到了四阶精度。

Figure 2. One-dimensional Buckley-Leverett equation

2. 一维Buckley-Leverett方程

Table 2. Two-dimensional accuracy test

2. 二维精度测试

N x × N y

L 1 误差

精度

L 2 误差

精度

L 误差

精度

10 * 10

3.43E−03

1.08E−02

3.42E−02

20 * 20

8.15E−05

5.39

3.65E−04

4.89

1.63E−03

4.39

40 * 40

2.75E−06

4.89

1.74E−05

4.39

1.10E−04

3.89

80 * 80

1.22E−07

4.49

1.09E−06

3.99

9.75E−06

3.49

160 * 160

5.09E−09

4.58

6.44E−08

4.08

8.14E−07

3.58

320 * 320

2.55E−10

4.32

4.55E−09

3.82

8.15E−08

3.32

4.5. 二维Buckley-Leverett方程

u t + f ( u ) x + g ( u ) y = ε ( 2 u x 2 + 2 u y 2 ) . (26)

扩散系数取 ε = 0.01 。两个空间方向上的通量函数可以写为

f ( u ) = u 2 u 2 + ( 1 u ) 2 , g ( u ) = f ( u ) ( 1 5 ( 1 u ) 2 ) .

初始条件为

u ( x , y , 0 ) = { 1 , x 2 + y 2 < 0.5 , 0 , .

需要注意的是,该算例在y方向上有重力影响。由于二维情况下的问题比较复杂,故目前没有解析解。矩形空间域 [ 1.5 , 1.5 ] × [ 1.5 , 1.5 ] 80 × 80 等分,在计算域上满足周期边界条件。图3给出了数值方法在终止时刻 t = 0. 5 时的数值模拟结果。可以发现等高线图的结果与参考文献[22]中的结果一致。

Figure 3. Two-dimensional Buckley-Leverett equation

3. 二维Buckley-Leverett方程

5. 总结

在本文中,在有限差分框架中设计了一种修正的高阶HWENO方法,用于求解一维和二维的对流扩散方程。在所提出的数值方法中,对流项用修正的HWENO重构,扩散项用中心差分公式近似,时间项用Runge-Kutta方法近似。修正的HWENO重构直接使用解的点值及其一阶导数,这提高了计算效率。此外,可以选择任意的单调数值通量。为了保持扩散项的紧凑性,我们使用Hermite插值推出的差分公式对其进行近似。结合方程的特点,对二维情况下的高阶数值通量和混合导数进行了适当的处理,以保证方法的有效性和紧凑性。最后的数值算例验证了所提方法的高级精度和守恒性等性质。

基金项目

该工作得到了中国山西省自然科学基金(第202103021224041号)的部分支持。

NOTES

*通讯作者。

参考文献

[1] Liu, H. and Qiu, J. (2015) Finite Difference Hermite WENO Schemes for Conservation Laws, II: An Alternative Approach. Journal of Scientific Computing, 66, 598-624.
https://doi.org/10.1007/s10915-015-0041-4
[2] Shu, C. and Osher, S. (1988) Efficient Implementation of Essentially Non-Oscillatory Shock-Capturing Schemes. Journal of Computational Physics, 77, 439-471.
https://doi.org/10.1016/0021-9991(88)90177-5
[3] Harten, A. (1983) High Resolution Schemes for Hyperbolic Conservation Laws. Journal of Computational Physics, 49, 357-393.
https://doi.org/10.1016/0021-9991(83)90136-5
[4] Harten, A., Engquist, B., Osher, S. and Chakravarthy, S.R. (1987) Uniformly High Order Accurate Essentially Non-Oscillatory Schemes, III. Journal of Computational Physics, 71, 231-303.
https://doi.org/10.1016/0021-9991(87)90031-3
[5] Harten, A. (1987) Preliminary Results on the Extension of Eno Schemes to Two-Dimensional Problems. In: Morel, J.-M., Teissier, B., et al., Eds., Lecture Notes in Mathematics, Springer, 23-40.
https://doi.org/10.1007/bfb0078315
[6] Casper, J. (1992) Finite-Volume Implementation of High-Order Essentially Nonoscillatory Schemes in Two Dimensions. AIAA Journal, 30, 2829-2835.
https://doi.org/10.2514/3.11625
[7] Casper, J. and Atkins, H.L. (1993) A Finite-Volume High-Order ENO Scheme for Two-Dimensional Hyperbolic Systems. Journal of Computational Physics, 106, 62-76.
https://doi.org/10.1006/jcph.1993.1091
[8] Shu, C.-W. and Osher, S. (1989) Efficient Implementation of Essentially Non-Oscillatory Shock-Capturing Schemes, II. Journal of Computational Physics, 83, 32-78.
https://doi.org/10.1016/0021-9991(89)90222-2
[9] 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
[10] 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
[11] 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
[12] Qiu, J.X. and Shu, C.-W. (2004) Hermite WENO Schemes and Their Application as Limiters for Runge-Kutta Discontinuous Galerkin Method: One-Dimensional Case. Journal of Computational Physics, 193, 115-135.
https://doi.org/10.1016/j.jcp.2003.07.026
[13] 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
[14] Zhang, M. and Zhao, Z. (2023) A Fifth-Order Finite Difference HWENO Scheme Combined with Limiter for Hyperbolic Conservation Laws. Journal of Computational Physics, 472, Article 111676.
https://doi.org/10.1016/j.jcp.2022.111676
[15] Liu, H.X. and Qiu, J.X. (2014) 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
[16] Zhao, Z., Zhang, Y.-T. and Qiu, J.X. (2020) A Modified Fifth Order Finite Difference Hermite WENO Scheme for Hyperbolic Conservation Laws. Journal of Scientific Computing, 85, Article No. 29.
https://doi.org/10.1007/s10915-020-01347-1
[17] Ma, Z. and Wu, S.-P. (2018) HWENO Schemes Based on Compact Differencefor Hyperbolic Conservation Laws. Journal of Scientific Computing, 76, 1301-1325.
https://doi.org/10.1007/s10915-018-0663-4
[18] Tao, Z.J., Li, F.Y. and Qiu, J.X. (2016) High-Order Central Hermite WENO Schemes: Dimension-by-Dimension Moment-Based Reconstructions. Journal of Computational Physics, 318, 222-251.
https://doi.org/10.1016/j.jcp.2016.05.005
[19] Zhao, Z., Chen, Y.B. and Qiu, J.X. (2020) A Hybrid Hermite WENO Scheme for Hyperbolic Conservation Laws. Journal of Computational Physics, 405, Article 109175.
https://doi.org/10.1016/j.jcp.2019.109175
[20] Zhu, J. and Qiu, J.X. (2008) A Class of the Fourth Order Finite Volume Hermite Weighted Essentially Non-Oscillatory Schemes. Science in China Series A: Mathematics, 51, 1549-1560.
https://doi.org/10.1007/s11425-008-0105-0
[21] Basdevant, C., Deville, M., Haldenwang, P., Lacroix, J.M., Ouazzani, J., Peyret, R., et al. (1986) Spectral and Finite Difference Solutions of the Burgers Equation. Computers & Fluids, 14, 23-41.
https://doi.org/10.1016/0045-7930(86)90036-8
[22] Kurganov, A. and Tadmor, E. (2000) New High-Resolution Central Schemes for Nonlinear Conservation Laws and Convection-Diffusion Equations. Journal of Computational Physics, 160, 241-282.
https://doi.org/10.1006/jcph.2000.6459

Baidu
map