线性常系数对流方程整理
问题模型
考虑周期边界的线性常系数对流方程的求解 \[ u_t + a u_x = 0 \] 其中风向\(a \neq 0\)为常数,记网格比\(\lambda = \frac{\Delta t}{\Delta x}\)并固定。
显格式
迎风格式(FTFS/FTBS)
对\(u_x\)采用单侧离散可以得到
- FTFS(左偏心格式) \[ v_j^{n+1} = v_j^n - a \lambda(v_{j+1}^n - v_j^n) \]
- FTBS(右偏心格式) \[ v_j^{n+1} = v_j^n - a \lambda(v_{j}^n - v_{j-1}^n) \]
两种格式都具有\(O(\Delta t + \Delta x)\)的局部截断误差。
根据\(a\)的正负性:
- \(a>0\):风向从左往右,FTBS是迎风格式,FTFS是逆风格式
- \(a<0\):风向从右往左,FTFS是迎风格式,FTBS是逆风格式
其中迎风格式是有条件\(L^2\)模稳定的,要求:\(|\lambda a| \le 1\),而逆风格式是无条件\(L^2\)模不稳定的。
迎风格式的数值耗散很强,不会出现数值振荡(因为是单调格式)
FTCS(反面示例)
对\(u_x\)直接采用中心差商离散,可以得到FTCS格式
\[ v_j^{n+1} = v_j^n - \frac{a \lambda}2 (v_{j+1}^n - v_{j-1}^n) \]
CTCS格式的局部截断误差为\(O(\Delta t + (\Delta x)^2)\),但这个格式是无条件\(L^2\)模不稳定的!
考虑在FTCS的基础上加上人工黏性项进行修正,可以得到Lax-Friedrich和Lax-Wendroff格式。
Lax-Friedrich格式
Lax-Friedrich格式对FTCS中心点的虚化处理,用空间上算术平均值替换。 \[ v_{j}^{n+1} = \frac{v_{j+1}^n+v_{j-1}^n}{2} - \frac{a \lambda}2 (v_{j+1}^n-v_{j-1}^n) \]
LF格式是有条件相容的格式,必须固定\(\lambda\)为常数才能相容! LF格式的局部截断误差为\(O(\Delta t + \frac{(\Delta x)^2}{\Delta t})\),在固定\(\lambda\)之后,可以达到整体1阶精度。\(L^2\)模稳定性条件:\(|\lambda a|\le 1\)
LF格式具有很强的数值耗散,并且是单调格式,不会产生数值振荡。
Lax-Wendroff格式
Lax-Wendroff格式如下 \[ v_{j}^{n+1} = v_j^n - \frac{a \lambda}2(v_{j+1}^n- v_{j-1}^n) + \frac{a^2 \lambda^2}2 (v_{j+1}^n-2v_{j}^n+v_{j-1}^n) \]
LW格式的局部截断误差为\(O((\Delta t)^2 + (\Delta x)^2)\)。\(L^2\)模稳定性条件:\(|\lambda a|\le 1\)
关于LW的数值色散的结论:数值振荡必然产生于波后。
蛙跳格式(CTCS)
对时间和空间都采用中心差分可以得到著名的蛙跳格式(CTCS) \[ v_j^{n+1} = v_j^{n-1} - a \lambda (v_{j+1}^n-v_{j-1}^n) \]
蛙跳格式的局部截断误差为\(O((\Delta t)^2 + (\Delta x)^2)\),\(L^2\)模稳定性条件:\(|\lambda a|< 1\),注意稳定性条件这里取不到1。
蛙跳格式是无数值耗散的,但是具有明显的数值色散现象:数值振荡必然产生于波后。
注:蛙跳格式是一个三层格式,通常需要使用一个双层格式启动。由于启动格式只使用一次,因此要求较低:网格比设置可以不满足稳定性要求,时间上可以具有比三层格式低一阶的相容性。 除了使用双层格式,也可以根据初值进行泰勒展开近似获得第二层的值,从而启动三层格式。
隐格式
盒子格式(Wendroff)
盒子格式,又称为Wendroff格式,是一种隐格式
\[ (1-a\lambda) v_j^{n+1} + (1+a\lambda) v_{j+1}^{n+1} = (1+a\lambda) v_j^n + (1-a\lambda) v_{j+1}^n \]
盒子格式的局部截断误差为\(O((\Delta t)^2 + (\Delta x)^2)\),无条件具有\(L^2\)模稳定性。
盒子格式是无数值耗散的,但是具有明显的数值色散现象:\(|\lambda a|<1\)时,数值振荡出现在波前,\(|\lambda a|>1\)时,数值振荡出现在波后。
补充
我们还可以基于CFL条件来获取稳定性的必要条件,对本文中对称的显格式,CFL条件为\(|\lambda a| \le 1\)。