热带气象学报  2020, Vol. 36 Issue (3): 389-400  DOI: 10.16032/j.issn.1004-4965.2020.037
0

引用本文  

吴凯昕, 徐道生, 陈德辉, 等. 非均匀网格下的高阶精度中央差分格式:理论推导和理想试验[J]. 热带气象学报, 2020, 36(3): 389-400.  DOI: 10.16032/j.issn.1004-4965.2020.037.
WU Kai-xin, XU Dao-sheng, CHEN De-hui, et al. Central difference schemes with high order accuracy on nonuniform grids: theoretical derivation and ideal test[J]. JOURNAL OF TROPICAL METEOROLOGY, 2020, 36(3): 389-400.  DOI: 10.16032/j.issn.1004-4965.2020.037.

基金项目

广东省气象局科学技术研究项目(GRMC2019M07);国家重点研发专项课题(2018YFC1506900);广东省气象局科学技术研究项目(GRMC2018Q02)共同资助

通讯作者

徐道生,男,浙江省人,副研究员,主要从事数值预报研究。E-mail: dsxu@gd121.cn

文章历史

收稿日期:2019-12-10
修订日期:2020-03-08
非均匀网格下的高阶精度中央差分格式:理论推导和理想试验
吴凯昕 1, 徐道生 1, 陈德辉 1,2, 李梦婕 1     
1. 中国气象局广州热带海洋气象研究所/广东省区域数值预报重点实验室,广东 广州 510641;
2. 中国气象局数值预报中心,北京 100081
摘要:传统的高阶精度有限差分格式通常是在均匀网格的基础上推导得到的,在非均匀网格的情况下它会出现精度退化的问题。基于泰勒展开方法构造了一种适用于非均匀网格的2阶、4阶和6阶精度中央有限差分方案,利用Burgers方程和一维平流方程对新方案的性能进行测试,着重分析新方案对其误差大小及分布形态的改进效果。数值模拟结果表明:在非均匀网格下,提高差分方案的精度可明显减小数值解误差(降低了70%~88%),特别是当差分精度从2阶提高到4阶的时候。同时,高阶精度方案在梯度变化较大或者网格距较粗区域的模拟结果更有优势,4阶和6阶精度方案在以上区域的误差远小于2阶精度方案。方案可用于提高数值天气预报模式中非均匀分层模式的垂直差分计算精度。
关键词非均匀网格    中央差分格式    高阶精度    Burgers方程    一维平流方程    
CENTRAL DIFFERENCE SCHEMES WITH HIGH ORDER ACCURACY ON NONUNIFORM GRIDS: THEORETICAL DERIVATION AND IDEAL TEST
WU Kai-xin 1, XU Dao-sheng 1, CHEN De-hui 1,2, LI Meng-jie 1     
1. Guangzhou Institute of Tropical and Marine Meteorology / Guangdong Provincial Key Laboratory of Regional Numerical Weather Prediction, CMA, Guangzhou 510641, China;
2. Numerical Weather Prediction Center of CMA, Beijing 100081, China
Abstract: Traditional central finite difference schemes are derived on uniform grids. However, the precision of such schemes will decrease on non-uniform grids. This article derives the 2nd, 4th, and 6th order central finite difference schemes using Taylor expansion method. Burgers equation and 1-D advection equation are numerically solved by the new schemes on non-uniform grids. Comparing the numerical solution errors, we find that higher accuracy schemes can reduce up to 70%~88% numerical errors, especially when the accuracy is improved from the 2nd order to the 6th order. It is also found that higher accuracy schemes have advantages in regions of steep gradient or coarser resolution, in which the errors of 4th and 6th order schemes are much smaller than that of the 2nd order scheme.
Key words: non-uniform grid    central difference scheme    high order accuracy    Burgers'equation    1-D advection equation    
1 引言

在天气数值模式当中,有限差分法是大气运动方程组进行离散化时的常用方法,其截断误差的阶数会直接影响数值预报的准确度,因此提高差分格式的计算精度对于提高预报准确度有明显的效果[1-5]。Leslie等[3]利用13层的原始方程模式对2阶精度和4阶精度差分方法进行比较,发现4阶精度方案在对流活跃区域对预报有明显改善,包括垂直速度、降水、风场和形势场的预报都有不同程度的提高。Tremback等[4]构造了1~10阶精度差分方案,并且分别进行一维平流试验、非粘性一维Burgers试验、二维常流试验和浅水模式试验,模拟结果表明高阶精度的方案可有效降低误差,其中6阶精度的方案可同时保持高精确度和高效率。Kent等[5]基于Riemann方案构造了1~6阶精度的差分方案,并利用线性平流方程对其有效分辨率(即可解析的最小波长)进行分析,发现有效分辨率随着计算精度的提高而提高,且提高的幅度在截断阶数较低时更明显。同时也发现在粗网格上使用3阶Riemann方案时的有效分辨率比在细网格上使用2阶Lax-Wendroff方案更高,这说明提高差分方案的计算精度可能比提高分辨率更有效。王明欢等[6]基于高阶Godunov方案发展了高精度正定保形的PRM标量平流方案并利用GRAPES模式进行预报试验,结果表明该方案明显改进水物质场的输送,进而改进模式对大到暴雨的预报能力。

基于泰勒展开的高阶精度有限差分格式很早就成为计算数学界的热门话题[7-9]。Chu等[10]将一种6阶精度差分方案引入到σ坐标系的海洋模式中,发现它对气压梯度力的计算误差只有4阶方案的五分之一。Chu等[11]进一步提出一种紧致型的6阶方案,使之更加简化和便于使用。McCalpin[12]针对σ坐标系中陡峭地形引起的气压梯度力计算误差问题,比较了2阶和4阶精度差分方案的预报结果,发现高阶方案可有效地提高模式的精确性和稳定性。但是过去的研究方案通常都是基于均匀网格的前提假设下推导得到的,在非均匀网格的情况下这些方案的精度会出现退化的问题,有必要在高阶精度差分格式的设计过程中考虑网格非均匀性的影响[13-15]

最近徐道生等[16]设计了一套适用于非均匀分层的2阶精度差分方案,并将它用于改进GRAPES模式的垂直离散化过程。本文将在该差分方案基础上,基于泰勒展开法进一步推导适应于非均匀网格的具有4阶和6阶精度的差分格式,并通过理想试验对其性能进行验证,最终目的是将它应用于GRAPES模式的垂直离散化。在第2节将给出非均匀网格中2阶、4阶和6阶中央差分格式的推导过程。第3节则通过Burgers方程和一维平流方程对比三种差分格式的计算精度,最后在第4节进行总结和讨论。

