system: [SYSTEM]

user: 4. 数值结果 在本节中，通过数值实验来展示所提出的DG方法的良好性能。针对所有数值算例，我们分别将时间与空间取为二次多项式与四次多项式(即分别取 K = H = 2 ，此时取 CFL = 0.18 。或者 K = H = 4 ，同时取 CFL = 0.1 )作为基函数。重力常数g取为9.812。 4.1. 精度测试 借助具有光滑解的算例来测试方法的精度阶。考虑线性对流方程： { u t + u x = 0 ，                         0 ≤ x ≤ 2 u ( x ， 0 ) = sin ( π x ) ，       periodic 将该算例计算至 t = 2 ，同时将方法的数值误差与精度阶分别展示于表1。从表中，可以很明显地发现该方法拥有预期的高阶精度。 4.2. 线性对流方程 借助带有间断解的算例来测试方法能否保持高分辨率 { u t + u x = 0 ，                   − 1 ≤ x ≤ 1 u ( x ， 0 ) = u 0 ( x ) ，       periodic Table 1 Third-order method error and precision orde 网格 L 1 误差 精度阶 L 2 误差 精度阶 L ¥ 误差 精度阶 25 1.5172E−04 1.1963E−04 1.5161E−04 50 1.9127E−05 2.99 1.5076E−05 2.99 1.9107E−05 2.99 100 2.3568E−06 3.02 1.8539E−06 3.02 2.1627E−06 3.14 200 2.9683E−07 2.99 2.3362E−07 2.99 2.7882E−07 2.96 400 3.7399E−08 2.99 2.9457E−08 2.99 3.6196E−08 2.95 800 4.5990E−09 3.02 3.6169E−09 3.03 4.1885E−09 3.11 表1. 三阶方法的误差和精度阶 其中 u 0 ( x ) = { 1 6 ( G ( x ， β ， z − δ ) + G ( x ， β ， z + δ ) + 4 G ( x ， β ， δ ) ) ，       − 0.8 ≤ x ≤ − 0.6 1 ，                                                                                                                                           − 0.4 ≤ x ≤ − 0.2 1 − | 10 ( x − 0.1 ) | ，                                                                                                   0 ≤ x ≤ 0.2 1 6 ( F ( x ， α ， a − Δ ) + F ( x ， α ， a + Δ ) + 4 F ( x ， α ， a ) ) ，       0.4 ≤ x ≤ 0.6 0 ，                                                                                                                                           otherwise 这里，取 G ( x ， β ， z ) = e − β ( x − z ) 2 ， F ( x ， α ， a ) = max ( 1 − α 2 ( x − a ) 2 ， 0 ) 。参数取作 a = 0.5 ， z = − 0.7 ， δ = 0.005 ， α = 10 ， β = log 2 36 δ 2 。 基于带有100个单元的网格，将该算例计算至 t = 8 ，同时将数值结果展示于图1。我们从图中发现数值结果能够同精确解保持很好的一致性，且保持高分辨率。 4.3. Burgers方程 接下来，测试该方法针对强间断问题能否保持高分辨率，考虑一维Burgers方程： u + ( u 2 2 ) x = 0 考虑初始条件 u ( x ， 0 ) = 0.5 + sin ( π x ) ，   x ∈ [ 0 ， 2 ] 该问题在 t = 1.5 / π 时刻会产生激波。接下来考虑另一种初始条件 u ( x ， 0 ) = { − 0.5 ，       x ≤ 0.5 1 ，                 x ≤ 1 0 ，                 else x ∈ [ 0 ， 1.5 ] 该初值问题会在左侧产生稀疏波，右侧产生激波。我们把以上两种初值问题的数值结果展示于图2并与精确解相比较。很显然数值结果保持陡峭的间断过渡，从而说明该方法对于间断解同样保持高分辨率。 4.4. 浅水波方程 首先以水动力学中的一维浅水波方程 { h t + ( h u ) x = 0 ( h u ) t + ( h u 2 + 1 2 g h 2 ) x = 0 为例来考虑方程组情形。 其中h，u分别表示水深，深度平均速度。g表示重力常数。 考虑浅水波方程中经典的Riemann问题，又称溃坝问题 [ 25 ] ，其初始条件具有以下情形： ( h ， u ) ( x ， 0 ) = { ( h L ， u L )             if   x ≤ x 0 ( h R ， u R )           otherwise 其中 x 0 为大坝位置， ( h L ， u L ) 与 ( h R ， u R ) 分别表示大坝左右两侧的水体深度与速度。 图1. 线性对流方程在t = 2时刻的数值结果。网格n = 100 图2. Burgers方程的数值结果，网格n = 100。左：t = 1.5/π，右：t = 0.5 我们考虑以下几种不同的初始条件： 4.4.1. 情形一 初始条件为 ( h ， u ) ( x ， 0 ) = { ( 1 ， 2.5 )             if   x ≤ 10 ( 0.1 ， 0 )           otherwise 计算区域为区间 [ 0 ， 50 ] 。计算该算例至 t = 7 ，同时将计算结果展示于图3并与精确解相比较。数值结果表明数值结果与精确解保持一致，同时保持非振荡性质。 4.4.2. 情形二 初始条件如下： ( h ， u ) ( x ， 0 ) = { ( 1 ， − 5 )           if   x ≤ 25 ( 1 ， 5 )               otherwise 计算区域为 [ 0 ， 50 ] 。将 t = 2.5 时刻的数值结果展示于图4。数值结果表明数值结果与精确解保持一致。 图3. 在t = 7时刻的数值结果，网格n = 100。水体深度(左)与速度(右) 图4. 在t = 2.5时刻的数值结果，网格n = 100。水体深度(左)与速度(右) 4.5. 欧拉方程 考虑空气动力学中的可压缩欧拉方程 { ρ t + ( ρ u ) x = 0 ( ρ u ) t + ( ρ u 2 + p ) x = 0 E t + ( ( E + p ) u ) x = 0 其中ρ为密度，u为速度，E表示总能量，p是压力，且与总能量有如下关系 E = p γ − 1 + 1 2 ρ u 2 其中γ为绝热比常数，在本文中取作 γ = 1.4 。 4.5.1. Sod问题 初始条件如下 图5. Sod问题在t = 1.3时刻的数值结果，网格n = 200。从左向右：密度，速度，压力。nx = 200 图6. Lax问题在t = 1.3时刻的数值结果。网格n = 200。从左向右：密度，速度，压力 ( ρ ， u ， p ) ( x ， 0 ) = { ( 1 ， 0 ， 1 )                               if   x ≤ 0 ( 0.5 ， 0 ， 0.571 )           otherwise 计算区域为[−5， 5]。将 t = 2 时刻的数值结果展示于图5。数值结果保持很好的分辨率。 4.5.2. Lax问题 初始条件如下 ( ρ ， u ， p ) ( x ， 0 ) = { ( 0.445 ， 0.698 ， 3.528 )           if   x ≤ 0 ( 0.5 ， 0 ， 0.571 )                           otherwise 计算区域为[−5， 5]。将时刻 t = 1.3 的计算结果展示于图6。数值结果保持很好的间断过度。