对于二维浅水方程问题,本文在三角网格下,基于CBC (Convection Boundedness Criterion)准则采用有限体积法离散建立了新的高分辨率NVSF (Normalized Variable and Space Formulation)格式,NVSF格式是为解决NVF高分辨率格式在不规则区域的应用所提出的,文章通过一些典型算例的精确解与数值解的比较,表明新构造的数值格式具有二阶精度,并且与准确解有很好的逼近效果,能很好地抑制在间断解处的非物理震荡。 For the shallow water equations, a new finite volume NVSF (Normalized Variable and Space For-mulation) scheme is constructed under the triangular mesh. This scheme is based on the CBC (Convection Boundedness Criterion) criterion. NVSF scheme is adopted to solve the application of NVF high resolution scheme on triangular meshes, by comparing the exact solution of the typical example with the numerical solution. It is shown that the new numerical scheme has second order accuracy and has a good approximation near the exact solution. It can suppress the unphysical os-cillation of the discontinuity.
蔺彩凤,高巍
内蒙古大学数学科学学院,内蒙古自治区 呼和浩特
收稿日期:2019年1月7日;录用日期:2019年1月21日;发布日期:2019年1月29日
对于二维浅水方程问题,本文在三角网格下,基于CBC (Convection Boundedness Criterion)准则采用有限体积法离散建立了新的高分辨率NVSF (Normalized Variable and Space Formulation)格式,NVSF格式是为解决NVF高分辨率格式在不规则区域的应用所提出的,文章通过一些典型算例的精确解与数值解的比较,表明新构造的数值格式具有二阶精度,并且与准确解有很好的逼近效果,能很好地抑制在间断解处的非物理震荡。
关键词 :二维浅水方程,三角形网格,高分辨率格式
Copyright © 2019 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
浅水方程数值方法的研究一直是计算流体力学研究的主要方向。对于间断问题的求解是一个比较难解决的问题,当前求解二维浅水方程的数值计算方法有很多,如有限差分法、有限元法、特征法、有限体积法等。有限差分法在处理问题时相对比较简单效率较高,但是在处理复杂区域问题时较为困难;而有限元在处理复杂边界问题时具有很大的优势,但是在处理大梯度问题时是比较困难的,有限体积法是基于无结构网格下,处理强间断问题或大梯度问题的一种高效的方法。因此,目前求解二维浅水方程的最广泛的方法是有限体积法。而且在模拟浅水方程问题上已经取得了一些成果。如前面已经有学者基于特征思想的高阶思想来求解浅水方程 [
对于间断问题的求解是一个比较难解决的问题,在一致网格下,人们已经构造了许多经典的数值格式,如一阶迎风格式FOU (First-Order Upwind)、Lax-Friedrichs [
在非一致网格下,界面f的值不仅与相邻的节点值 ϕ U , ϕ C , ϕ D 有关,而且也与这些节点所在的位置有关,如图1所示,从而可以得到 ϕ f = f ( ϕ U , ϕ C , ϕ D , x U , x C , x f , x D ) 。
图1. 三个相邻的节点及单元边界
根据Leonard [
ϕ ˜ = ϕ − ϕ U ϕ D − ϕ U , x ˜ = x − x U x D − x U
正则化前后的变量关系分别如图2,图3所示:
图2. 正则化前的变量关系
图3. 正则化后的变量关系
通过正则化公式可以得到 ϕ ˜ U = 0 , ϕ ˜ D = 1 , x ˜ U = 0 , x ˜ D = 1 。从而可以得到 ϕ ˜ f = f ( ϕ ˜ C , x ˜ C , x ˜ f ) ,我们可以看到 ϕ ˜ f 的值是依赖于 ϕ ˜ C , x ˜ C 和 x ˜ f 的值。
下面是一些格式在非结构网格下的线性对流格式。如下表1所示:
Schemes | Normalized |
---|---|
Fou | ϕ ˜ f = ϕ ˜ C |
Sou | ϕ ˜ f = x ˜ f x ˜ C ϕ ˜ C |
CD | ϕ ˜ f = x ˜ f − x ˜ C 1 − x ˜ C + x ˜ f − 1 x ˜ C − 1 ϕ ˜ C |
Quick | ϕ ˜ f = x ˜ f ( x ˜ f − 1 ) x ˜ C ( x ˜ C − 1 ) ϕ ˜ C + x ˜ f ( x ˜ f − x ˜ C ) 1 − x ˜ C |
表1. 非结构网格下的线性对流格式
在数值求解的过程中,在对于对流项的处理过程,既要求具有较高的精度,又要求对于对流项的离散满足对流有界性。因此M. S. Darwish和F. H. Moukalled提出了NVSF方法,并提出了非均匀网格下的高分辨率有限体积格式,并指出由Gaskell和Lau [
关于精度问题,Leonard提出在结构网格上利用NVF得出的格式是满足二阶精度的。一个格式为二阶精度的充分必要条件是其表达式过点 Q ( 0.5 , 0.75 ) ,而对于非一致网格NVSF的情况,所构造的格式是二阶精度的充分必要条件是其表达式过点 Q ( x ˜ C , x ˜ f ) 。图4为几种格式在结构网格下与非一致网格下的正则变量图。
图4. 利用NVSF构造的几种线性格式的正则变量图(NVD)
我们构造一个新的高阶格式,使该格式满足CBC准则,我们已经知道,在一致网格下,要想使新格式具有二阶精度必须经过点 ( 0.5 , 0.75 ) 。而在非一致网格下,要想使构造的格式具有二阶精度,必须通过点 ( x ˜ C , x ˜ f ) ,我们令
ϕ ˜ f = a ϕ ˜ C 4 + b ϕ ˜ C 3 + c ϕ ˜ C 2 + d ϕ ˜ C + e (2)
此格式需满足:
{ ϕ ˜ f ( 0 ) = 0 ϕ ˜ f ( 1 ) = 1 ϕ ˜ f ( x ˜ C ) = x ˜ f ϕ ˜ ′ f ( 1 ) = 0 (3)
且我们要构造的新格式与非一致网格下的Quick [
ϕ ˜ ′ f ( x ˜ C ) = x ˜ f ( x ˜ f − 1 ) x ˜ C ( x ˜ C − 1 ) (4)
将(3) (4)带入(2)式中解得
{ a = − ( x ˜ C 3 − 3 x ˜ C 2 + 3 x ˜ C x ˜ f − x ˜ f 2 ) x ˜ C 2 ( x ˜ C − 1 ) 3 b = − ( − 2 x ˜ C 4 + 4 x ˜ C 3 − 4 x ˜ C 2 x ˜ f + 4 x ˜ C 2 + x ˜ C x ˜ f 2 − 5 x ˜ C x ˜ f + 2 x ˜ f 2 ) x ˜ C 2 ( x ˜ C − 1 ) 3 c = − ( x ˜ C 5 + x ˜ C 4 − 8 x ˜ C 3 + 8 x ˜ C 2 x ˜ f − 2 x ˜ C x ˜ f 2 + x ˜ C x ˜ f − x ˜ f 2 ) x ˜ C 2 ( x ˜ C − 1 ) 3 d = − ( − 2 x ˜ C 4 + 4 x ˜ C 3 − 4 x ˜ C x ˜ f + x ˜ f 2 + x ˜ f ) x ˜ C 2 ( x ˜ C − 1 ) 3 e = 0
将上式带入(2)式,
可以得到一个非结构网格下的新格式:
当 0 < ϕ ˜ C < 1 时,
ϕ ˜ f = − ( x ˜ C 3 − 3 x ˜ C 2 + 3 x ˜ C x ˜ f − x ˜ f 2 ) x ˜ C 2 ( x ˜ C − 1 ) 3 ϕ ˜ C 4 + − ( − 2 x ˜ C 4 + 4 x ˜ C 3 − 4 x ˜ C 2 x ˜ f + 4 x ˜ C 2 + x ˜ C x ˜ f 2 − 5 x ˜ C x ˜ f + 2 x ˜ f 2 ) x ˜ C 2 ( x ˜ C − 1 ) 3 ϕ ˜ C 3 + − ( x ˜ C 5 + x ˜ C 4 − 8 x ˜ C 3 + 8 x ˜ C 2 x ˜ f − 2 x ˜ C x ˜ f 2 + x ˜ C x ˜ f − x ˜ f 2 ) x ˜ C 2 ( x ˜ C − 1 ) 3 ϕ ˜ C 2 + − ( − 2 x ˜ C 4 + 4 x ˜ C 3 − 4 x ˜ C x ˜ f + x ˜ f 2 + x ˜ f ) x ˜ C 2 ( x ˜ C − 1 ) 3 ϕ ˜ C
当 ϕ ˜ C ≤ 0 或者 ϕ ˜ C ≥ 1 时, ϕ ˜ f = ϕ ˜ C
所以,非一致网格在退化为结构网格时,点 ( x ˜ C , x ˜ f ) 退化为点 ( 0.5 , 0.75 ) ,则得到结构网格下的新格式为:
{ ϕ ˜ f = − 2 ϕ ˜ C 4 + 5 ϕ ˜ C 3 − 5 ϕ ˜ C 2 + 3 ϕ ˜ C , 0 ≤ ϕ ˜ C ≤ 1 ϕ ˜ f = 0 , elsewhere (5)
对于二维浅水方程,我们利用非结构网格下的新格式进行求解。首先考虑二维浅水方程的守恒形式为:
∂ U ∂ t + ∇ F = 0 (6)
U是守恒变量向量, F = ( E , G ) ,E是x方向通量,G是y方向通量。其中
U = ( h h u h v ) , E = ( h u h u 2 + g h 2 2 h u v ) , G = ( h v h u v h v 2 + g h 2 2 )
其中,h是水深,u是x方向的平均速度分量,v是y方向的平均速度分量,g是重力加速度。
将计算区域划分为非结构网格,每个三角形单元为控制体 V i ,把变量定义在三角网格的中心,
在 V i 上对(6)式积分可得:
∫ V i ( ∂ U ∂ t + ∇ F ) d V = 0
所以可以得到 ∫ V i ∂ U ∂ t d V + ∫ V i ∇ F d V = 0
∴ ∬ A ∂ U ∂ t d A + ∬ A ∇ F d A = 0
∴ ∬ A ( ∂ U ∂ t + ∇ F ) d x d y = 0
∴ ∂ ∂ t ∬ A U d A + ∬ A ∇ F d A = 0 (7)
设 U i 为第i个单元控制体U上的平均值。
U i = 1 A i ∬ A i U d A i , ∴ A i U i = ∬ A i U d A
将其带入(7)式可以得到 ∂ U i ∂ t = − 1 A i ∬ A ∇ F d A
由Green公式可得:
∂ U i ∂ t = − 1 A i ∮ Γ F n d Γ (8)
n 为 Γ 的单位外法向向量, Γ 为控制单元体A的边界。
对(8)式利用Gauss求积公式可得
∂ U i ∂ t = − 1 A i ∑ j = 1 3 F i j n i j l i j = − 1 A i ∑ j = 1 3 F i j Δ l i j
其中, F i j 是通过第i个单元控制体的第j条边上的数值流通量;
n i j 是通过第i个单元控制体的第j条边上的单位外法向量;
l i j 是第i个控制体的第j条边;
Δ l i j 是第i个单元控制体的第j条边的长度。
通过正则化公式这样就将非一致网格下构造的新格式应用到了三角网格下。
本文采用修正的Roe格式求解界面的数值通量 F i j 。应用经典Roe格式,任意单元体界面通量F可以表
示为 F i j = h ( ϕ i j L , ϕ i j R ) ,利用Roe [
F i j R o e = 1 2 [ F ( ϕ i j L ) + F ( ϕ i j R ) − | a i j | ( ϕ i j R − ϕ i j L ) ] , (9)
其中:
a i j = { F ( ϕ i j R ) − F ( ϕ i j L ) ϕ i j R − ϕ i j L , ϕ L ≠ ϕ R F ′ ( ϕ i j L ) , ϕ L = ϕ R (10)
完成了关于空间导数的离散后,得到了关于时间t的一个常微分方程,即 d ϕ ¯ d t = L ( ϕ ) 。为了抑制非物
理震荡,采用的是三阶Runge-Kutta [
{ ϕ ( 1 ) = ϕ n + L ( ϕ ( 1 ) ) ϕ ( 2 ) = 3 4 ϕ n + 2 3 ( ϕ ( 1 ) + L ( ϕ ( 1 ) ) ) ϕ ( n + 1 ) = 1 3 ϕ n + 2 3 ( ϕ ( n ) + L ( ϕ ( n ) ) ) (11)
一维线性对流方程
{ ∂ ϕ ∂ t + a ∂ ϕ ∂ x = 0 , x ∈ [ a , b ] , t > 0 ϕ ( x , 0 ) = ϕ 0 ( x ) (12)
在a = 1时,给出不同的初值进行计算。
给定以下的初值 ϕ ( x , 0 ) = ϕ 0 ( x ) = sin ( 2 π x ) ,在区间 [ 0 , 1 ] 上求解方程(12),CFL = 0.1,计算时间为0.1,将新构造的高分辨率格式、SMART [
‖ E ‖ p = ( Δ x ∑ i = 1 N | φ ¯ i ( exact ) − φ ¯ i ( computed ) | ) 1 p , p = 1 , 2
order = ln E N E 2 N ln 2
Scheme | Mesh | L1error | L1order | L2error | L2order |
---|---|---|---|---|---|
20 | 8.72e−3 | -- | 1.17e−2 | -- | |
40 | 2.11e−3 | 2.05 | 3.54e−3 | 1.72 | |
Present | 80 | 5.08e−4 | 2.05 | 1.05e−3 | 1.75 |
Scheme | 160 | 1.25e−4 | 2.02 | 3.06e−4 | 1.78 |
320 | 3.10e−5 | 2.01 | 8.91e−5 | 1.78 | |
20 | 1.47e−2 | -- | 2.44e−2 | -- | |
40 | 3.35e−3 | 2.15 | 6.17e−3 | 1.99 | |
SMART | 80 | 8.37e−4 | 2.01 | 1.67e−3 | 1.90 |
160 | 2.16e−4 | 1.96 | 4.75e−4 | 1.82 | |
320 | 5.26e−5 | 2.05 | 1.35e−4 | 1.82 | |
20 | 2.45e−2 | -- | 3.02e−2 | -- | |
40 | 7.81e−3 | 1.65 | 9.53e−3 | 1.66 | |
MUSCL | 80 | 2.13e−3 | 1.88 | 2.87e−3 | 1.73 |
160 | 5.39e−4 | 1.98 | 8.71e−4 | 1.72 | |
320 | 1.35e−4 | 2.01 | 2.65e−4 | 1.72 |
表2. 格式误差与数值精度阶对比
由表2可知,对于光滑解问题,三种格式的 L 1 , L 2 误差随着剖分网格的加密在不断的减小而且结构网格下的新格式可以达到理论上二阶精度。
对上述方程,选取间断初值
ϕ ( x , 0 ) = { 1 , x ≤ 0 0 , x ≥ 0
选取的计算区域为 [ − 1 , − 1 ] ,将计算区域等分为800份,计算时间为T = 0.2,由图5可知,新构造的格式在计算间断解时有很好的逼近效果,有效地抑制了非物理震荡。
当我们选取如下的形如W信号的非光滑初值时
ϕ ( x , 0 ) = { 1 , 0 ≤ x ≤ 0.2 4 x − 0.6 , 0.2 < x < 0.4 − 4 x + 2.6 , 0.4 < x ≤ 0.6 1 , 0.6 < x ≤ 0.8 0 , elsewhere
图5. 新格式下T = 0.2时的数值解与精确解
在计算求解过程中,选取的计算区域为 [ − 0.5 , 2 ] ,网格的剖分份数为320,CFL = 0.1,T = 0.1,下图6给出的是新格式在上述条件下的数值解与准确解的对比,从图上我们可以看到,新格式能很好的计算光滑解,在间断处和大梯度处的近似效果比较好,能有效的抑制非物理震荡。
图6. 在非光滑初值下,新格式的数值解与准确解
下面利用非结构网格下的新格式对二维浅水方程进行求解,
∂ U ∂ t + ∂ E ∂ x + ∂ G ∂ y = 0
其中, U = ( h h u h v ) , E = ( h u h u 2 + g h 2 2 h u v ) , G = ( h v h u v h v 2 + g h 2 2 )
U是守恒变量向量,E是x方向通量,G是y方向通量。
我们选取求解区域为 [ 0 , 50 ] × [ 0 , 50 ] ,利用Easy Mesh对求解区域进行三角形网格剖分,图7为三角剖分图。在这种剖分下得到14,770个单元三角形,7546个顶点,22,315条边。从而可以得到二维浅水方程的初始状态的2D和3D图像,如图8所示。利用新构造的格式可以得到数值解,如图9所示,显示了t = 0.49时的数值解的2D和3D图像。由图像可以知道,新的格式在逼近准确解时可以达到很好的效果。
图7. Easy Mesh的三角形剖分示意图
图8. (a) 二维浅水方程的初始状态2D图像;(b) 二维浅水方程的初始状态的3D图像
图9. (a) 二维浅水方程t = 0.49时的数值解的2D图;(b) 二维浅水方程t = 0.49时的数值解的3D图
本文是基于三角网格和CBC准则,再结合非一致网格下QUICK格式的导数构造了一个新的NVSF高分辨率格式,用此高分辨率格式对对流项进行离散,时间项采用三阶Runge-Kutta格式进行离散。通过算例的真解与数值解的比较,可以看出所构造的有限体积的高分辨率格式适用于非结构网格,并且将此格式退化为结构网格下的格式也具有很好的精度。
本文由内蒙古自然科学基金项目(2015MS0101)和内蒙古自治区人才开发基金项目(12000-1300020240)支持。
蔺彩凤,高 巍. 三角形网格下二维浅水方程的高分辨率格式 A Non-Oscillatory Scheme for Shallow Water Equations on Triangular Meshes[J]. 流体动力学, 2019, 07(01): 11-22. https://doi.org/10.12677/IJFD.2019.71002
https://doi.org/10.1002/nme.1620040409
https://doi.org/10.1002/fld.1650081013
https://doi.org/10.1080/713836153
https://doi.org/10.1002/fld.1650080602
https://doi.org/10.2514/6.1983-1943
https://doi.org/10.1080/10407799408914918
https://doi.org/10.1002/nme.1620040409
https://doi.org/10.1002/fld.1650081013
https://doi.org/10.1080/713836153
https://doi.org/10.1016/0021-9991(77)90095-X
https://doi.org/10.1016/0021-9991(81)90128-5
https://doi.org/10.1090/S0025-5718-98-00913-2