盖驱动腔体流动 — CFD基准验证指南

分类: V&V / 解析解比較 | 更新 2026-04-12
Lid-driven cavity flow streamline pattern showing primary and secondary vortices at Re=1000
リッド駆動キャビティ流れ:Re=1000における流線パターンと渦構造

理论与物理

概述

🧑‍🎓

老师,顶盖驱动方腔流这个基准测试是用来做什么的?我只有个模糊的印象,觉得它是“CFD验证时首先要做的那个”……

🎓

简单来说,它是CFD代码验证中使用最广泛的基准问题。一个正方形箱子(方腔)只有顶壁以恒定速度水平滑动,内部就会产生再循环流。通过计算这个流场,并与Ghia, Ghia & Shin (1982) 用高精度差分法求得的参考解进行比较,可以检查求解器是否正确实现。

🧑‍🎓

为什么这个问题这么有名呢?不是有更简单的流动吗?

🎓

问得好。有三个原因。第一,形状极其简单(正方形,只有壁面),因此网格生成没有模糊性。第二,能得到非平凡的流场——包含再循环涡和角部的二次涡等,涉及对流与粘性的竞争。与管内流那样的平行流不同,离散化方案的质量会显著影响结果。第三,多亏了Ghia的论文公开了从Re=100到10000共7个工况的速度剖面数值表格,使得定量比较变得容易。

控制方程

🧑‍🎓

支配方腔流的方程是什么?

🎓

是二维、不可压、定常的Navier-Stokes方程。需要联立求解连续性方程和动量方程:

$$ \frac{\partial u}{\partial x} + \frac{\partial v}{\partial y} = 0 $$
$$ u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial y} = -\frac{1}{\rho}\frac{\partial p}{\partial x} + \nu \left(\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}\right) $$
$$ u\frac{\partial v}{\partial x} + v\frac{\partial v}{\partial y} = -\frac{1}{\rho}\frac{\partial p}{\partial y} + \nu \left(\frac{\partial^2 v}{\partial x^2} + \frac{\partial^2 v}{\partial y^2}\right) $$
🎓

边界条件如下:

  • 顶壁(盖板):$u = U$, $v = 0$(以恒定速度滑动)
  • 底壁、左壁、右壁:$u = 0$, $v = 0$(无滑移条件)

雷诺数定义为 $\text{Re} = UL/\nu$。$L$ 是方腔边长,$U$ 是顶盖速度,$\nu$ 是运动粘度系数。

🧑‍🎓

我听说也可以用流函数-涡度法求解。

🎓

Ghia的原论文用的正是这个方法。使用流函数 $\psi$ 和涡度 $\omega$ 来消除压力项:

$$ \nabla^2 \psi = -\omega $$
$$ \frac{\partial \omega}{\partial t} + u\frac{\partial \omega}{\partial x} + v\frac{\partial \omega}{\partial y} = \nu \nabla^2 \omega $$
🎓

Ghia在 $129 \times 129$ 的等间距网格上使用了多重网格法进行计算。这种方法因为不需要压力方程,所以适合2D问题,但难以扩展到3D。现在的商用CFD求解器主流是速度-压力形式(原始变量法)。

涡结构与雷诺数依赖性

🧑‍🎓

改变Re数,流场会怎么变化?

🎓

Re数决定性地支配流场的性质。我们分阶段来看:

  • Re=100:一次涡位于方腔中心稍偏上的位置。粘性占主导,涡的形状接近对称的圆形。二次涡几乎看不见。
  • Re=400:一次涡中心接近几何中心。左下和右下开始出现小的二次涡(角涡)。
  • Re=1000:一次涡中心移动到 $(0.5313, 0.5625)$ 附近。左下二次涡(Bottom-Left, BL)和右下二次涡(Bottom-Right, BR)可以明确确认。
  • Re=5000:二次涡进一步成长。左上也开始出现小的三次涡(Top-Left, TL)。一次涡形状向上偏移,接近椭圆形。
  • Re=10000:所有角涡显著成长。定常解的存在处于临界状态,微小的扰动就可能使其过渡到非定常。
🧑‍🎓

诶,Re=10000也存在定常解吗?不会变成湍流吗?

🎓

在2D情况下,直到Re=10000,Ghia都得到了定常解。不过收敛非常慢。根据Erturk等人(2005)的研究,Re=10000的定常解需要 $512 \times 512$ 网格和数十万步的迭代。一般认为从Re=20000左右开始会发生Hopf分岔,向周期性流动过渡。在3D情况下,可能在更低的Re数(大约Re=1000附近)就表现出非定常性。

Ghia参考数据

🧑‍🎓

具体使用哪些数据进行验证呢?

🎓

Ghia等人以表格形式给出了通过方腔中心的 垂直线上的水平速度 $u$水平线上的垂直速度 $v$,各17个点。Re=1000时垂直中心线上的 $u$ 速度剖面是最常用的数据:

$y$ 位置$u/U$ (Ghia, Re=1000)
1.00001.00000
0.97660.65928
0.96880.57492
0.96090.51117
0.95310.46604
0.85160.33304
0.73440.18719
0.61720.05702
0.5000-0.06080
0.4531-0.10648
0.2813-0.27805
0.1719-0.38289
0.1016-0.29730
0.0703-0.22220
0.0625-0.20196
0.0547-0.18109
0.00000.00000
🎓

