2.2 压力速度耦合算法 控制体与通量的世界观建立后,本节处理数值引擎的第二根柱子:不可压流动里压力没有自己的方程,它藏在连续性方程里,靠速度场来"感应"。怎么让一对互相纠缠的变量收敛到同时满足动量与连续性,是压力基求解器的核心难题,也是 Fluent 求算面板上第一批让你做选择的开关。 为什么不可压流动偏偏缺一个压力方程 动量方程把速度变化归因于压力梯度,连续性方程要求速度场无散。粗数一下:三个速度分量加一个压力,四个未知数,方程也恰好四条。但细看结构就发现错位——连续性方程不含压力,它只约束速度;压力只以梯度形式出现,绝对值不唯一。
控制体与通量的世界观建立后,本节处理数值引擎的第二根柱子:不可压流动里压力没有自己的方程,它藏在连续性方程里,靠速度场来"感应"。怎么让一对互相纠缠的变量收敛到同时满足动量与连续性,是压力基求解器的核心难题,也是 Fluent 求算面板上第一批让你做选择的开关。
动量方程把速度变化归因于压力梯度,连续性方程要求速度场无散。粗数一下:三个速度分量加一个压力,四个未知数,方程也恰好四条。但细看结构就发现错位——连续性方程不含压力,它只约束速度;压力只以梯度形式出现,绝对值不唯一。于是标准做法是构造:把动量方程按预估压力推进得到中间速度场,中间速度场几乎必然违背连续性,再借助"速度场违背连续性的程度"反解出压力修正量,用压力修正回头校准速度。整个压力基算法就是这条"预估-校准"循环的工程化。
SIMPLE 家族(分离式)。动量方程与压力修正方程分开依次求解,每步之间用欠松弛因子防止校准过头。SIMPLE、SIMPLEC、PISO 是同一家族的三个变体:SIMPLEC 放宽修正幅度、可用更高松弛因子;PISO 在一步里做多次压力修正,适合瞬态计算中小时间步长的推进。分离式的代价是压力-速度信息传递慢,稳态强耦合问题(如旋流、浮升力驱动流动)收敛吃力。
Coupled(耦合式)。把动量与连续性(以压力为变量)联立成一个大矩阵同时求解。内存占用更高、单步更贵,但省掉了漫长的"压力信号在变量之间来回传递"过程,很多过去要算上千步的稳态问题现在几百步收敛。Fluent 的 Coupled 算法配合伪瞬态(Pseudo Transient)选项,用一个自动增长的人工时间步替代手工欠松弛,已成为新版默认推荐。
选型经验法则可以压成一张表:
| 维度 | SIMPLE 家族 | Coupled |
|---|---|---|
| 内存占用 | 低 | 约多一倍以上 |
| 单步成本 | 低 | 高 |
| 强耦合稳态流动 | 收敛慢甚至发散 | 明显占优 |
| 轻度耦合常规流动 | 足够且省资源 | 提速但收益递减 |
| 调参负担 | 亚松弛因子手工调 | 伪瞬态自动管理 |
| 可压缩高速流动 | 通常转密度基思路 | Fluent 内亦可处理 |
密度基求解器是第三条路线:它把连续性方程当作密度方程解,速度由动量方程给,天然适合强可压缩、激波主导的外流与超音速问题。Fluent 允许同个模型在压力基与密度基之间切换,切换后边界条件含义保持、数值细节自动适配。
背景。某旋风分离器改造项目,气流带强旋转,压力场与切向速度强耦合。工程师按老习惯用 SIMPLE 加默认欠松弛,跑了三千步,残差降到一定水位后开始锯齿状震荡,监测的出口压降还在缓慢漂移。
操作。第一步检查物理配置无错:RSM 湍流模型(旋流需要各向异性描述)、二阶格式、网格质量达标。第二步换算法:改 Coupled 加伪瞬态,库朗数上限设五十让求解器自动管理。第三步加监测:出口压降与分离效率两个工程量进入收敛判据,不再只盯残差。
结果。约四百步残差整体下降五个数量级,出口压降曲线走平,分离效率监测值波动小于千分之一,两个判据同时锁定后判定收敛。总墙钟时间反而比原方案缩短,因为每一步虽贵、步数骤减。
解读。强耦合问题的病根在"信息传递路径太长",分离式算法每步只传递一点点,步数堆到三千步还在半路;耦合式一步传完,用单步成本换总时间。这个案例同时演示了验收单第三关的动作:收敛判定用残差加工程监测量双重签字,单一证据不作数。
变式。若内存不允许 Coupled,退路是 SIMPLEC 加大松弛因子至零点七到零点九之间,并配合第九章要讲的收敛加速手段(先一阶格式粗收敛再切二阶、良好初始化)。若问题含激波,直接考虑密度基显式格式加时间步推进。
分离式算法的欠松弛因子给每步修正打折:动量常用零点七,压力常用零点三,湍流量零点八。打得太狠收敛慢,打得太松容易震荡甚至发散——它本质是用时间换稳定。伪瞬态把这套手工打折自动化:求解器把稳态问题当成一个带人工时间导数的瞬态问题推进,时间步从保守值自动增长,等效于自适应的欠松弛。两个安全阀别同时拧到极限:用 Coupled 加伪瞬态时就不要再叠加手工欠松弛,双保险拧过头反而互相干扰。
伪瞬态时间步设多大。默认自动管理通常够用;收敛曲折时把初始时间步压小(等效加大初期欠松弛),后期让求解器自动放大。它是旋钮不是开关——观察残差形态再动。
边界条件离得远就随便放吗。不。压力出口放在回流区里、速度入口贴着钝体,都会把"边界假设错误"伪装成"收敛困难"。先量距离(工程惯例十倍特征尺度或至少避开强曲率区),再谈算法。
Coupled 会把内存吃爆吗。动量与压力联立使内存增长约一倍,千万网格级算例先在小分区上试跑估内存再排产。内存不够的退路是 SIMPLEC 加适度松弛,速度损失换来可行性。
收敛阶段判读速查表:
| 现象 | 诊断方向 | 处置 |
|---|---|---|
| 前几百步就飞出量级 | 初始化或边界错误 | 查初始场与边界值量纲 |
| 残差锯齿、监测量均值稳 | 非稳态物理被稳态硬解 | 改瞬态或看均值判据 |
| 残差降到中途平台 | 强耦合信息传递慢 | 换 Coupled 或加伪瞬态 |
| 能量残差不降 | 网格或源项问题 | 查热源量级与界面配对 |