1. 引言
双曲守恒律方程广泛应用于科学和工程计算中。如海洋学(浅水方程)、空气动力学(欧拉方程)、等离子体物理学(MHD方程)和结构力学(非线性弹性)。在一维情形下,它们具有如下形式:
(1.1)
其中
是守恒变量,
是相应的通量函数。众所周知,即使所给的初始条件充分光滑,方程(1.1)的解在时间推进的某个时刻也可能会出现间断,产生激波、接触间断等现象。因此,寻求满足方程(1.1)的唯一弱解成为主要挑战。为此引入了熵条件:
(1.2)
其中:
为熵对,熵函数
是一个凸函数,熵通量函数
满足
,并称
为熵变量。从而确定了满足相关物理特性的唯一弱解。
Tadmor等人提出的熵稳定格式一直备受关注。该格式由熵守恒通量和耗散项两部分构成。熵守恒通量在光滑区域表现良好,保持总熵不变。但在激波等间断区域会产生伪振荡,需要添加合适的数值粘性来维持熵的耗散。由于Roe格式对激波有良好的捕捉效果,Ismail和Roe对其数值粘性项加以延拓,并将之添加到熵守恒通量上,得到了熵稳定格式。该格式可有效避免伪振荡等现象,但在空间方向上只能达到一阶精度。科研工作者们构造了一系列高阶熵稳定格式,但其稳定性不佳。
本文基于熵稳定格式,通过在单元交界面处进行高阶WENO-AO型重构,采用三阶强稳定(SSP) Runge Kutta离散化方法进行时间推进,得到了一种求解双曲守恒律方程的高分辨率数值格式。最后,通过一些数值算例验证该格式的性能。
2. 熵稳定格式
考虑R中的Cartesian网格
,规定空间离散化单元中心为
,网格大小为
,
为
的中点值。则半离散守恒格式(1.1)的解为:
(2.1)
这里
,
是与
相容的数值通量,满足
。相应地,格式(1.3)称为熵守恒的,如果它满足离散熵准则:
(2.2)
这里
与熵通量函数相容,即
(2.3)
定理2.1 (Tadmor [1] )如果
对所有的j满足
(2.4)
那么格式(2.1)是熵守恒的,其数值熵通量为:
(2.5)
这里
为熵势,
。
1) 对于标量方程(N = 1),(2.4)有唯一的二阶精度熵守恒通量:
, (2.6)
2) 一维理想气体的Euler方程为:
, (2.7)
这里
,变量
、u、
、E、
分别代表密度、速度、压力、总能和总焓,
为理想气体常数。
我们使用热力学熵函数和熵通量函数对来求解欧拉方程:
, (2.8)
其中物理熵为
。计算可得,熵变量为
,熵势为
,熵守恒通量满足
。
在文献 [2] 中,Ismail和Roe构造了Euler方程中
的显式解。定义平均状态:
(2.9)
则单元交界面
处的熵守恒通量函数为:
(2.10)
其中
,对数平均为:
。
这些熵守恒格式适用于熵保持的光滑流,但在激波处会出现伪振荡。而这些振荡产生的原因是——熵守恒格式无法在激波附近产生足够的所需熵。故需在熵守恒通量中添加适当的耗散算子来抑制伪振荡的产生。
定理2.2 (Tadmor [3] )假设
,
是一个熵守恒通量,若数值通量形式为
(2.11)
那么格式(2.1)是熵稳定的。即,它满足离散熵不等式
(2.12)
设
为雅可比矩阵,
是相应特征值组成的对角矩阵,R为相应地右特征向量矩阵。则正耗散矩阵可以写为
,
为正对角矩阵,B为相应地缩放比例矩阵,且满足
。我们可以选择常用的耗散算子
,
。
数值熵的耗散,尤其是间断附近的耗散。若熵产过多,间断附近会出现抹平现象;若熵产不足,间断附近会产生伪震荡。为构造恰当地数值耗散,Ismail和Roe [2] 对Euler方程的耗散算子做出了以下修改:
, (2.13)
, (2.14)
其中
, (2.15)
。 (2.16)
这里
代表通量交界面Mach数的改变,
。根据经验,选择
。
3. WENO-AO型重构
本文基于原始变量,在单元交界面处采用WENO-AO重构,获得左右高阶近似
和
,分别代替原数值通量(2.11)中的
和
。进而得到WENO-AO型熵稳定数值通量为:
(3.1)
下面以
中的
为例,给出利用WENO-AO重构计算
的方法 [4],由对称性可得
的重构过程。为了方便起见,定义
。
首先,选定四个插值模板:
(3.2)
其次,构造三个二次多项式和一个四次多项式:
(3.3)
事实上,这些多项式在点
的值给
提供了三个三阶和一个五阶近似。经计算可得:
(3.4)
从而可求得
的重构方式为:
(3.5)
WENO-AO重构的思想是:如果大模板
是光滑的,则子模板
必须是光滑的。在这种情况下,所有的平滑指标都有密切相似的值,从而
。公式(3.5)意味着
,我们的格式在光滑区域达到五阶精度。如果大模板
不光滑,有
。公式(3.5)意味着
,我们的格式退化到三阶CWENO重构。这样,
中最平滑的一个子模板将被寻找以避免伪振荡现象。
为了在(3.5)中完成
的重构,需要计算权重
,即
(3.6)
这里取
,以防止分母为零。对于模板
,取线性权重为:
(3.7)
其中
,且
。
计算光滑性指标
,用来测量每个模板中所构造多项式的光滑性。
(3.8)
当
时,
;当
时,
。即有:
(3.9)
参数
。
4. 数值实验
在本节中,给出了全离散格式获得的数值结果,并进行了比较。在时间方向上,采用三阶强稳定(SSP) Runge Kutta离散化方法 [5]。这种时间离散化的SSP性质在完全离散格式 [6] 的情况下,也以其凸性保持
了熵的稳定性。准确地说,保持了总熵
。三阶SSP Runge Kutta时间离散化方法为:
(4.1)
这里
,
为熵稳定数值通量(2.11)。
4.1. Burgers方程
(4.2)
间断初始条件:
(4.3)
对于初值为(4.3)的Burgers方程,其精确解包含左稀疏波和在点
处的激波。从图1可以看出熵稳定格式(ES)在稀疏波出现间断,而WENO-AO型熵稳定格式(WENO-AO)可以精确捕捉到稀疏波,并且在激波附近无伪振荡产生,具有“高分辨率”的特性。