2 非均匀网格中的中央差分格式 2.1 任意阶精度中央差分格式的基本形式

如果要求差分格式满足2n阶精度,计算模板中需要用到2n+1个格点才能确定1阶导数和2阶导数的含待定系数的基本形式。随后根据泰勒展开法得到的方程组,可求得待定系数。

i点的具有2n阶精度的1阶导数和2阶导数展开如下:

$ \left( {\frac{{\partial f}}{{\partial \chi }}} \right) = \mathop \sum \limits_{l = - n}^n \frac{{D_l^1{f_{i + l}}}}{{\Delta {\chi _{i + l}}}} $ (1)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \mathop \sum \limits_{l = - n}^n \frac{{D_l^2{f_{i + l}}}}{{\Delta \chi _{i + l}^2}} $ (2)

其中Dl1Dl2是待定系数, ∆xi定义为节点i与节点i-1的格距(图 1)。在所用到的i-li+l格点的函数值在i点上进行泰勒展开,取2n阶精度:

$ {f_{i + l}} = \sum\limits_{k = 1}^{2n} {\frac{1}{{k!}}} {\left( {\frac{{{\partial ^k}f}}{{\partial {\chi ^k}}}} \right)_i}{\left( {\sum\limits_{m = 1}^l \Delta {\chi _{i + m}}} \right)^k}, l = 1, 2, \cdots \cdots , n $ (3)
$ {f_{i + l}} = \sum\limits_{k = 1}^{2n} {\frac{1}{{k!}}} {\left( {\frac{{{\partial ^k}f}}{{\partial {\chi ^k}}}} \right)_i}{\left( {\sum\limits_{m = 1 + 1}^0 \Delta {\chi _{i + m}}} \right)^k}, l = - 1, - 2, \cdots \cdots , - n $ (4)
图 1 非均匀网格的节点和网格距示意图

将式(3)和式(4)代入式(1)中,令1阶导数以外的项为0,可得到2n+1个方程,联立方程可求得2n+1个待定系数Dl1(l=-i, +i),将系数代入式(1)即可得到2n阶的1阶导数差分格式。同理可解得2n阶的2阶导数差分格式,只需要在展开时令2阶导数以外的项为0。式(3)、式(4)展开如下,仅以l=±1时的展开式为例:

$ \begin{array}{l} {f_{i + 1}} = {f_i} + \frac{1}{{1!}}{\left( {\frac{{{\partial ^1}f}}{{\partial {\chi ^1}}}} \right)_i}\Delta {\chi _{i + 1}} + \frac{1}{{2!}}{\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i}{\left( {\Delta {\chi _{i + 1}}} \right)^2} + \frac{1}{{3!}}{\left( {\frac{{{\partial ^3}f}}{{\partial {\chi ^3}}}} \right)_i}{\left( {\Delta {\chi _{i + 1}}} \right)^3} +\\ \frac{1}{{4!}}{\left( {\frac{{{\partial ^4}f}}{{\partial {\chi ^4}}}} \right)_i}{\left( {\Delta {\chi _{i + 1}}} \right)^4} + \frac{1}{{5!}}{\left( {\frac{{{\partial ^5}f}}{{\partial {\chi ^5}}}} \right)_i}{\left( {\Delta {\chi _{i + 1}}} \right)^5} + \frac{1}{{6!}}{\left( {\frac{{{\partial ^6}f}}{{\partial {\chi ^6}}}} \right)_i}{\left( {\Delta {\chi _{i + 1}}} \right)^6} + 0\left( {\Delta {\chi ^7}} \right) \end{array} $ (5)
$ \begin{array}{*{20}{l}} \begin{array}{l} {f_{i - 1}} = {f_i} - \frac{1}{{1!}}{\left( {\frac{{{\partial ^1}f}}{{\partial {\chi ^1}}}} \right)_i}\Delta {\chi _i} + \frac{1}{{2!}}{\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i}{\left( {\Delta {\chi _i}} \right)^2} - \frac{1}{{3!}}{\left( {\frac{{{\partial ^3}f}}{{\partial {\chi ^3}}}} \right)_i}{\left( {\Delta {\chi _i}} \right)^3}+\\ \frac{1}{{4!}}{\left( {\frac{{{\partial ^4}f}}{{\partial {\chi ^4}}}} \right)_i}{\left( {\Delta {\chi _i}} \right)^4} - \frac{1}{{5!}}{\left( {\frac{{{\partial ^5}f}}{{\partial {\chi ^5}}}} \right)_i}{\left( {\Delta {\chi _i}} \right)^5} + {\frac{1}{{6!}}{{\left( {\frac{{{\partial ^6}f}}{{\partial {\chi ^6}}}} \right)}_i}{{\left( {\Delta {\chi _i}} \right)}^6} + 0\left( {\Delta {\chi ^7}} \right)}\end{array} \end{array} $ (6)
2.2 2阶、4阶和6阶精度中央差分格式

依照2.1中的方法,可依次推导的2阶、4阶和6阶精度差分格式,具体推导过程见附录A。

2阶精度的计算模板需要用到3个格点,1阶导数和2阶导数具体格式如下,与徐道生等[16]的推导结果是一致的:

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{ - \Delta \chi _{i + 1}^2{f_{i - 1}} + \left( {\Delta \chi _{i + 1}^2 - \Delta \chi _i^2} \right)\Delta {\chi _{i + 1}}{f_i} + \Delta \chi _i^2{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}\Delta {\chi _i}\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)}} $ (7)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{2\Delta {\chi _{i + 1}}{f_{i - 1}} - 2\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right){f_i} + 2\Delta {\chi _i}{f_{i + 1}}}}{{\Delta {\chi _i}\Delta {\chi _{i + 1}}\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)}} $ (8)

