This article compares finite volume method and finite difference method.

Finite Volume Method (FVM) 有限体积法

Godunov's scheme 的目的是为了正确捕捉激波。 Godunov法的基本观点是:1、每个离散点的值表示以它为中心的细胞的平均值;2、以黎曼求解器为基础。 与有限差分法用差分代替微分做离散不同,Godunov法的全部离散过程就是依据流函数设计数值流函数。 Godunov法将原函数理解 (数值重构 reconstruction) 为逐细胞常值函数, 而细胞分界面上的数值流函数取值则依赖于黎曼问题的解。

Finite volume method 从Godunov法发展而来。 有限体积法将双曲型方程在一个细胞里的积分形式理解为由细胞平均与流函数构成,且细胞平均的变化完全由流函数造成。 依据这种观点写出的格式为守恒形式,守恒形式保证了离散的、局部的守恒律。 在一定条件下 (Lax-Wendroff 定理) ,局部的守恒律保证了全局的守恒律,解得的数值解收敛于问题的一个弱解。 黎曼求解器隐含了局部的熵不等式,而且进一步可以证明,Godunov法保证了全局的熵不等式。 熵条件的成立保证了解得的弱解是真实的解。

用黎曼求解器求解非线性方程组成本很高,而且用于定义流函数的信息很少; 近似黎曼求解器(approximate Riemann solvers)则可以用少得多的成本得到对于许多情形差不多好的结果。 近似黎曼求解器可以从对中间状态作近似入手,也可以从直接对流函数作近似入手。 将非线性问题替换为一个线性问题是一类构造近似黎曼求解器的思路,称为线性黎曼求解器。 Roe提出了一种线性黎曼求解器: 首先,假设每个细胞界面上至多只有一族强间断特征波,其他族间断特征波的跳跃都是小量; 然后,假设 Rankine-Hugoniot 条件总是成立,也就是只考虑不连续波。 在Roe的单族强间断特征波假设下,我们只需要保证线性化系数矩阵保留原来的所有特征结构 (特征向量及其对应特征值) , 这就可以准确捕捉激波。 进一步由 Rankine-Hugoniot 条件,我们发现待构造的线性化系数矩阵是对流函数导数在某种意义上的近似。 构造一个线积分,我们找到了Roe线性化系数矩阵A的形式,它与原非线性化问题有相似的特征结构。 由矩阵A,进一步得到了数值流函数的形式。 Roe线性化方程的解与原非线性问题在局部的解 (或者说他黎曼问题的解) ,在细胞界面上几乎完全相同, 除了出现 transonic rarefaction wave 的时候。 为了解决 transonic rarefaction wave,我们引入“熵修正”,即加大数值粘性,抹平 stagnation。

Godunov法的数值流函数可以分解为一个中心差分项和一个附加粘性项。 前一项有2阶精度,但不稳定,后一项稳定且可以正确捕捉激波,但只有1阶精度。 这是之后 高精度解法 的基础。 高精度解法在解光滑的区域中使用 Lax-Wendroff 格式,在解存在间断的地方使用迎风格式。 这是通过各种 limiter 实现的。

Points:

  1. 有限体积法中的所有分支都不直接用差分近似微分。 迎风格式 (线性对流方程) 依据流动方向确定信息来源,从流函数中形成数值流函数。 黎曼求解器 ( Burgers' 方程等) 依据黎曼问题的精确解直接写出细胞界面处的数值流函数。 近似黎曼求解器 (浅水波方程等) 通过对中间状态作近似或直接对流函数作近似确定数值流函数。
  2. 对于流动问题 (双曲型方程) ,用于离散化导数的 stencil (模板) 需要特别选择;而对于热方程则很随意。 因为热方程的解总是趋于光滑的,而双曲型方程的解会遇到不连续。 【这个解释怎么理解?】
  3. 举例而言,对于线性对流方程,空间导数的离散模板如果取在背离来流的方向,一定没法解对,但热方程就可以。 【可以仔细考虑一下为什么。】
  4. 迎风格式受欢迎的数学上的原因可能是迎风格式稳定。 【迎风格式仅仅是针对线性对流方程的么?我没有看见其他问题提起迎风格式。】

内容大纲

  • 针对双曲型方程的有限差分格式的选择、稳定性分析
  • Godunov法
  • 守恒形式
  • 熵条件
  • 处理非线性方程的守恒格式的稳定性与收敛性
  • 由Godunov法推广到线性系统
  • 近似黎曼求解器
  • 对于一个方程的高精度解法
  • 方程组的高精度解法使用的 limiters

Finite Difference Method (FDM) 有限差分法

有限差分法 将时间、空间离散化为一套网格,格点上的值被理解为连续函数在格点位置处的值。 用差分近似微分,形成数值格式。 依据格式操作离散值,得到格点函数值随时间的演化,用以估计连续解的变化。 网格的空间间隔决定了大于一定空间频率的信息无法被网格反映。

有限差分格式很容易设计,接下来需要分析各格式的性质,如一致性、精度、稳定性、收敛性,来决定格式的好坏。 有限差分格式的分析 很复杂,这里给出一些重要的分析方法。 冯·诺依曼分析:对有限差分格式作离散傅里叶变换,可以得到很多傅里叶模态,包含一系列放大因子。 放大因子被用来分析有限差分格式的稳定性。 Lax-Richtmyer 等价性定理:对于一个适定、线性偏微分方程的初值问题, 在一个单步、线性格式满足一致性的条件下,稳定性等价于收敛性。 对于非线性问题,冯·诺依曼分析和 Lax-Richtmyer 等价性定理均不能使用。

格式的总体精度与内部格点的格式和边条件的处理同时相关,因此有必要提高 离散边条件 精度,比如引入鬼点或做泰勒展开。

近似积分法 通过 reconstruction, evolution, average (REA) 三步进行演化: 首先将原函数视为分段常值函数,格点位于常值段的中心; 然后利用截断了的卷积替换下一时间步精确解中的卷积作演化; 最后格点处的值取为区间函数值的平均值。

Alternating direction implicit method (ADI) 将求解一般系数矩阵的方程组转换为求几个系数矩阵为三对角矩阵的方程组,大大减少了二维扩散方程的求解复杂度。

内容大纲

  • 精度
  • 一致性
  • 稳定性
  • 收敛性
  • 冯·诺依曼分析
  • Lax-Richtmyer 等价性定理
  • 边条件的处理
  • 近似积分方法
  • 对于多步法和方程组的冯·诺依曼分析
  • 时间分裂方法
  • 方块网格上的 ADI 法 (交替方向隐式法)

🏷 Category=Computation