Figure 1. Solution of Burgers equation with initial condition (4.3) at t = 0.32 using 100 grids and CFL = 0.25
图1. Burgers方程,初始条件(4.3), N = 100, timeout = 0.32, CFL = 0.25
4.2. 一维Euler方程
我们使用两组初始数据求解Euler方程:
4.2.1. Sod激波管问题的初始值
(4.4)
Sod激波管问题是一个黎曼问题,初始间断分为左稀薄波、接触间断和右激波。我们采用Neumann边界条件,取CFL = 0.25,在空间区间[0, 1]上取200个网格点,计算T = 0.16时刻的解。即在扰动到达计算区域的边界之前的解。密度和内能的计算结果如图2所示。我们可以清楚地看到,WENO-AO型熵稳定重构可以更精确地捕捉到稀疏波、接触间断和激波,且没有振荡。

Figure 2. Solution of Sod’s shock tube test 1, N = 200, timeout = 0.14, CFL = 0.25
图2. Sod激波管问题的解,N = 200, timeout = 0.14, CFL= 0.25
4.2.2. Lax激波管问题的初值
(4.5)
Lax激波管问题是一个黎曼问题,解的密度和内能分布均由一个真正的非线性场(稀疏波、冲击波)和一个线性退化场(接触不连续性)组成。这种测试在高阶求解时具有挑战性,可能在接触间断和激波之间产生伪振荡。振荡是由解的第一阶段中波之间的相互作用引起的,当不连续性非常接近以至于算法找不到光滑模板时,可以对它们进行部分固化,用重构的方式实现波近似解耦。WENO-AO重构能够自动降阶,可以帮助减少振荡。结果如图3所示,在空间范围[0, 1]中取200个网格,使用ES格式和WENO-AO型熵稳定重构格式计算到T = 0.13时刻。观察到WENO-AO型熵稳定重构更精确地解决了平滑波,并在没有振荡的情况下快速捕捉冲击,具有较高的分辨率和更好的稳健性。

Figure 3. Solution of Lax’s shock tube test 2, N = 200, timeout = 0.14, CFL = 0.25
图3. Lax激波管问题的解,N = 200, timeout = 0.13, CFL = 0.25
5. 结语
本文以熵稳定格式为基础,通过在单元交界面处进行WENO-AO重构,建立了一种求解双曲守恒律方程的数值方法。通过Burgers方程和Euler方程的数值模拟可知,该格式具有分辨率高、捕捉能力强等特点。