压力-速度耦合求解器

分类:CFD求解方法 | 2026-10-01 改写
CAE visualization for coupled solver theory - technical simulation diagram
压力-速度耦合求解器

理论:同时求解压力与速度

概述

🙋

我的CFD软件有“SIMPLE”和“Coupled”两个选项。有什么区别,该选哪个?

🎓

不可压缩流动中没有直接确定压力的方程,压力是“使速度满足连续方程”的那个值。SIMPLE法先用动量方程暂求速度,再修正压力使其满足连续方程,交替进行。每次很轻,但只能一点点地纳入压力与速度的耦合,往往迭代很多。耦合求解器把两者组装成一个大方程组同时求解,每次更重,但迭代少得多。

耦合方程组

$$ \begin{bmatrix} A_u & 0 & G_x \\ 0 & A_v & G_y \\ D_x & D_y & 0 \end{bmatrix} \begin{bmatrix} u \\ v \\ p \end{bmatrix} = \begin{bmatrix} b_u \\ b_v \\ 0 \end{bmatrix} $$

$A_u$、$A_v$ 为动量算子(对流与扩散),$G$ 为压力梯度,$D$ 为散度(连续方程)。非线性对流项用上一次迭代的速度固定(Picard法),每次外迭代都求解这个方程组。

SIMPLE修正

$$ u = u^* - \frac{\alpha_u}{a_P}\,\nabla p', \qquad p \leftarrow p + \alpha_p\,p' $$

SIMPLE法只用动量方程对角项 $a_P$ 近似压力修正,所以不用松弛系数 $\alpha_u$、$\alpha_p$ 抑制更新就容易发散。这种近似正是迭代次数多的原因。

Coffee Break 随笔闲谈

如何求解压力这一长期难题

SIMPLE法由Patankar和Spalding于1972年发表,作为用少量内存求解不可压缩流动的方法,成为此后通用CFD软件的标准——当时的计算机在内存上不可能把全部未知数作为一个方程组求解。21世纪初,代数多重网格等高效求解大型方程组的技术与内存增长齐备,耦合求解器才在商用软件中实用化。求解方法的选择随着计算机的进步而变化。

算例:用方腔流比较

用相同离散(交错网格、一阶迎风)分别以耦合求解器和SIMPLE法求解顶盖驱动方腔流,比较残差降到10⁻⁶所需的外迭代次数(计算时间受实现影响很大,这里用迭代次数比较):

条件耦合求解器SIMPLE(0.7/0.3)SIMPLE(0.5/0.2)中心线最小速度
16分、Re 1009110240−0.170
32分、Re 1009355810−0.189
64分、Re 10081,2152,825−0.201
32分、Re 40013335760−0.200
🙋

网格加密后,只有SIMPLE法的迭代越来越多。

🎓

对。SIMPLE法只能把压力信息一点点传给相邻单元,单元越多,传遍全域越费时。耦合求解器每次都解整体方程组,几乎不受网格数影响。两者最终得到相同的解(差约10⁻⁵),所以选择是速度与内存的问题,而非精度。中心线最小速度随网格加密接近−0.201,但达不到文献值−0.211——这是一阶迎风的数值扩散所致,与求解方法无关。

选择与设置

  1. 内存宽裕、大网格稳态计算时,尝试耦合求解器。
  2. 用SIMPLE法时,松弛系数不要降得太低(会使迭代增加一倍以上)。
  3. 耦合求解器用库朗数(伪时间步长)调节稳定性,发散时降低。
  4. 瞬态计算中,根据每步内迭代次数与时间步长的平衡来选择。
  5. 不只看残差,还要以监测点值不再变化来判断收敛。
Coffee Break 随笔闲谈

“改用耦合就内存不足”

某泵的稳态计算用SIMPLE法要2天,切换为耦合求解器后中途因内存不足停止。耦合求解器把压力和速度的全部未知数作为一个方程组处理,同样网格内存用量为数倍。增加计算节点、提高并行数后,迭代次数约为十分之一,计算时间约为四分之一。速度是用内存换来的,要结合计算资源来选择。

常见错误

错误与对策

错误后果对策
认为解法改变精度漏掉网格和格式问题精度由离散决定
松弛系数降得太低迭代大幅增加从默认值逐步调整
不确认内存就用耦合内存不足停止估算并行数和内存
库朗数过大耦合求解器发散从小开始逐步提高
只凭残差判断收敛监测量未收敛也确认监测点
🙋

我想了解相关内容。

🎓

分离式解法参考SIMPLE算法和PISO算法,基础参考有限体积法基础,大型方程组求解参考多重网格法,可压缩流求解参考密度基求解器,验证问题参考顶盖驱动方腔流。

关联模拟器

在本领域的交互式模拟器中体验理论

模拟器列表

相关领域

热解析V&V·质量保证结构解析
本文的评价
感谢您的回答!
有帮助
希望更
详细
报告
错误
有帮助
0
希望更详细
0
报告错误
0