4阶精度的计算模板需要用到5个格点,1阶导数和2阶导数具体格式如下:

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{D_{ - 2}^1{f_{i - 2}}}}{{\Delta {\chi _{i - 2}}}} + \frac{{D_{ - 1}^1{f_{i - 1}}}}{{\Delta {\chi _{i - 1}}}} + \frac{{D_0^1{f_i}}}{{\Delta {\chi _i}}} + \frac{{D_1^1{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}}} + \frac{{D_2^1{f_{i + 2}}}}{{\Delta {\chi _{i + 2}}}} $ (9)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{D_{ - 2}^2{f_{i - 2}}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}} + \frac{{D_{ - 1}^2{f_{i - 1}}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} + \frac{{D_0^2{f_i}}}{{{{\left( {\Delta {\chi _i}} \right)}^2}}} + \frac{{D_1^2{f_{i + 1}}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} + \frac{{D_2^2{f_{i + 2}}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}} $ (10)

Dn1Dn2是1阶导数和2阶导数的系数,n=-2,-1,……,2,由于系数比较复杂,具体可参考附录A。

6阶精度的计算模板需要用到7个格点,1阶导数和2阶导数具体格式如下:

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{D_{ - 3}^1{f_{i - 3}}}}{{\Delta {\chi _{i - 3}}}} + \frac{{D_{ - 2}^1{f_{i - 1}}}}{{\Delta {\chi _{i - 2}}}} + \frac{{D_{ - 1}^1{f_{i - 1}}}}{{\Delta {\chi _{i - 1}}}} + \frac{{D_0^1{f_i}}}{{\Delta {\chi _i}}} + \frac{{D_1^1{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}}} + \frac{{D_2^1{f_{i + 2}}}}{{\Delta {\chi _{i + 2}}}} + \frac{{D_3^1{f_{i + 3}}}}{{\Delta {\chi _{i + 3}}}} $ (11)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{D_{ - 3}^2{f_{i - 3}}}}{{{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}} + \frac{{D_{ - 2}^2{f_{i - 2}}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}} + \frac{{D_{ - 1}^2{f_{i - 1}}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} + \frac{{D_0^2{f_i}}}{{{{\left( {\Delta {\chi _i}} \right)}^2}}} + \frac{{D_1^2{f_{i + 1}}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} + \frac{{D_2^2{f_{i + 2}}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}} + \frac{{D_3^2{f_{i + 3}}}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}} $ (12)

Dn1Dn2是1阶导数和2阶导数的系数,n=-3,-2,……,3,系数展开式参考附录A。

3 理想试验

Burgers方程和一维平流方程作为流体力学的基本方程,经常被用于差分方案计算精度的测试[14, 17]。一维平流方程可考察差分方案对简单平流运动的解析能力,而Burgers方程可进一步考察方案对非线性运动的解析能力。

3.1 Burgers方程

Burgers方程是应用数学中常用的非线性偏微分方程,可模拟冲击波的传播和反射,下面利用该方程对第2节推导的差分格式进行检验和对比。Burgers方程形式及其初值和边界条件设置如下[17]

$ \frac{{\partial u}}{{\partial t}} + u\frac{{\partial u}}{{\partial \chi }} - \varepsilon \frac{{{\partial ^2}u}}{{\partial {\chi ^2}}} = 0, \chi \in \left[ {0, 1} \right], t \in \left[ {1.0, 2.5} \right] $ (13)
$ u\left( {0, t} \right) = \frac{\chi }{{1 + \sqrt {\left( {1/\Delta } \right)} \exp \left( {{\chi ^2}/\left( {4\varepsilon } \right)} \right)}}, \chi \in \left[ {0, 1} \right] $ (14)
$ u\left( {0, t} \right) = 0, u\left( {1, t} \right) = 0, t \in \left[ {1.0, 2.5} \right] $ (15)

其中,ε为运动粘性系数,$\Delta = \exp \left( {1/\left( {8\varepsilon } \right)} \right)$。Burgers方程有以下形式的解析解:

$ u\left( {\chi , t} \right) = \frac{{\chi /t}}{{1 + \sqrt {\left( {t/\Delta } \right)} exp\left( {{\chi ^2}/\left( {4\varepsilon t} \right)} \right)}}, \chi \in \left[ {0, 1} \right], t \in \left[ {1.0, 2.5} \right] $ (16)

Burgers方程的解析解如图 2所示,随着积分时间增长,冲击波做平移运动的同时波峰逐渐减小。在本文试验中,粘性系数ε=0.004,时间步长∆t=10-5s。考虑到Burgers方程解的特性,峰值右侧的变化梯度较大,因此在[0.6,1.0]的区间内网格距逐渐减小。对定义域[0, 1]按以下不均匀网格距剖分为N-1个区间,总格点数N=191,网格距设置如下:

图 2 Burgers方程解析解 黑色为t=1 s,绿色为t=1.5 s,黄色为t=2 s。
$ \Delta {\chi _i} = \left\{ \begin{array}{l} 0.01, i \in \left[ {1, 61} \right], \chi \in \left[ {0, 0.6} \right]\\ 0.005, i \in \left[ {62, 121} \right], \chi \in \left[ {0.6, 0.9} \right]\\ 0.002, i \in \left[ {122, 151} \right], \chi \in \left[ {0.90, 0.96} \right]\\ 0.001, i \in \left[ {152, 191} \right], \chi \in \left[ {0.96, 1.00} \right] \end{array} \right. $ (17)

为比较2阶、4阶和6阶非均匀网格中央差分方案的数值解的误差,在此引入的误差范数L2,定义为[18]

$ {L_2} = {\left[ {\frac{1}{N}\sum\limits_{i = 1}^N {{{\left| {u_i^{true} - {u_i}} \right|}^2}} } \right]^{1/2}} $ (18)

3个方案所得数值解的误差L2图 3,可见高阶精度差分格式带来的改善非常明显,特别是从2阶提高到4阶精度时。在1.5s和2s的时次,6阶方案的误差稍小于4阶方案,而在2.5s时6阶方案和4阶方案的误差非常接近,只相差1.0×10-6(表 1),这说明对于粘性扩散过程来说,差分方案从4阶精度提高到6阶精度对模拟结果的改进幅度很小。

图 3 2阶(蓝)、4阶(红)和6阶(绿)非均匀网格差分方案的数值解的误差L2
表 1 2阶、4阶和6阶非均匀网格差分方案的数值解的误差L2

t=2.0s时,二阶精度方案的误差最大值出现在x=0.7~0.8,它主要分布在预报量变化梯度较大的区域内。4阶和6阶方案的误差远小于2阶精度方案(最多减小70%以上)(图 4),并且即使在预报量出现较大梯度变化的区域,其误差也没有出现明显的增长。

图 4 2阶(绿)、4阶(红)和6阶(紫)方案在t=2.0s时的数值解绝对误差|u-utrue|
3.2 一维平流方程

考虑以下一维平流方程的初边值问题[15]

$ \frac{{\partial u}}{{\partial t}} - \alpha \frac{{\partial u}}{{\partial \chi }} = 0, \chi \in \left[ { - 40, 14} \right], t > 0 $ (19)
$ u\left( {\chi , 0} \right) = A{\mathop{\rm sech}\nolimits} \left( {k\chi } \right) $ (20)
$ u\left( { - 40, t} \right) = u\left( {14, t} \right) = 0, t > 0 $ (21)

其中,振幅A=1.0, k=0.5, α=2.0。平流方程解析解为[19]

$ u\left( {\chi , t} \right) = A{\mathop{\rm sech}\nolimits} \left[ {k\left( {\chi + \alpha t} \right)} \right] $ (22)

在本文试验中,步长∆t=10-4s。对定义域[-40, 14]按以下不均匀网格距剖分成N-1个子区间,总格点数N=61,网格距设置如下:

$ \Delta {\chi _i} = \left\{ \begin{array}{l} 4.0, i \in \left[ {1, 6} \right], \chi \in \left[ { - 40, - 16} \right]\\ 2.0, i \in \left[ {7, 11} \right], \chi \in \left[ { - 16, - 6} \right]\\ 0.25, i \in \left[ {12, 50} \right], \chi \in \left[ { - 6, 3.75} \right]\\ 1.0, i \in \left[ {51, 60} \right], \chi \in \left[ {3.75, 13.75} \right] \end{array} \right. $ (23)

图 5可看出波动仅做平移运动,理论上其形态不随时间变化。但由于网格的不均匀性,粗网格和细网格所解析的形态会有所不同,由此可对比不同精度的差分方案在不同分辨率的网格下的表现。

图 5 一维平流方程解析解 黑色为t=1 s,绿色为t=3 s,黄色为t=5 s,红色为t=10 s。

随着波动向更粗的网格移动,三个差分方案的数值误差都逐渐增大(图 6),并且数值误差都随着差分精度的提高而减小。4阶方案的误差较2阶方案减少44%~88%,在t=1 s时(波峰处于细网格区域)误差减幅更明显(表 2)。但在t=1 s时4阶和6阶方案的误差非常接近,6阶方案只比4阶方案减少0.34%。在波动移向更粗的网格区域后,6阶方案的误差减幅逐渐变得更加明显,当t=10 s时6阶方案的误差比4阶方案减少约52%。

图 6 2阶(蓝)、4阶(红)和6阶(绿)非均匀网格差分方案的数值解的误差L2
表 2 2阶、4阶和6阶非均匀网格差分方案的平流方程数值解的误差L2

比较三个方案在t=10 s时的绝对误差空间分布,从图 7可看出三个方案的最大误差均在峰值附近,并且随着差分精度的提高而减小(从8.43×10-2减少到3.38×10-2)。在2阶精度方案下,波值附近的大梯度区域出现了较明显的波动,而随着计算精度的提高这种波动得到了明显的抑制。

图 7 2阶(绿)、4阶(红)和6阶(紫)方案在t=10 s时的数值解绝对误差|u-utrue|
4 讨论与总结

本文基于泰勒展开法推导了适用于非均匀网格的高阶精度有限差分方案,并通过理想试验对新方案的效果进行了评估。

研究结果表明,在非均匀网格下,本文提出的高阶精度有限差分方案可有效减小计算误差,尤其是从2阶精度提高到4阶精度时会得到误差大幅度减小的数值解,而从4阶提高到6阶精度时,全局误差L2轻微下降,基本保持在同一量级。

在Burgers方程试验中4阶精度的计算误差明显小于2阶精度,而从4阶精度到6阶精度对于模拟结果的影响则很小。从误差空间分布来看,2阶精度的计算误差主要集中在波峰右侧的大梯度区附近,采用高阶方案以后该区域的误差能够下降到和其它区域相接近的水平。在平流方程试验中,从4阶到6阶也有比较明显的改进,但是其幅度仍然不如从2阶到4阶时大。从平流方程的误差空间分布来看,除了波峰附近出现较大误差之外,在远离波峰的粗网格区域也会出现一些比较明显的误差峰值,这可能与该试验中波的移动方向有关(Burgers试验中波动是从粗网格向细网格方向移动,而平流试验中波动是从细网格向粗网格方向移动)。提高计算精度可减小这些区域的计算误差,特别是从4阶到6阶以后远离波峰的误差峰值基本消失了,这说明对于从细网格向粗网格运动的波来说,把计算精度提高到6阶是很有意义的。考虑到大气模式边界层内要素场垂直变化非常剧烈,而模式的垂直层分布也通常是低层密集而高层稀疏,因此本文的高阶精度差分方案可能有助于改进模式对于低层扰动垂直传播过程的模拟能力。

需要指出,高阶精度有限差分方案的计算模板所使用的格点数会多于低阶方案,这不可避免会导致计算量的增加,因此在将高精度方案应用于实际天气预报模式时需要考虑计算效果改进与计算效率降低之间的平衡。对于GRAPES模式来说,在2阶精度差分格式下它的计算模板(即关于无量纲气压的赫姆霍兹方程)仅仅涉及到k-1到k+1三个垂直层上格点,而在6阶精度方案下它的计算模板将会出现k-3到k+3之间七个垂直层上的格点,这必然会使得赫姆霍兹方程的格点数目明显增加。但是由于GRAPES模式在求解赫姆霍兹方程时采用的是预处理后的广义共轭余差法(GCR),该方法在求解过程中对方程的系数矩阵进行近似处理,仅仅保留矩阵中量级明显大于其它格点的系数,使得系数矩阵简化为一个分段三对角阵[20-21]。因此即使高阶精度差分方案增加了赫姆霍兹方程的格点数,但是它对于方程的求解过程几乎没有增加任何计算量,因此将本文的高阶方案应用于GRAPES模式是完全可行的。另外,虽然高阶方案计算模板中的系数会比较复杂,这在一定程度上增加了理论推导过程的难度,但是对于实际编程来说,只需对相应的系数进行修改,编程难度不高。在下一步的工作中,我们将把本文的高阶方案实际应用于GRAPES模式[22-24]的垂直差分计算。

附录A

(1) 2阶精度中央差分格式推导过程。

求2阶精度的1阶导数和2阶导数的表达式,需要用到3个节点,由式(1)和式(2)有:

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{D_{ - 1}^1{f_{i - 1}}}}{{\Delta {\chi _{i - 1}}}} + \frac{{D_0^1{f_i}}}{{\Delta {\chi _i}}} + \frac{{D_1^1{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}}} $ (A1)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{D_{ - 1}^2{f_{i - 1}}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} + \frac{{D_0^2{f_i}}}{{{{\left( {\Delta {\chi _i}} \right)}^2}}} + \frac{{D_1^2{f_{i + 1}}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} $ (A2)

式(A1)和式(A2)代入式(3)和式(4),令l=±1,略去3阶及以上的高阶小项,可解得待定系数:

$ \left\{ \begin{array}{l} D_{ - 1}^1 = - \frac{{\Delta {\chi _{i + 1}}\Delta {\chi _{i - 1}}}}{{\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)\Delta {\chi _i}}}\\ D_0^1 = \frac{{\Delta {\chi _{i + 1}} - \Delta {\chi _i}}}{{\Delta {\chi _{i + 1}}\Delta {\chi _i}}}\\ D_1^1 = \frac{{\Delta {\chi _i}}}{{\Delta {\chi _i} + \Delta {\chi _{i + 1}}}} \end{array} \right. $ (A3)
$ \left\{ \begin{array}{l} D_{ - 1}^2 = - \frac{{2{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}}{{\Delta {\chi _i}\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)}}\\ D_0^2 = - \frac{{2\Delta {\chi _i}}}{{\Delta {\chi _{i + 1}}}}\\ D_1^2 = \frac{{2\Delta {\chi _{i + 1}}}}{{\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)}} \end{array} \right. $ (A4)

将以上系数分别代入式(A1)和式(A2),得2阶精度1阶导数和2阶导数的传统显式中央差分格式。

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{ - \Delta \chi _{i + 1}^2{f_{i - 1}} + \left( {\Delta \chi _{i + 1}^2 - \Delta \chi _i^2} \right)\Delta {\chi _{i + 1}}{f_i} + \Delta \chi _i^2{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}\Delta {\chi _i}\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)}} $ (A5)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{2\Delta {\chi _{i + 1}}{f_{i - 1}} - 2\left( {\Delta {\chi _i} - \Delta {\chi _{i + 1}}} \right){f_i} + 2\Delta {\chi _i}{f_{i + 1}}}}{{\Delta {\chi _i}\Delta {\chi _{i + 1}}\left( {\Delta {\chi _i} + \Delta {\chi _{i + 1}}} \right)}} $ (A6)

(2) 4阶精度中央差分格式推导过程。

求4阶精度的1阶导数和2阶导数的表达式,需要用到5个节点,由式(1)和式(2)有:

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{D_{ - 2}^1{f_{i - 2}}}}{{\Delta {\chi _{i - 2}}}} + \frac{{D_{ - 1}^1{f_{i - 1}}}}{{\Delta {\chi _{i - 1}}}} + \frac{{D_0^1{f_i}}}{{\Delta {\chi _i}}} + \frac{{D_1^1{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}}} + \frac{{\Delta D_2^1{f_{i + 2}}}}{{\Delta {\chi _{i + 2}}}} $ (A7)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{D_{ - 2}^2{f_{i - 2}}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}} + \frac{{D_{ - 1}^2{f_{i - 1}}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} + \frac{{D_0^2{f_i}}}{{{{\left( {\Delta {\chi _i}} \right)}^2}}} + \frac{{D_1^2{f_{i + 1}}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} + \frac{{\Delta D_2^2{f_{i + 2}}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}} $ (A8)

式(A7)和式(A8)代入式(3)和式(4),令l=±1和l=±2,略去5阶及以上的高阶小项,可解得待定系数:

$ \left\{ \begin{array}{l} D_2^1 = - \frac{{\Delta {\chi _{i + 1}}\Delta {\chi _i}{a_1}}}{{\left[ {{a_4}{a_3}{a_1} + {a_4}{{\left( {{a_3}} \right)}^2}} \right]}}\\ D_1^1 = - \frac{{D_2^1{{\left( {{a_3}} \right)}^2}\left( {{a_1} + {a_3}} \right){a_4}}}{{\Delta {\chi _{i + 2}}\Delta {\chi _{i + 1}}{a_2}{a_5}}}\\ D_{ - 1}^1 = - \frac{{D_1^1\Delta {\chi _{i + 1}}{a_5}}}{{\Delta \chi _i^2}} - \frac{{D_2^1}}{{\Delta {\chi _{i + 2}}}}\frac{{{{\left( {{a_3}} \right)}^2}\left( {{a_1} + {a_3}} \right)}}{{\Delta \chi _i^2}}\\ D_{ - 2}^1 = - \frac{{D_{ - 1}^1}}{{\Delta {\chi _{i - 1}}}}\frac{{\Delta \chi _i^2\Delta {\chi _{i - 2}}}}{{{{\left( {{a_1}} \right)}^2}}} - D_1^1\frac{{\Delta {\chi _{i - 2}}\Delta {\chi _{i + 1}}}}{{{{\left( {{a_1}} \right)}^2}}} - \frac{{D_2^1}}{{\Delta {\chi _{i + 2}}}}\frac{{\Delta {\chi _{i - 2}}{{\left( {{a_3}} \right)}^2}}}{{{{\left( {{a_1}} \right)}^2}}}\\ D_0^1 = - \frac{{D_{ - 2}^1\Delta {\chi _i}}}{{\Delta {\chi _{i - 2}}}} - \frac{{D_{ - 1}^1\Delta {\chi _i}}}{{\Delta {\chi _{i + 1}}}} - \frac{{D_1^1\Delta {\chi _i}}}{{\Delta {\chi _{i + 1}}}} - \frac{{D_2^1\Delta {\chi _i}}}{{\Delta {\chi _{i + 2}}}} \end{array} \right. $ (A9)
$ \left\{ \begin{array}{l} D_2^2 = - \frac{{2({a_1} + \Delta {\chi _i})\Delta {\chi _{i + 1}}\Delta {\chi _{i + 2}} - 2{a_1}\Delta {\chi _i}\Delta {\chi _{i + 2}}}}{{{a_4}{a_3}\left( {{a_1} + {a_3}} \right)}}\\ D_1^2 = \frac{{2\Delta {\chi _{i + 1}}\left( {{a_1} + \Delta {\chi _i}} \right){a_3} - 2{a_1}\Delta {\chi _i}\Delta {\chi _{i + 1}}}}{{\Delta {\chi _{i + 2}}{a_2}{a_5}}}\\ D_{ - 1}^2 = D_1^2\frac{{\Delta {\chi _{i - 1}}\Delta {\chi _{i + 1}}{a_5}}}{{\Delta \chi _i^3}} + D_2^2\frac{{\Delta {\chi _{i - 1}}{{\left( {{a_3}} \right)}^3}\left( {{a_1} + {a_3}} \right)}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}\Delta \chi _i^3}}\\ D_{ - 2}^2 = - \frac{{D_{ - 1}^2}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}}\frac{{\Delta \chi _i^4\left( {\Delta {\chi _{i - 2}}} \right)}}{{{{\left( {{a_1}} \right)}^4}}} - D_2^2\frac{{\Delta \chi _{i + 1}^2{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}}{{{{\left( {{a_1}} \right)}^4}}} - \frac{{D_2^2}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}}\frac{{{{\left( {{a_3}} \right)}^4}{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}}{{{{\left( {{a_1}} \right)}^4}}}\\ D_0^2 = - \frac{{D_{ - 2}^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}} - \frac{{D_{ - 1}^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} - \frac{{D_1^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} - \frac{{D_2^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}} \end{array} \right. $ (A10)

其中,

$ \begin{array}{l} {a_1} = \left( {\Delta {\chi _{i - 1}} + \Delta {\chi _i}} \right),{a_2} = \left( {\Delta {\chi _{i + 1}} + \Delta {\chi _i}} \right),{a_3} = \left( {\Delta {\chi _{i + 1}} + \Delta {\chi _{i + 2}}} \right),\\ {a_4} = \left( {\Delta {\chi _{i + 1}} + \Delta {\chi _{i + 2}} + \Delta {\chi _i}} \right),{a_5} = \Delta {\chi _{i - 1}} + \Delta {\chi _i} + \Delta {\chi _{i + 1}}。\end{array} $

(3) 6阶精度中央差分格式推导过程。

求6阶精度的1阶导数和2阶导数的表达式,需要用到7个节点,由式(1)和式(2)有:

$ {\left( {\frac{{\partial f}}{{\partial \chi }}} \right)_i} = \frac{{D_{ - 3}^1{f_{i - 3}}}}{{\Delta {\chi _{i - 3}}}} + \frac{{D_{ - 2}^1{f_{i - 2}}}}{{\Delta {\chi _{i - 2}}}} + \frac{{D_{ - 1}^1{f_{i - 1}}}}{{\Delta {\chi _{i - 1}}}} + \frac{{D_0^1{f_i}}}{{\Delta {\chi _i}}} + \frac{{D_1^1{f_{i + 1}}}}{{\Delta {\chi _{i + 1}}}} + \frac{{D_2^1{f_{i + 2}}}}{{\Delta {\chi _{i + 2}}}} + \frac{{D_3^1{f_{i + 3}}}}{{\Delta {\chi _{i + 3}}}} $ (A11)
$ {\left( {\frac{{{\partial ^2}f}}{{\partial {\chi ^2}}}} \right)_i} = \frac{{D_{ - 3}^2{f_{i - 3}}}}{{{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}} + \frac{{D_{ - 2}^2{f_{i - 2}}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}} + \frac{{D_{ - 1}^2{f_{i - 1}}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} + \frac{{D_0^2{f_i}}}{{{{\left( {\Delta {\chi _i}} \right)}^2}}} + \frac{{D_1^2{f_{i + 1}}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} + \frac{{D_2^2{f_{i + 2}}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}} + \frac{{D_3^2{f_{i + 3}}}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}} $ (A12)

式(A11)和式(A12)代入式(3)和式(4),令l=±1、l=±2和l=±3,略去7阶及以上的高阶小项,可解得待定系数:

$ \left\{ \begin{array}{l} D_3^1 = \frac{{\Delta {\chi _i}\Delta {\chi _{i + 1}}{a_1}{a_2}{a_3}}}{{{a_7}\left( {{a_5} + {a_7}} \right)\left( {{a_1} + {a_8}} \right){a_8}\left( {{a_3} + {a_8}} \right)}}\\ D_2^1 = - \frac{{D_3^1{a_7}{{\left( {{a_8}} \right)}^2}\left( {{a_5} + {a_7}} \right)\left( {{a_1} + {a_8}} \right)\left( {{a_3} + {a_8}} \right)}}{{\Delta {\chi _{i + 3}}{a_6}{{\left( {{a_2}} \right)}^2}\left( {{a_1} + {a_2}} \right)\left( {{a_3} + {a_2}} \right)}}\\ D_1^1 = - \frac{{D_2^1}}{{\Delta {\chi _{i + 2}}}}\frac{{{a_6}{{\left( {{a_2}} \right)}^2}\left( {{a_1} + {a_2}} \right)\left( {{a_3} + {a_2}} \right)}}{{\Delta {\chi _{i + 1}}{a_5}\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)\left( {{a_3} + \Delta {\chi _{i + 1}}} \right)}} - \frac{{D_3^1\left( {{a_5} + {a_7}} \right){{\left( {{a_8}} \right)}^2}\left( {{a_1} + {a_8}} \right)\left( {{a_3} + {a_8}} \right)}}{{\Delta {\chi _{i + 3}}\Delta {\chi _{i + 1}}{a_5}\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)\left( {{a_3} + \Delta {\chi _{i + 1}}} \right)}}\\ D_{ - 1}^1 = - D_1^1\frac{{\Delta \chi _{i + 1}^3\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)\left( {{a_3} + \Delta {\chi _{i + 1}}} \right)}}{{\Delta \chi _i^4\left( {\Delta {\chi _{i - 2}} + \Delta {\chi _{i - 1}}} \right)}} - \frac{{D_2^1}}{{\Delta {\chi _{i + 2}}}}\frac{{{{\left( {{a_2}} \right)}^4}\left( {{a_1} + {a_2}} \right)\left( {{a_3} + {a_2}} \right)}}{{\Delta \chi _i^4\left( {\Delta {\chi _{i - 2}} + \Delta {\chi _{i - 1}}} \right)}} - \frac{{D_3^1{{\left( {{a_8}} \right)}^4}\left( {{a_1} + {a_8}} \right)\left( {{a_3} + {a_8}} \right)}}{{\Delta {\chi _{i + 3}}\Delta \chi _i^4\left( {\Delta {\chi _{i - 2}} + \Delta {\chi _{i - 1}}} \right)}}\\ D_{ - 2}^1 = - \frac{{D_{ - 2}^1}}{{\Delta {\chi _{i - 1}}}}\frac{{\Delta \chi _i^2\left( {{a_1} - \Delta {\chi _i}} \right)}}{{{{\left( {{a_3}} \right)}^2}}} - D_1^1\frac{{\Delta {\chi _{i + 1}}\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)}}{{{{\left( {{a_3}} \right)}^2}}} - \frac{{D_2^1}}{{\Delta {\chi _{i + 2}}}}\frac{{{{\left( {{a_2}} \right)}^2}\left( {{a_1} + {a_2}} \right)}}{{{{\left( {{a_3}} \right)}^2}}} - \frac{{D_3^1}}{{\Delta {\chi _{i + 3}}}}\frac{{{{\left( {{a_8}} \right)}^2}\left( {{a_1} + {a_8}} \right)}}{{{{\left( {{a_3}} \right)}^2}}}\\ D_{ - 3}^1 = - \frac{{D_{ - 2}^1}}{{\Delta {\chi _{i - 2}}}}\frac{{{{\left( {{a_3}} \right)}^2}\Delta {\chi _{i - 3}}}}{{{{\left( {{a_1}} \right)}^2}}} - \frac{{D_{ - 1}^1}}{{\Delta {\chi _{i - 1}}}}\frac{{\Delta {\chi _{i - 3}}\Delta \chi _i^2}}{{{{\left( {{a_1}} \right)}^2}}} - \frac{{D_2^1}}{{\Delta {\chi _{i + 1}}}}\frac{{\Delta {\chi _{i - 3}}\Delta \chi _{i + 1}^2}}{{{{\left( {{a_1}} \right)}^2}}} - \frac{{{A_2}}}{{\Delta {\chi _{i + 2}}}}\frac{{\Delta {\chi _{i - 3}}{{\left( {{a_2}} \right)}^2}}}{{{{\left( {{a_1}} \right)}^2}}} - \frac{{D_3^1}}{{\Delta {\chi _{i + 3}}}}\frac{{\Delta {\chi _{i - 3}}{{\left( {{a_8}} \right)}^2}}}{{{{\left( {{a_1}} \right)}^2}}}\\ D_0^1 = - \frac{{D_{ - 3}^1\Delta {\chi _i}}}{{\Delta {\chi _{i - 3}}}} - \frac{{D_{ - 2}^1\Delta {\chi _i}}}{{\Delta {\chi _{i - 2}}}} - \frac{{D_{ - 1}^1\Delta {\chi _i}}}{{\Delta {\chi _{i - 1}}}} - \frac{{D_1^1\Delta {\chi _i}}}{{\Delta {\chi _{i + 1}}}} - \frac{{D_2^1\Delta {\chi _i}}}{{\Delta {\chi _{i + 2}}}} - \frac{{D_{ - 3}^1\Delta {\chi _i}}}{{\Delta {\chi _{i + 3}}}} \end{array} \right. $ (A13)
$ \left\{ \begin{array}{l} D_3^2 = \Delta {\chi _{i + 3}}\frac{{2{a_1}{a_2}{a_3}\left( {\Delta {\chi _{i + 1}} - \Delta {\chi _i}} \right) + 2\Delta {\chi _i}\Delta {\chi _{i + 1}}{a_2}\left( {{a_1} + {a_3}} \right) - 2\Delta {\chi _i}\Delta {\chi _{i + 1}}{a_1}{a_3}}}{{{a_7}{a_8}\left( {{a_5} + {a_7}} \right)\left( {{a_1} + {a_8}} \right)\left( {{a_3} + {a_8}} \right)}}\\ D_2^2 = - 2\Delta {\chi _{i + 2}}\frac{{{a_1}{a_3}{a_8}\left( {\Delta {\chi _{i + 1}} - \Delta {\chi _i}} \right) + \Delta {\chi _i}\Delta {\chi _{i + 1}}{a_8}\left( {{a_1} + {a_3}} \right) - \Delta {\chi _i}\Delta {\chi _{i + 1}}{a_1}{a_3}}}{{\Delta {\chi _{i + 3}}{a_2}{a_6}\left( {{a_1} + {a_2}} \right)\left( {{a_2} + {a_3}} \right)}}\\ D_1^2 = - \frac{{D_2^2}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}}\frac{{{a_1}{{\left( {{a_2}} \right)}^3}\left( {{a_1} + {a_2}} \right)\left( {{a_2} + {a_3}} \right)}}{{{a_5}\Delta {\chi _{i + 1}}\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)\left( {{a_3} + \Delta {\chi _{i + 1}}} \right)}} - \frac{{D_3^2}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}}\frac{{{{\left( {{a_8}} \right)}^2}\left( {{a_5} + {a_7}} \right)\left( {{a_1} + {a_8}} \right)\left( {{a_3} + {a_8}} \right)}}{{\Delta {\chi _{i + 1}}{a_5}\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)\left( {{a_3} + \Delta {\chi _{i + 1}}} \right)}}\\ D_{ - 1}^2 = \frac{{D_1^2\Delta {\chi _{i - 1}}}}{{\Delta {\chi _{i + 1}}}}\frac{{\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)\left( {{a_3} + \Delta {\chi _{i + 1}}} \right)}}{{\Delta {\chi _i}\left( {{a_1} - \Delta {\chi _i}} \right)}} + \frac{{D_2^2\Delta {\chi _{i - 1}}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}}\frac{{{a_2}\left( {{a_1} + {a_2}} \right)\left( {{a_3} + {a_2}} \right)}}{{\Delta {\chi _i}\left( {{a_1} - \Delta {\chi _i}} \right)}} + \frac{{D_3^2\Delta {\chi _{i - 1}}}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}}\frac{{{a_8}\left( {{a_1} + {a_8}} \right)\left( {{a_3} + {a_8}} \right)}}{{\Delta {\chi _i}\left( {{a_1} - \Delta {\chi _i}} \right)}} - \frac{{2\Delta {\chi _{i - 1}}\left( {{a_1} + {a_3}} \right)}}{{\Delta {\chi _i}\left( {{a_1} - \Delta {\chi _i}} \right)}}\\ D_{ - 2}^2 = - \frac{{D_{ - 1}^2}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}}\frac{{\Delta {\chi _{i - 2}}\Delta \chi _i^3\left( {{a_1} - \Delta {\chi _i}} \right)}}{{{{\left( {{a_3}} \right)}^3}}} + D_1^2\frac{{\Delta {\chi _{i - 2}}\Delta {\chi _{i + 1}}\left( {{a_1} + \Delta {\chi _{i + 1}}} \right)}}{{{{\left( {{a_3}} \right)}^3}}} + \frac{{D_2^2}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}}\frac{{\Delta {\chi _{i - 2}}{{\left( {{a_2}} \right)}^3}\left( {{a_1} + {a_2}} \right)}}{{{{\left( {{a_3}} \right)}^3}}} + \frac{{D_3^2}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}}\frac{{\Delta {\chi _{i - 2}}{{\left( {{a_8}} \right)}^3}\left( {{a_1} + {a_8}} \right)}}{{{{\left( {{a_3}} \right)}^3}}} - \frac{{2\Delta {\chi _{i - 2}}}}{{{a_3}}}\\ D_{ - 3}^2 = - \frac{{D_{ - 2}^2{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}}\frac{{{a_3}}}{{{a_1}}} - \frac{{D_{ - 1}^2{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}}\frac{{\Delta {\chi _i}}}{{{a_1}}} + \frac{{D_1^2{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}}\frac{{\Delta {\chi _{i + 1}}}}{{{a_1}}} + \frac{{D_2^2{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}}\frac{{{a_2}}}{{{a_1}}} + \frac{{D_3^2{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}}\frac{{{a_8}}}{{{a_1}}}\\ D_0^2 = - \frac{{D_{ - 3}^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 3}}} \right)}^2}}} - \frac{{D_{ - 2}^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 2}}} \right)}^2}}} - \frac{{D_{ - 1}^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i - 1}}} \right)}^2}}} - \frac{{D_1^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 1}}} \right)}^2}}} - \frac{{D_2^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 2}}} \right)}^2}}} - \frac{{D_3^2{{\left( {\Delta {\chi _i}} \right)}^2}}}{{{{\left( {\Delta {\chi _{i + 3}}} \right)}^2}}} \end{array} \right. $ (A14)

