文章快速检索     高级检索
  空气动力学学报  2000, Vol. 18 Issue (1): 52-54  

引用本文  

周恒, 袁湘江. 关于NND格式的两点注记[J]. 空气动力学学报, 2000, 18(1): 52-54.
ZHOU H, YUAN X J. Notes on The NND Scheme[J]. Acta Aerodynamica Sinica, 2000, 18(1): 52-54.

文章历史

收稿日期:1999-03-10
修订日期:1999-12-13
关于NND格式的两点注记
周恒1 , 袁湘江2     
1. 天津大学力学系,天津 300072;
2. 中国气动力研究与发展中心,四川锦阳 621000
摘要:对差分格式在激波上计算准确性的标准提出了新的看法,并证明NND格式完全符合这个标准。
关键词数值方法    激波计算    差分格式    
Notes on The NND Scheme
Zhou Heng1 , Yuan Xiang jiang2     
1. Department of Mechanics, Tianjin University, Tianjin 300072;
2. China Aerodynamics Research and Development Center, Sichuan Mianyang 621000
Abstract: A new criterion for the accuracy of difference scheme at the shock is presented.It is proven that the NND scheme meets the criterion strictly.
Keywords: numerical method    shock computation    difference scheme    
0 引言

张涵信提出的NND格式[1], 已经在实践中被证明是最有效的激波捕捉法之一。

在讨论格式精度时, 往往有人提到NND格式在激波上时精度将降阶。我们认为, 在流场光滑区, 可以讨论格式的精度。而在激波上, 用通常的方法讨论格式精度已没有意义, 而应该用另一标准去判断格式的优劣。这一标准应该是通过激波时, 格式能够保证通量守恒的精度。如果通量守恒能严格满足, 则过激波的R-H关系式就能严格满足。另一个判断标准是激波厚度, 因为从理论上讲, 激波厚度是零。如果在实际计算中激波厚度不为零, 则即使R-H关系式被严格满足, 激波厚度不为零仍将对流场整体产生影响。

1 关于NND各式

以下我们将证明, 对一维定常激波问题, NND格式可保证过激波时通量严格守恒。

NND格式可以表达为

对正通量f+

