不可压Navier-Stokes方程

分类: 流体分析(CFD) | 综合版 2026-04-06
CAE visualization for navier stokes incompressible theory - technical simulation diagram
不可压Navier-Stokes方程

不可压Navier-Stokes方程的理论基础

概览

🧑‍🎓

老师,Navier-Stokes方程是CFD的基础吧。请详细讲解不可压情况。


🎓

这是CFD求解中最基础和最重要的方程。不可压NS方程描述牛顿流体的粘性流动。由连续方程和动量方程组成。


控制方程

🎓

不可压NS方程由以下两个方程组成。


连续方程质量守恒:

$$ \nabla \cdot \mathbf{u} = 0 $$

动量方程(牛顿第二定律):

$$ \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u} \cdot \nabla)\mathbf{u} = -\frac{1}{\rho}\nabla p + \nu \nabla^2 \mathbf{u} + \mathbf{f} $$

🧑‍🎓

请解释各项的物理意义。


🎓

用分量形式($x$方向)表示会更清楚。


$$ \underbrace{\frac{\partial u}{\partial t}}_{\text{非定常项}} + \underbrace{u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial y} + w\frac{\partial u}{\partial z}}_{\text{对流项(惯性力)}} = \underbrace{-\frac{1}{\rho}\frac{\partial p}{\partial x}}_{\text{压力梯度}} + \underbrace{\nu\left(\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} + \frac{\partial^2 u}{\partial z^2}\right)}_{\text{粘性项(扩散)}} + \underbrace{f_x}_{\text{外力}} $$

雷诺数

🧑‍🎓

雷诺数与NS方程有什么关系?


🎓

用特征速度 $U$ 和特征长度 $L$ 进行无量纲化,雷诺数作为唯一参数出现。


$$ \frac{\partial \mathbf{u}^*}{\partial t^*} + (\mathbf{u}^* \cdot \nabla^*)\mathbf{u}^* = -\nabla^* p^* + \frac{1}{Re}\nabla^{*2}\mathbf{u}^* $$

$$ Re = \frac{UL}{\nu} = \frac{\text{惯性力}}{\text{粘性力}} $$

Re范围流动特征典型例子
Re < 1蠕动流(Stokes流)微生物游泳、MEMS
1 < Re < 2300层流管内发展流
2300 < Re < 4000过渡区管内流(不稳定)
Re > 4000湍流大多数工业流动

方程的数学特性

🧑‍🎓

NS方程的解的存在性和唯一性是未解决问题吧?


🎓

没错。三维NS方程光滑解的全局存在性和唯一性是Clay数学研究所千禧年奖问题之一(奖金100万美元)。工程上通过DNS(直接数值模拟)可获得有限时间、有限区域的解,但数学上的证明仍未完成。


🎓

方程的非线性来自对流项 $(\mathbf{u}\cdot\nabla)\mathbf{u}$。这一项是产生湍流、混沌和涡破裂等复杂现象的源头。

Coffee Break 趣闻

100万美元的悬赏,至今无人破解

不可压Navier-Stokes方程的一个悖论在于"解是否必然存在"这一基本问题在数学上未被证明。这是Clay数学研究所2000年选定的"千禧年问题"7道题目中的一道,解决者奖金100万美元(约1.5亿日元)。工程师每天用CFD运行的计算,从严格意义上讲是"在求解一个不知道是否有解的方程"——这确实是个相当荒诞的处境。而在7个千禧年问题中,迄今仅有1个被解决——Navier-Stokes仍处于人类未曾涉足的领域。

不可压Navier-Stokes方程的数值计算方法

空间离散化

🧑‍🎓

如何数值求解NS方程?


🎓

有限体积法(FVM)是商用CFD的标准。将计算域分割为单元,对每个单元离散化守恒律的积分形式。


$$ \frac{d}{dt}\int_V \rho\mathbf{u}\,dV + \oint_S \rho\mathbf{u}(\mathbf{u}\cdot\mathbf{n})\,dS = -\oint_S p\mathbf{n}\,dS + \oint_S \mu(\nabla\mathbf{u})\cdot\mathbf{n}\,dS $$

对流项离散化

🎓

对流项的格式选择直接影响精度和稳定性。


