Rhie-Chow 插值
一、背景与问题来源
Rhie–Chow 插值提出于 1983 年,出自 Rhie 和 Chow 在求解不可压缩流(incompressible flow)时的研究。
它要解决的核心问题是:
如何在共位网格(collocated grid)中消除压力—速度解之间的“奇异振荡”(checkerboard pressure oscillations)?
背景:
在不可压缩流体中,控制方程包括:
- 动量方程(求速度)
- 连续性方程(保证质量守恒,约束速度场散度为零)
若采用简单的有限体积方法(FVM),并把所有变量($p, u, v, w$)都存储在单一的网格节点(如单元中心) 上,这就是所谓的 共位(collocated)布置。
但这样布置时,会出现一个严重问题:
连续性方程在压力修正阶段对速度插值非常敏感;如果速度不是恰当地从单元中心插值到面中心,系统的压力解会发散或出现非物理的棋盘格振荡。
二、“棋盘格压力(checkerboard pressure)” 问题的来源
对于不可压缩流,连续性方程形式是:
$$ \nabla \cdot \mathbf{u} = 0 $$
在有限体积离散中需要计算面通量: $$ F_f = (\mathbf{u} \cdot \mathbf{n})_f A_f $$ 若直接用中心差分线性插值来求面速度(例如直接取两边单元中心速度的平均), 则压力梯度项在动量方程修正阶段对面速度的影响可能被完全抵消。
结果是:
不同单元的压力场之间可以互相“漂浮”而不引起通量变化,导致虚假的自由度,表现为棋盘格状的压力分布($p_{i,j}$ 在网格上像黑白格子交替一样振荡),但连续性误差却几乎为零。
三、Rhie–Chow 插值的核心思想
Rhie–Chow 的关键思想是:
在计算面通量(或面上速度)时,不直接线性插值动量方程解出的单元中心速度,而是通过动量方程构造一个带有压力差校正项的“中间速度”。
简单来说,
- 面上的速度不是简单平均两边单元的速度;
- 要额外加上一个由面两侧压力差与动量方程系数计算得到的修正项。
数学表达式
以一维为例,动量方程离散可近似写为:
$$ a_P u_P = \sum_N a_N u_N + (p_N - p_P) A / \Delta x + b_P $$
则面上的速度 $u_f$ 不是简单的 $(u_P + u_N)/2$,而是:
$$ u_f = \left(\frac{a_P u_P + a_N u_N}{a_P + a_N}\right)
- \frac{A}{a_P + a_N}(p_N - p_P) $$
右边最后一项便是 Rhie–Chow 修正项, 其中 $A$ 是面面积法向,$a_P$, $a_N$ 是动量方程离散后的对角系数。
这项修正确保了:
- 面上的速度通量会对压力梯度“正确”地敏感;
- 避免了中心差分引起的离散退化;
- 保证压力与速度场之间的耦合合理。
四、从物理上理解
从物理角度看,Rhie–Chow 插值使得:
- 面速度不仅取决于单元中心速度的平均,还考虑了两侧压力驱动对流体运动的真实影响。
- 即使在不可压缩流中,压力梯度不再“失效”,它能正确地反映在面通量的变化中。
因此,压力修正方程(例如 SIMPLE 或 PISO 中的压力校正步骤)能稳定地收敛,防止压力振荡。
五、在算法实现中的位置
Rhie-Chow 插值通常出现在:
- SIMPLE / SIMPLER / PISO 等基于压力校正的算法;
- 采用**共位网格(collocated grids)**的有限体积法 (FVM);
- 应用于不可压缩流体求解器中(如稳态流动、LES、RANS)。
对应位置通常是:
- 在组装质量方程(连续性方程)时;
- 在计算面通量($u_f$)时调用 Rhie–Chow 插值。
六、实际作用总结
| 项目 | 问题 | Rhie–Chow 插值的作用 |
|---|---|---|
| 网格布置 | 共位网格中压力与速度共点 | 提供压力与速度正确耦合 |
| 压力场 | 出现棋盘格“振荡” | 消除棋盘格振荡 |
| 连续性方程 | 离散质量方程可能退化 | 保证通量对压力敏感,方程稳定 |
| 收敛性 | 非物理解、发散 | 改善收敛与物理一致性 |
| 实现 | 各CFD软件(Fluent, OpenFOAM, 自编代码) | 采用Rhie-Chow修正计算面通量 |
七、扩展与改进
之后的研究中,Rhie–Chow 插值也有进一步改进:
- 改进的Rhie–Chow方案(Modified RC):处理高雷诺数流动时的过度数值扩散问题;
- 压力平滑插值(Pressure-weighted interpolation):在非结构网格中推广;
- 基于面中心压力修正:用于高阶有限体积法。
这些扩展仍保留其核心思想:“通过压力梯度修正面速度插值,避免奇异压力振荡”。
✅ 简而言之总结
Rhie–Chow 插值是一种在共位网格上防止压力–速度解发散的关键算法手段。
它通过在面速度的插值公式中引入以动量方程为基础的压力修正项,保证压力方程的正确耦合和数值稳定性。
若没有它,共位网格中解出的压力场会产生非物理的棋盘波动。
如果你想,我可以用一张示意图帮你直观展示:
- 棋盘格压力是怎么形成的;
- Rhie–Chow 修正项在面速度计算中是如何起作用的。
是否希望我画一张这样的示意图?