看这个表,在 $y \approx 0.17$ 附近 $u/U \approx -0.38$ 取得最小值。这是一次涡下侧逆流最强的位置。将自己的CFD结果与这个剖面重叠绘制,如果所有点都能达到相对误差1%以内,那么求解器的实现就值得信赖。

🧑‍🎓

一次涡中心的流函数值也能用于验证吗?

🎓

当然可以。Re=1000时一次涡中心的流函数值是 $\psi_{\min} = -0.1189$。因为可以用一个标量值验证,所以很方便,但速度剖面的整体比较是更严格的验证。

各项的物理意义
  • 对流项 $u \partial u / \partial x$:流体粒子以其自身速度输运动量的项。Re数大时对流胜过粘性,产生急剧的速度梯度。方腔上部被顶盖拖拽的流体向下潜入的现象与此对应。
  • 粘性扩散项 $\nu \nabla^2 u$:相邻流体层间剪切引起的动量扩散。Re数小时粘性占主导,速度场变得平滑。Re=100时涡呈圆形就是因为这个。
  • 压力梯度项 $-\frac{1}{\rho}\partial p / \partial x$:为满足不可压条件的压力场。在方腔流中没有入口出口,因此压力与涡旋转产生的离心力相平衡。
假设条件与适用范围
  • 不可压流动(马赫数 $\ll$ 0.3)
  • 牛顿流体(恒定粘度)
  • 2D流动假设(展向无限长)
  • 顶壁与侧壁角部存在速度不连续(数学奇点)

验证数据可视化

Re=1000时垂直中心线上 $u$ 速度剖面的比较。定量展示网格密度和离散化方案的影响。

评估项目Ghia参考值计算值 (128×128, 2阶CD)相对误差 [%]判定
$\psi_{\min}$(一次涡中心)-0.1189-0.1188
0.08
PASS
$u_{\min}$(最大逆流速度)-0.3829-0.3821
0.21
PASS
$v_{\max}$(水平中心线)0.37690.3758
0.29
PASS
一次涡中心 $x$ 坐标0.53130.5313
0.00
PASS
一次涡中心 $y$ 坐标0.56250.5625
0.00
PASS

判定标准: 相对误差 < 1%: 优良、1〜5%: 可接受、> 5%: 需检查

数值解法与实现

压力-速度耦合算法

🧑‍🎓

求解方腔流时,SIMPLE和PISO怎么区分使用?

🎓

如果是求定常解,SIMPLE(Semi-Implicit Method for Pressure-Linked Equations)是标准选择。每次迭代求解一次压力修正方程,更新速度场。如果适当设置欠松弛因子,可以稳定收敛。对于Re=1000左右,速度欠松弛0.7、压力欠松弛0.3左右可以作为起点。

🧑‍🎓

PISO在什么场景下使用?

🎓

PISO(Pressure-Implicit with Splitting of Operators)适用于非定常分析。每个时间步进行两次压力修正,以确保时间精度。在Re=10000以上需要非定常解时使用。如果只是求Re=1000的方腔流定常解,SIMPLE的计算效率更高。

🎓
算法用途压力修正次数/迭代方腔流中的推荐场景
SIMPLE定常1Re ≤ 5000的定常解
SIMPLEC定常1(增强版)收敛慢时的替代方案
PISO非定常2Re ≥ 10000的非定常解
COUPLED定常/非定常耦合解法高Re数下的快速收敛

对流项的离散化方案

🧑‍🎓

一阶迎风和二阶中心差分的结果差别很大吗?

🎓

在方腔流中,方案选择的影响会很明显。来看个具体例子。Re=1000使用相同网格(64×64)时:

离散化方案网格$\psi_{\min}$$u(x=0.5, y=0.1719)$$\psi$ 误差 [%]
一阶迎风(UDS)32×32-0.1102-0.3487.31
一阶迎风(UDS)64×64-0.1158-0.3652.61
二阶中心差分(CDS)32×32-0.1170-0.3721.60
二阶中心差分(CDS)64×64-0.1185-0.3800.34
二阶中心差分(CDS)128×128-0.1188-0.3820.08
QUICK64×64-0.1186-0.3810.25
🎓

一阶迎风格式数值扩散(人工粘性)大,在32×32网格上误差超过7%。实际应用中,对于Re=1000的情况,至少应使用二阶精度方案+64×64以上网格。QUICK格式(三阶精度迎风插值)的话,64×64网格也能得到足够的精度。

🧑‍🎓

一阶迎风格式最好不要用吗?

🎓

对于验证目的来说不合适。不过,它的收敛性非常好,所以可以用于初始解的估计,或者当二阶精度格式发散时的调试。“先用一阶迎风跑一下确认流场大致形态,然后以其结果作为初值切换到二阶精度”这种分阶段方法在实际工作中也经常使用。

网格设计与收敛验证

🧑‍🎓

网格用等间距还是不等间距好?

🎓

取决于Re数。Re=100〜400的话等间距就足够了,但Re=1000以上时壁面附近会产生急剧的速度梯度,因此向壁面方向按几何级数加密的不等间距网格更有效。典型做法是,膨胀比(expansion ratio)取1.05〜1.1,壁面第一个网格厚度约为整体的1/200。

🧑‍🎓

网格收敛性验证怎么做?

🎓

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