格式精度稳定性数值扩散用途
一阶迎风$O(h)$非常稳定初始计算、收敛困难
二阶迎风$O(h^2)$稳定一般定常计算
QUICK$O(h^3)$略不稳定高精度计算
中心差分$O(h^2)$不稳定(高Pe)LES
有界中心差分$O(h^2)$稳定最小LES标准
🧑‍🎓

为什么LES要用中心差分?


🎓

数值扩散会人为减衰SGS涡。LES需要保留物理涡,只用SGS模型进行散逸。但中心差分容易产生棋盘式不稳定,所以实用上采用有界中心差分。


时间积分

🎓

非定常计算的时间积分格式比较。


格式精度稳定性CFL约束
一阶隐式(后退欧拉)$O(\Delta t)$无条件稳定
二阶隐式(BDF2)$O(\Delta t^2)$无条件稳定
Crank-Nicolson$O(\Delta t^2)$无条件稳定可能产生振荡
显式(RK4等)$O(\Delta t^4)$条件稳定$CFL < 1$

CFL条件

🧑‍🎓

经常听到CFL数这个概念,具体是什么意思?


🎓

Courant-Friedrichs-Lewy数表示一个时间步内信息跨越多少个网格。


$$ CFL = \frac{u\Delta t}{\Delta x} $$

显式格式需要 $CFL < 1$ 才能稳定。隐式格式没有这个约束,但为了保证时间精度通常取 $CFL < 5$~20。LES常规上遵守 $CFL < 1$。


线性求解器

🎓

离散化后的线性方程组求解也很关键。


目标方程推荐求解器备注
压力(泊松方程)AMG(代数多重网格)收敛最困难,占计算时间50~80%
动量ILU预处理BiCGSTAB收敛相对容易
标量(温度等)Gauss-Seidel或ILU线性问题
Coffee Break 趣闻

SIMPLE法的诞生——压力和速度的"心理战"

不可压流动的最大难题是"没有压力方程"。直接同时求解速度和压力会导致方程组奇异。1972年Patankar和Spalding提出的"SIMPLE法"算法巧妙地解决了这个困境:先用暂定的压力求解速度,再从速度推导出压力修正,然后重复求解速度。这个看似简单的思路是现代商用CFD的基石——今天你在Fluent上看着"Iterations"滚动的背后,50年前的两位天才的智慧在默默运转。

不可压Navier-Stokes方程的实际应用

实际应用

🧑‍🎓

实际应用中求解NS方程的基本流程是什么?


🎓

这是标准流程。


分析流程

1. 问题定式化:计算Re数,判定层流/湍流。确认不可压条件($Ma < 0.3$)

2. 几何与网格:从CAD提取流体域,生成含边界层网格

3. 物理模型设置湍流模型、定常/非定常、是否包含能量方程

4. 边界条件:入口(速度或压力)、出口(压力)、壁面(no-slip)、对称面

5. 求解:运行求解器,监测残差和监视量

6. 后处理·验证:与理论解或基准数据比较,检查网格收敛性

湍流模型选择指南

🧑‍🎓

湍流模型这么多,不知道怎么选…


🎓

整理最常用模型的用法。


模型计算成本分离预测推荐用途
Spalart-Allmaras中等飞机外壳、附加流
Realizable k-epsilon管内流、混合、初步检查
SST k-omega良好通用。不知道选什么就用这个
Transition SST捕捉过渡低Re翼型、汽轮机
DES/IDDES非常好大规模分离、非定常力
LES(WALE/Sigma)非常高最精确声学、燃烧、学术

网格收敛性验证

🧑‍🎓

网格收敛性怎么确认?


🎓

推荐用GCI(网格收敛指数)方法。用三个网格密度(粗、中、密)计算关键量,用Richardson外推估计真值。


$$ GCI_{\text{fine}} = \frac{F_s |\epsilon|}{r^p - 1} $$

其中 $F_s = 1.25$(安全系数),$\epsilon$ 是中密和密网格结果差,$r$ 是网格比,$p$ 是收敛阶数。GCI低于5%可认为收敛充分。


典型基准问题

问题Re验证量参考数据
方腔流(Lid-driven cavity)100~10000中线速度分布Ghia et al. (1982)
圆柱尾流40~200Strouhal数、阻力系数多种实验
后向台阶36000再附着长度Driver & Seegmiller
NACA0012翼型$6\times10^6$升力系数、阻力系数风洞数据
🧑‍🎓

应该先用基准问题验证自己的计算环境,才进行实际分析吧。


🎓

