不可压缩流(Incompressible Flow) — CAE术语解说

分类:术语集 | 2026-03-28
CAE visualization for incompressible flow - technical simulation diagram

不可压缩流概述

🧑‍🎓

不可压缩流就是流体不会被压缩吧? 水无法压缩,所以水的流动都是这样吗?


🎓

严格来说,没有绝对不可压缩的流体。即使是水,在深海1万米处密度也会增加5%左右。但在实际应用中,如果密度变化小到可以忽略,我们就将其视为「不可压缩」。判断标准是马赫数,当 $\mathrm{Ma} < 0.3$ 就没问题。日常的水流基本上都满足 $\mathrm{Ma} \ll 0.3$,所以用不可压缩来处理是合理的。


Ma < 0.3 的判定标准

🧑‍🎓

$\mathrm{Ma} = 0.3$ 在空气中大约是秒速100米。那么空气的流动在某些情况下也可以用不可压缩来计算吗?


🎓

完全正确。汽车空气动力学是典型例子,时速100公里对应约 $\mathrm{Ma} \approx 0.08$。建筑物风荷载也是如此。这些都满足 $\mathrm{Ma} < 0.3$,不需要特别用可压缩计算。相反,喷气发动机或超音速飞机周围的流动会有 $\mathrm{Ma} > 0.3$,密度变化变得重要,需要用可压缩求解器。


🧑‍🎓

为什么是0.3而不是0.5或0.1呢?


🎓

这来自等熵关系式的推导。当 $\mathrm{Ma} = 0.3$ 时,密度变化约为4.5%。工程实践中「5%以内可以忽略」是经验法则。密度变化按 $\mathrm{Ma}^2$ 的阶次出现,所以当 $\mathrm{Ma}$ 较小时,影响迅速减小。具体地:

$$\frac{\rho}{\rho_0} = \left(1 + \frac{\gamma-1}{2}\mathrm{Ma}^2\right)^{-\frac{1}{\gamma-1}}$$

取 $\gamma = 1.4$(空气),代入 $\mathrm{Ma} = 0.3$ 得 $\rho/\rho_0 \approx 0.956$,即密度变化4.4%。这就是「0.3标准」的来源。


连续方程 div(u) = 0

🧑‍🎓

听说不可压缩流的连续方程变成 $\nabla \cdot \mathbf{u} = 0$,这是什么意思?


🎓

一般的连续方程表达质量守恒:

$$\frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{u}) = 0$$

当假定不可压缩时($\rho = \mathrm{const.}$),可以将 $\rho$ 提出来:

$$\rho \, \nabla \cdot \mathbf{u} = 0 \quad \Rightarrow \quad \nabla \cdot \mathbf{u} = 0$$

这表示「任意微小体积进出的流体体积流量始终平衡」。拿装水的桶举例,底部漏水时,进入的水量必须等于流出的水量——就是这样的概念。把软管尖端压窄时,水流速会加快,也是为了满足 $\nabla \cdot \mathbf{u} = 0$ 的条件。


🧑‍🎓

可压缩流中这个方程会更复杂吗?


🎓

可压缩流中,密度 $\rho$ 随时间和空间变化,$\partial \rho / \partial t$ 项保留。再加上状态方程 $p = \rho R T$,需要联立求解能量方程。不可压缩的 $\nabla \cdot \mathbf{u} = 0$ 大大简化了方程组,这就是为什么CFD的计算成本会大幅下降。


压力基础求解器与SIMPLE法

🧑‍🎓

CFD中求解不可压缩流时,经常听说「压力基础求解器」和「SIMPLE法」,为什么压力这么重要?


🎓

这是不可压缩流最大的数值困难。可压缩流可以从状态方程 $p = \rho R T$ 求得压力,但不可压缩流中 $\rho = \mathrm{const.}$,这条路走不通。压力成为独立变量,需要通过满足 $\nabla \cdot \mathbf{u} = 0$ 的条件来确定。


🧑‍🎓

SIMPLE法是什么样的算法?能简要说明一下吗?