其中,

$ \begin{array}{l} {a_1} = \left( {\Delta {\chi _{i - 2}} + \Delta {\chi _{i - 1}} + \Delta {\chi _i}} \right),{a_2} = \left( {\Delta {\chi _{i + 1}} + \Delta {\chi _{i + 2}}} \right),\\ {a_3} = \left( {\Delta {\chi _{i - 1}} + \Delta {\chi _i}} \right),{a_4} = \left( {\Delta {\chi _{i + 2}} + \Delta {\chi _i}} \right),\\ {a_5} = \Delta {\chi _{i + 1}} + \Delta {\chi _i},{a_6} = \Delta {\chi _{i + 1}} + \Delta {\chi _{i + 2}} + \Delta {\chi _i},\\ {a_7} = \Delta {\chi _{i + 2}} + \Delta {\chi _{i + 3}},{a_8} = \Delta {\chi _{i + 1}} + \Delta {\chi _{i + 2}} + \Delta {\chi _{i + 3}} \end{array} $
参考文献
[1]
CULLEN M J P, DAVIES T. A conservative split-explicit integration scheme with fourth-order horizontal advection[J]. Q J R Meteor Soc, 1991, 117(501): 993-1002. DOI:10.1002/qj.49711750106
[2]
CROWELL S, WILLIAMS D, MAVRIPLIS C, et al. Comparison of traditional and novel discretization methods for advection models in numerical weather prediction[C]. Computational Science-iccs, International Conference, Baton Rouge, LA, USA, May, Part Ⅱ. Springer-Verlag, 2009: 263-272.
[3]
LESLIE L M, PURSER R J. High-order numerics in an unstaggered three-dimensional time-split semi-lagrangian forecast model[J]. Mon Wea Rev, 1991, 119(7): 1612-1623. DOI:10.1175/1520-0493(1991)119<1612:HONIAU>2.0.CO;2
[4]
TREMBACK C J, POWELL J, COTTON W R, et al. The forward-in-time upstream advection scheme: extension to higher orders[J]. Mon Wea Rev, 1987, 115(2): 540-555. DOI:10.1175/1520-0493(1987)115<0540:TFTUAS>2.0.CO;2
[5]
KENT J, WHITEHEAD J P, JABLONOWSKI C, et al. Determining the effective resolution of advection schemes[J]. J Comp Phys, 2014, 278(C): 497-508.
[6]
王明欢, 沈学顺, 肖锋. GRAPES模式中高精度正定保形物质平流方案的研究Ⅱ:连续实际预报试验[J]. 气象学报, 2011, 69(1): 16-25.
[7]
MORINISHI Y, LUND T S, VASILYEV O V, et al. Fully conservative higher order finite difference schemes for incompressible flow[J]. J Comp Phys, 1998, 143(1): 90-124. DOI:10.1006/jcph.1998.5962
[8]
HAM F E, LIEN F S, STRONG A B. A fully conservative second-order finite difference scheme for incompressible flow on nonuniform grids[J]. J Comp Phys, 2002, 177(1): 117-133. DOI:10.1006/jcph.2002.7006
[9]
田芳, 田振夫. 非均匀网格上求解对流扩散问题的高阶紧致差分方法[J]. 宁夏大学学报(自然科学版), 2009, 30(3): 11-14.
[10]
CHU P C, FAN C. Sixth-order difference scheme for sigma coordinate ocean models[J]. J Phys Ocean, 1997, 27(9): 2064-2071. DOI:10.1175/1520-0485(1997)027<2064:SODSFS>2.0.CO;2
[11]
CHU P C, FAN C. An accuracy progressive sixth-order finite-difference scheme[J]. J Atmos Ocean Techn, 2001, 18(7): 1245-1257. DOI:10.1175/1520-0426(2001)018<1245:AAPSOF>2.0.CO;2
[12]
MCCALPIN J D. A comparison of second-order and fourth-order pressure gradient algorithms in a σ - co-ordinate ocean model[J]. International Journal for Numerical Methods in Fluids, 1994, 18(4): 361-383. DOI:10.1002/fld.1650180404
[13]
KALNAY E. On the use of nonuniform grids in finite-difference equations[J]. J Comp Phys, 1972, 10(2): 202-210. DOI:10.1016/0021-9991(72)90060-5
[14]
姜勇强, 张维桓, 周祖刚, 等. 不等距分层中尺度η坐标暴雨模式的设计及数值试验[J]. 热带气象学报, 2001, 17(3): 301-307.
[15]
孙建安, 贾伟, 吴广智. 一种非均匀网格上的高精度紧致差分格式[J]. 西北师范大学学报(自然科学版), 2014, 50(4): 31-35, 40.
[16]
徐道生, 陈德辉. 非均匀分层下的二阶精度垂直差分方案及其在GRAPES模式中的应用[J]. 大气科学, 2020. DOI:10.3878/j.issn.1006-9895.1906.19145
[17]
ALPER K, IDRIS D. Cubic B‐spline differential quadrature methods and stability for burgers' equation[J]. Engineering Computations, 2013, 30(3): 320-344. DOI:10.1108/02644401311314312
[18]
DOGAN A. Numerical solution of RLW equation using linear finite elements within Galerkin's method[J]. Applied Mathematical Modelling, 2002, 26(7): 771-783. DOI:10.1016/S0307-904X(01)00084-1
[19]
李五明. 对流方程差分格式稳定性判定[J]. 河南理工大学学报(自然科学版), 2012, 31(3): 369-372.
[20]
薛纪善, 陈德辉. 数值预报系统GRAPES的科学设计与应用[M]. 北京: 科学出版社, 2008: 132-136.
[21]
刘宇, 曹建文. 适用于GRAPES数值天气预报软件的ILU预条件子[J]. 计算机工程与设计, 2008, 29(3): 217-220.
[22]
朱文达, 陈子通, 张艳霞, 等. 高分辨地形对华南区域GRAPES模式地面要素预报影响的研究[J]. 热带气象学报, 2019, 35(6): 801-811.
[23]
张诚忠, 薛纪善, 黄燕燕, 等. 资料同化对2017年登陆广东沿海台风的短期降水与路径预报影响[J]. 热带气象学报, 2019, 35(5): 577-586.
[24]
陈子通, 戴光丰, 钟水新, 等. 中国南海台风模式(TRAMS-v2[J]. 热带气象学报, 2016, 32(6): 831-840.