$ \frac{{\partial {f^ + }}}{{\partial x}} = \left\{ {\left[ {f_j^ + + \frac{1}{2} {\rm minmod}\left( {\Delta f_{j + \frac{1}{2}}^ + ,\Delta f_{j - \frac{1}{2}}^ + } \right.} \right] - \left[ {f_{j - 1}^ + + \frac{1}{2}{\rm{minmod}}\left( {\Delta f_{j - \frac{1}{2}}^ + ,\Delta f_{j - \frac{3}{2}}^ + } \right.} \right]} \right\} \cdot \frac{1}{{\Delta x}} $ (1)

对负通量f-

$ \frac{{\partial {f^ - }}}{{\partial x}} = \left\{ {\left[ {f_{j + 1}^ - - \frac{1}{2} {\rm minmod}\left( {\Delta f_{j + \frac{3}{2}}^ - ,\Delta f_{j + \frac{1}{2}}^ - } \right.} \right] - \left[ {f_j^ - - \frac{1}{2}{\rm{minmod}}\left( {\Delta {f_{j + \frac{1}{2}}},\Delta f_{j - \frac{1}{2}}^ - } \right.} \right]} \right\} \cdot \frac{1}{{\Delta x}} $ (2)

实际上, 我们无须写出各项minmod的具体表达式, 只要知道它们只依赖于网格点j。所以(1), (2)式可重写为

$ \frac{{\partial {f^ + }}}{{\partial x}} = \left\{ {\left[ {f_j^ + + \frac{1}{2} {\rm minmod}_j^ + } \right] - \left[ {f_{j - 1}^ + + \frac{1}{2} {\rm minmod}_{j - 1}^ + } \right]} \right\} \cdot \frac{1}{{\Delta x}} $ (3)
$ \frac{{\partial {f^ - }}}{{\partial x}} = \left\{ {\left[ {f_{j + 1}^ - - \frac{1}{2}{\rm minmod}_{j + 1}^ - } \right] - \left[ {f_j^ - - \frac{1}{2}{\rm{minmod}}_j^ - } \right]} \right\} \cdot \frac{1}{{\Delta x}} $ (4)

设激波位于k, k+l之间, l是表征激波厚度的网格数。将(3)式在k-njk+l+n+1范围内相加(n可是任一正整数), 得

$ \sum\nolimits_{k - n}^{k + l + n + 1} {\frac{{\partial f_j^ + }}{{\partial x}}} \approx \left\{ {\left( {{f_{k + l + n + 1}} + \frac{1}{2}{\rm minmod}_{k + h + n + 1}^ + } \right) - \left( {f_{k + n}^ + + \frac{1}{2}{\rm minmod}_{k - n}^ + } \right)} \right\} \cdot \frac{1}{{\Delta x}} $ (5)

同时, 将(4)式在k-n+1≤jk+l+n范围内相加, 得

$ \sum\limits_{k - n + 1}^{k + l + n} {\frac{{\partial f_j^ - }}{{\partial x}}} = \left\{ {\left( {{f_{k + l + n + 1}} - \frac{1}{2}{\rm minmod}_{k + l + n + 1}^ - } \right) - \left( {{f_{k - n}} - \frac{1}{2}{\rm minmod}_{k - n}^ - } \right)} \right\} \cdot \frac{1}{{\Delta x}} $ (6)

当流场趋于定常后($\frac{\partial f_{j}^{+}}{\partial x}+\frac{\partial f_{j}^{-}}{\partial x} $)趋于零, 因此, 将(5) (6)两式相加得

$ \begin{array}{*{20}{c}} {\left( {f_{k + 1 + n + 1}^ + } \right.\left. { + f_{k + l + n + 1}^ - } \right) - \left( {f_{k - n}^ + + f_{k - n}^ - } \right) = \frac{1}{2}{\rm minmod}_{k - n}^ + - \frac{1}{2}{\rm minmod}_{k + l + n + 1}^ + + }\\ {\frac{1}{2}{\rm minmod}_{k + l + n + 1}^ - - \frac{1}{2}{\rm minmod}_{k - n}^ - - \frac{{\partial f_{k + l + n + 1}^ + }}{{\partial x}} + \frac{{\partial f_{k + l + n + 1}^ + }}{{\partial x}}} \end{array} $ (7)

在微波前后, 对一维定常流来说, (7)式右端各项均为零, 所以得

$ \left( {f_{k + 1 + n + 1}^ + + f_{k + 1 + n + 1}^ - } \right) - \left( {f_{k - n}^ + + f_{k - n}^ - } \right) = 0 $ (8)

f++f-=E, E是总通量。因此得

$ {E_{k + l + n + 1}} = {E_{k - n}} $ (9)

即激波前后通量严格守恒。

由于只要minmod是网格点j的函数, 上面的证明就成立, 所以我们还可以设法将激波厚度压缩到只有一个网格的宽度。

在另一篇论文中, 我们曾提出, 由于做了通量分裂, 而正负通量的迎风格式朝向不同, 因而在激波厚度仅一个网格时无法令正负通量的导数在同一个网格点上相互抵消, 从而既很难避免引起计算中的振荡, 又无法使激波厚度减小到仅一个网格。具体说, 如果激波位于网格点ks-1和ks之间而激波厚度又只是一个网格, 则在所有点上, 无论是正通量还是负通量, minmod值均为零。对正通量, ∂f+/∂x在ks点为

$ \frac{{\partial f_{ks}^ + }}{{\partial x}} = \left( {f_{ks}^ + - f_{ks - 1}^ + } \right) \cdot \frac{1}{{\Delta x}} $ (10)

而在其它点均为零。而对负通量而言, ∂f-/∂x在ks-1点的值为

$ \frac{{\partial f_{ks - 1}^ - }}{{\partial x}} = \left( {f_{ks}^ - - f_{ks - 1}^ - } \right) \cdot \frac{1}{{\Delta x}} $ (11)

而在其他点的值均为零。显然, 虽然(10), (11)式之值相等, 但值却分别赋在ks及ks-1点上, 因而无法抵消而使计算收敛。

但是, 如果我们强迫在ks点有

$ \frac{1}{2} {\rm minmod}_{ks}^ - = f_{ks}^ - - f_{ks - 1}^ - $

则有(在激波厚度仅一个网格的理想情况下)

$ \frac{{\partial f_{ks - 1}^ - }}{{\partial x}} = \left[ {\left( {f_{ks}^ - - f_{ks}^ - + f_{ks - 1}^ - } \right) - f_{ks - 1}^ - } \right]\frac{1}{{\Delta x}} = 0 $

$ \frac{{\partial f_{ks}^ - }}{{\partial x}} = \left[ {f_{ks - 1}^ - - \left( {f_{ks}^ - - f_{ks}^ - + f_{ks - 1}^ - } \right)} \right] \cdot \frac{1}{{\Delta x}} = \left[ {f_{ks - 1}^ - - f_{ks - 1}^ - } \right] \cdot \frac{1}{{{\Delta _x}}} $

对其它网格的导数值则无影响。而在计算收敛时, fks-1-=fks-, 所以

$ \frac{{\partial {f_{ks}}}}{{\partial x}} = \left[ {\left( {f_{ks}^ - - f_{ks - 1}^ - } \right)} \right] \cdot \frac{1}{{\Delta x}} $ (12)

与(10)式相加, 得

$ \left( {\frac{{\partial f_{ks}^ + }}{{\partial x}} + \frac{{\partial f_{ks}^ - }}{{\partial x}}} \right) = \left[ {\left( {f_{ks}^ + + f_{ks}^ - } \right) - \left( {f_{ks - 1}^ + + {f_{k - 1}}} \right] \cdot \frac{1}{{\Delta x}}} \right. $

而由通量守恒结果, 右端为零, 故左端也为零, 因而计算可以收敛。

用这一方法, 只要我们能正确判断激波位置, 的确可以做到使激波厚度仅有一个网格。

参考文献
[1]
张涵信, 等. 无波动、无自由参数的耗散差分格式[J]. 空气动力学学报, 1988, 6(2): 143.