完全同意。如果基准问题都做不好,实际问题的结果根本不可信。

Coffee Break 趣闻

"收敛"≠"正确"

CFD实务的常见陷阱:残差降到1e-6,高兴地喊"收敛了!",结果一检查流量不平衡——这种事工程上天天发生。在求解不可压N-S方程时,残差是"迭代计算的波动幅度",而不是"物理正确性"的保证。真正的检查清单还包括:①连续方程的质量流平衡,②能量守恒,③壁面y+确认等多项。只靠"残差消失=求解完成"会导致看似漂亮但物理破绽的结果堂堂正正地进入报告。

不可压Navier-Stokes方程的软件比较

主要CFD求解器比较

🧑‍🎓

能比较一下求解不可压NS方程的主要求解器吗?


🎓

整理商用和开源的主要求解器。


求解器开发方离散化主要优势
Ansys FluentAnsys Inc.FVM(单元中心)通用性、GUI、支持
Ansys CFXAnsys Inc.FVM(顶点中心)耦合求解器、涡轮机械
STAR-CCM+SiemensFVM(单元中心)自动网格、多面体
OpenFOAM开源FVM(单元中心)自由度、可扩展性、免费
COMSOLCOMSOL ABFEM多物理耦合

求解器类型区别

🧑‍🎓

Fluent的Pressure-Based和Density-Based有什么区别?


🎓

不可压流用Pressure-Based求解器。


Pressure-BasedDensity-Based
适用对象不可压~低速可压高速可压(Ma > 0.3)
压力确定压力修正法状态方程
耦合分离或耦合耦合(隐式)
适用Ma数0~数Ma全Ma数

OpenFOAM求解器选择

🧑‍🎓

OpenFOAM求解器太多了,不知道选哪个。


🎓

整理不可压的主要求解器。


求解器名定常/非定常算法用途
simpleFoam定常SIMPLE最基础
pisoFoam非定常PISO通用非定常
pimpleFoam非定常PIMPLE(PISO+SIMPLE)大CFL数时稳定
icoFoam非定常PISO(仅层流)学习用、低Re
adjointOptimisationFoam定常随伴法形状优化

许可证和成本

求解器许可形式年成本估算
Fluent商业(节点锁定/浮动)数百万日元~
STAR-CCM+商业(令牌制)数百万日元~
OpenFOAMGPL(开源)免费(支持收费)
COMSOLCFD模块商业(模块分售)百万日元~
🧑‍🎓

OpenFOAM免费,但缺乏支持是个问题。


🎓

ESI Group和CFD direct提供付费支持。大学和研究机构的OpenFOAM社区很活跃,信息获取也容易。商业工具相当于为稳定性和支持付费。

Coffee Break 趣闻

ANSYS和OpenFOAM的根同源——伦敦帝国大学

追溯主要CFD代码的历史,许多都源自伦敦帝国大学Spalding教授的实验室——那个发明SIMPLE法的地方。Fluent的原始版本也由此衍生,后被Ansys收购。OpenFOAM也继承了同系的思想。换句话说,无论用昂贵的商业高级许可还是免费的OpenFOAM,数值格式的"基因"几乎相同。这也解释了为什么不同厂商的CFD计算结果往往接近——他们在某种意义上传承自同一源头。

不可压Navier-Stokes方程的先端研究

前沿课题

🧑‍🎓

NS方程数值求解的最新动向是什么?


🎓

介绍几个重要趋势。


DNS(直接数值模拟)的发展

🎓

DNS直接求解NS方程,不用湍流模型。由于需要解析所有尺度,单元数按 $N \propto Re^{9/4}$ 缩放。


Re_tau单元数(通道流)计算资源
180约$10^6$工作站
1000约$10^9$中等HPC
5200约$10^{11}$大型HPC(Lee & Moser 2015)
工业Re($10^6$以上)$10^{18}$以上目前不可能
🧑‍🎓

工业规模的Re数用DNS完全不可能啊。


🎓

正是。所以RANS和LES的精度改进仍然至关重要。


GPU加速CFD

🎓

利用GPU并行性的CFD在快速普及。


  • Fluent(2024+):原生GPU求解器。最高10倍加速
  • AmgX:NVIDIA的AMG库。高速压力泊松求解
  • LBM:格子Boltzmann法与GPU兼容性特别好

物理信息神经网络 (PINN)

🎓

PINN是将NS方程嵌入损失函数的神经网络。