🎓

SIMPLE(Semi-Implicit Method for Pressure-Linked Equations)是Patankar在1972年提出的迭代法,流程如下:

  1. 用假压力 $p^*$ 求解动量方程 → 得到假速度场 $\mathbf{u}^*$
  2. 计算速度场散度 → $\nabla \cdot \mathbf{u}^* \neq 0$(还未满足连续方程)
  3. 求解压力修正方程(Poisson型) → 得到修正量 $p'$
  4. 修正速度和压力 → $p = p^* + p'$, $\mathbf{u} = \mathbf{u}^* + \mathbf{u}'$
  5. 重复迭代直到收敛

OpenFOAM的 simpleFoam、Ansys Fluent的压力基础求解器、STAR-CCM+的SEGREGATED求解器——全部都以SIMPLE系列算法为基础。还有SIMPLEC(一致性)和PISO(非定常向)的变体。


🧑‍🎓

压力修正方程是Poisson型,就是 $\nabla^2 p' = \text{(散度源项)}$ 这样的形式吗?


🎓

完全正确。离散化后变成大规模线性方程组,这个方程的求解占据了SIMPLE法计算成本的绝大部分。所以当感觉「收敛慢」时,检查压力方程的求解方法(如AMG预处理)是常见做法。在实际应用Fluent时,调整AMG循环数或Courant数,体感上就能改变计算时间。


Boussinesq近似与自然对流

🧑‍🎓

Boussinesq近似是不可压缩流的扩展吗? 听说在自然对流中会用到。


🎓

Boussinesq近似是「仅在浮力项中考虑密度变化,其他地方仍当作不可压缩」的方法。在运动量方程的浮力项中代入:

$$\rho \approx \rho_0 \bigl[1 - \beta (T - T_0)\bigr]$$

其中 $\beta$ 是体膨胀系数。比如空调房间中热空气聚集在天花板、PC机箱内自然对流冷却——这类现象的模拟就用这个近似。这样可以大幅节省计算成本,不必用完全的可压缩性求解器。


🧑‍🎓

这个近似在什么情况下失效呢?


🎓

温度差很大时就会失效。判断标准是 $\beta \Delta T \ll 1$。对于空气,$\beta \approx 1/T_0$,所以需要 $\Delta T / T_0 \ll 1$。比如室温300K、温度差30K时,$\Delta T / T_0 = 0.1$ 还是可以接受的。但火灾模拟中 $\Delta T = 700\mathrm{K}$ 时,$\Delta T / T_0 > 2$ 完全不行,必须用低马赫数近似或完全可压缩求解器。


实务判断要点

🧑‍🎓

实际的CFD项目中,初期到底应该用不可压缩还是可压缩来求解,怎么判断比较好?


🎓

可以列一个检查清单:

  1. 从代表流速和音速计算Ma数 → $\mathrm{Ma} < 0.3$ 就可用不可压缩
  2. 有温度变化吗? → 温度差小的话加入Boussinesq近似
  3. 密度变化会超过5%吗? → 超过就切换到可压缩求解器
  4. 音波或冲击波的传播很关键吗? → 关键的话考虑密度基础求解器

比如汽车外部空气动力学无疑用不可压缩,F1后翼周围的空气动力学Ma ≈ 0.25也勉强可以用不可压缩。配管系统的水击(水锤)涉及音速,必须用可压缩——这样记住一些具体例子就不会迷茫了。


正确理解CAE术语是团队沟通的基础。 — NovaSolver Project也将支持实务工作者的学习。

在不可压缩流实务中遇到的课题,欢迎告诉我们

NovaSolver Project致力于解决CAE工程师日常面临的问题——设置的繁琐、计算成本、结果解释——的改善。你的实务经验将成为开发更好工具的动力。

联系我们(准备中)
本文评价
感谢你的回答!
有参考
价值
需要更
详细
反馈
错误
有参考价值
0
需要更详细
0
反馈错误
0
NovaSolver 投稿者
匿名工程师 & AI — 网站地图
查看简介