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方程的数值模拟可知,该格式具有分辨率高、捕捉能力强等特点。