$$ \mathcal{L} = \mathcal{L}_{\text{data}} + \lambda_1\mathcal{L}_{\text{momentum}} + \lambda_2\mathcal{L}_{\text{continuity}} $$

无需网格,可处理逆问题,但目前还远非高Re湍流的完全方案。在与实验数据融合(数据同化)方面有前景。


高精度方法

🎓

超越FVM二阶精度的方法也在进展。


方法精度特点
谱单元法(Nek5000/NekRS)高阶(p阶)DNS/LES最优
不连续Galerkin(DG)任意高阶也能处理激波
Flux重构(FR)任意高阶DG的高效实现
格子Boltzmann(PowerFLOW)二阶空气动力声学强项
🧑‍🎓

一个百年前的方程,如今仍在如此活跃的研究,真令人惊讶。


🎓

NS方程包含了流体力学的全部内核。随着计算机进步和算法创新,能解决的问题范围在不断拓展。

Coffee Break 趣闻

DNS计算的惊人成本

湍流直接数值模拟(DNS)是求解不带模型的Navier-Stokes方程的终极手段,但所需网格数按Re数的9/4次方增长。试图用DNS模拟汽车周围的流(Re≈10^7),单纯计算就会达到地球上所有计算机束手无策的规模。目前DNS实用范围仅限于Re数几千的通道流等。记住"DNS能用=流动非常小、非常慢",就能直观感受论文中尖端成果的分量。

不可压Navier-Stokes方程的故障排除

故障排除

🧑‍🎓

求解NS方程常见的故障有哪些?


🎓

发散和非物理结果是两大问题。


1. 计算发散

🎓

现象:残差急剧增加,速度或压力变为$10^{20}$等异常值。


原因诊断对策
CFL数过大检查时间步$\Delta t$ 减半
网格质量差检查最小正交性修正质量低于0.1的单元
边界条件矛盾入出流量平衡重新审视BC
初始条件不适当初始速度场非物理用势流初始化
松弛系数过高检查SIMPLE设置尝试压力0.3,动量0.5

2. 残差停滞

🧑‍🎓

残差在$10^{-3}$左右就不动了…


🎓

对策优先顺序

1. 检查并改进网格质量

2. 从二阶格式开始,用一阶初始化后切换

3. 调整松弛系数(过高会发散,过低会停滞)

4. 切换至耦合求解器(Fluent)

5. 改进初始条件(插值粗网格解)


3. 非物理逆流

🎓

现象:出口出现大量"Reversed Flow"(逆流)警告。


原因:出口位置过于靠近流动分离·再循环区。


对策

  • 将出口延伸下游(管径10~20倍)
  • Fluent启用Prevent Backflow选项
  • 设置逆流时的温度和湍流量值

4. 压力振荡(棋盘式)

🎓

现象:压力场呈棋盘式图案振荡。


原因:同位网格上Rhie-Chow补间不充分,或网格非正交性高。


对策

  • 压力离散化改为PRESTO!(Fluent)
  • OpenFOAM增加nNonOrthogonalCorrectors
  • 改进网格正交性

5. 定常计算无法收敛(物理原因)

🧑‍🎓

怎么改进网格都不收敛的情况…


🎓

流动本身可能是非定常的。 卡门涡街(Re > 47时发生)这样的物理非定常流用定常计算会让残差持续振荡。此时应切换到非定常计算。监视量出现周期性振荡就说明应该用非定常求解。


🧑‍🎓

不懂物理的话,数值问题和物理现象根本分不清。


🎓

完全同意。CFD调试需要扎实的流体力学基础。

Coffee Break 趣闻

发散的真凶,9成是边界条件

"计算发散了!"——CFD初学者的第一道坎。乍看上去怀疑网格质量和时间步,但现场经验法则说"发散原因9成是边界条件设置失误"。比如,入口设定为速度型,出口却也固定压力,方程组会变得数学上不定而发散。不可压流对压力边界的设置特别敏感,只要记住"至少在一处绝对固定压力"这个原则,大多数神秘发散都能预防。

相关模拟器

用这个领域的交互式模拟器来体验理论

模拟器列表

相关领域

热分析V&V·品质保证结构分析
本文评价
感谢您的回答!
有帮助
需更详细
报告错误
有帮助
0
需更详细
0
报告错误
0
由NovaSolver贡献者撰写
匿名工程师与AI——网站地图
查看资料