对流扩散(Convection-Diffusion) — CAE用语解说

分类:用语表 | 2026-03-28
CAE visualization for convection diffusion - technical simulation diagram

对流扩散方程基础

🧑‍🎓

对流扩散方程在流体分析中处于什么位置?它与Navier-Stokes方程是不同的东西吗?


🎓

实际上不是另一回事,反而是Navier-Stokes方程的"骨架"本身。运动量方程的各个分量、温度的输运方程、浓度的标量输运,都具有"对流+扩散=源项"这种相同的形式。因此理解对流扩散方程,是理解整个CFD数值方法的捷径。


🧑‍🎓

好的,能具体介绍一下是什么样的方程吗?


🎓

想象一下河里放入温水的场景。温水随河流向下游流动(这是对流)。同时温水与周边冷水的温度差导致热量扩散(这是扩散)。对流扩散方程就是把这两个效应合并到一个方程中。


支配方程

对于标量量 $\phi$ 的稳态对流扩散方程具有以下形式:

$$\nabla \cdot (\rho \mathbf{u} \phi) = \nabla \cdot (\Gamma \nabla \phi) + S$$

其中左侧为对流项,右侧第一项为扩散项,$S$ 为源项。$\rho$ 表示密度,$\mathbf{u}$ 表示速度矢量,$\Gamma$ 表示扩散系数。

非稳态情况下,添加时间导数项:

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

限制在一维稳态、无源项的最简形式:

$$u \frac{d\phi}{dx} = \Gamma \frac{d^2\phi}{dx^2}$$

这个简单的方程成为数值解法稳定性讨论的出发点。

Peclet数与对流扩散平衡

🧑‍🎓

如何判断对流和扩散哪个更强?


🎓

Peclet数(Pe)来表示。就像Reynolds数表示惯性力与粘性力的比一样,Peclet数表示对流输运与扩散输运的比值无量纲数。实际上Pe = Re × Pr(普兰特数)这样的关系存在,与Reynolds数紧密相连。


Peclet数的定义:

$$\mathrm{Pe} = \frac{UL}{\alpha} = \frac{\text{对流输运强度}}{\text{扩散输运强度}}$$

其中 $U$ 为代表速度,$L$ 为代表长度,$\alpha = \Gamma/\rho$ 为扩散率。在有限体积法的框架中,基于单元宽度 $\Delta x$ 的单元Peclet数(网格Peclet数)极为重要:

$$\mathrm{Pe}_{\text{cell}} = \frac{\rho u \Delta x}{\Gamma}$$
🧑‍🎓

Pe较大和较小时分别会发生什么?


🎓

Pe较小(Pe ≪ 1)时为扩散主导,信息在各方向均匀分布。就像纯热传导问题。反过来Pe较大(Pe ≫ 1)时为对流主导,信息沿流动方向单向传输。烟囱的烟在风中飘散就是这样。问题在于,这种对流主导的情况下用中心差分就会数值不稳定。


数值扩散的问题

🧑‍🎓

中心差分不稳定是什么意思?我以为中心差分是二阶精度的好方法…


🎓

确实对扩散方程中心差分是二阶精度没问题。但对对流项用中心差分离散化,当单元Peclet数超过2时会出现wiggle(非物理振荡)。比如在0℃的房间里送入100℃温风,仿真结果温度竟然出现-20℃或120℃。这在物理上不可能。


🧑‍🎓

温度竟然是负数!为什么会这样?


🎓

直观地说,对流强的流动中上游信息极其重要,但中心差分用相同的权重处理上下游信息。这会破坏离散化系数矩阵的对角优位性,产生下冲和上冲。在数学上就是离散化不满足有界性(boundedness)


中心差分对一维对流扩散方程离散化的对角优位条件为:

$$|\mathrm{Pe}_{\text{cell}}| = \left|\frac{\rho u \Delta x}{\Gamma}\right| \leq 2$$

违反这个条件时解会振荡。在实际工业CFD中,Pecell ≫ 2 的情况很常见,因此稳定化是必要的。

风上差分与稳定化手法

🧑‍🎓

如何抑制振荡?


🎓

最简单的是一阶风上差分(First-Order Upwind)。用单元界面处上游侧单元的值来近似界面值。考虑对流方向,可以完全抑制振荡。但代价是产生数值扩散(numerical diffusion)


🧑‍🎓

数值扩散具体有什么影响?在实务中有多大问题?


🎓

例如烟雾输运仿真中,原本锐利的烟雾边界会因数值扩散而模糊。汽车排气污染物扩散仿真中,浓度峰值会被低估,影响范围看起来更广。网格越粗这个虚扩散越大,所以在粗网格上用一阶风上差分在实务上很危险。


一阶风上差分的截断误差用Taylor展开分析:

$$u \frac{d\phi}{dx} \approx u \frac{\phi_i - \phi_{i-1}}{\Delta x} + \underbrace{\frac{u \Delta x}{2} \frac{d^2\phi}{dx^2}}_{\text{数值扩散项}} + O(\Delta x^2)$$

数值扩散项相当于增加了 $\Gamma_{\text{false}} = \rho u \Delta x / 2$ 的虚扩散系数。即网格越粗、对流越强,虚扩散越大。

SUPG法及其相关方法

🧑‍🎓

有限元法中有与风上差分不同的方法,SUPG法是什么原理?


🎓

SUPG法(Streamline Upwind Petrov-Galerkin)是Brooks和Hughes在1982年提出的有限元法稳定化手法。在Galerkin法的权函数中添加流线方向的摄动项。粗略地说就是"把权函数稍微向上游偏移"以获得风上效果。


SUPG法中,对标准Galerkin权函数 $w$,使用修正权函数 $\tilde{w}$:

$$\tilde{w} = w + \tau \, \mathbf{u} \cdot \nabla w$$

其中 $\tau$ 为稳定化参数,由单元尺寸、速度、扩散系数决定:

$$\tau = \frac{h}{2\|\mathbf{u}\|} \left( \coth \mathrm{Pe}_e - \frac{1}{\mathrm{Pe}_e} \right)$$

$\mathrm{Pe}_e = \|\mathbf{u}\| h / (2\Gamma)$ 为单元Peclet数,$h$ 为单元的流线方向尺寸。

🧑‍🎓

除了SUPG还有其他稳定化方法吗?


🎓

很多。有限元法中GLS法(Galerkin/Least-Squares)是SUPG的推广形式。即使有源项也能保持一致性,这是优点。对于非稳态非压缩性流动,还常常结合PSPG法(Pressure-Stabilizing Petrov-Galerkin)同时稳定化速度和压力。有限体积法领域主要用TVD(Total Variation Diminishing)限制器和ENO/WENO格式。


🧑‍🎓

TVD限制器是什么?名字听起来很酷…


🎓

TVD是"Total Variation Diminishing"的简称,表示解的全变差不随时间增加的格式。具体做法是在勾度复原时加入"限制器函数",防止产生新的极值(振荡)。Van Leer、Minmod、Superbee等各种限制器都有,限制器越强振荡抑制越好但数值扩散越大。这个平衡就是CFD工程师的看家本领。


实务使用指南

🧑‍🎓

这么多方法,实务中怎么选?


🎓

如果是RANS定常计算,从二阶风上差分(Second-Order Upwind)开始是标准做法。收敛困难时先用一阶风上得到初始解再切换。LES情况下数值扩散会与SGS模型干涉,所以用中心差分系是常规。有压缩性冲击波流动用TVD系限制器格式最安全。


🧑‍🎓

网格充分细化的话,不同格式的结果会一致吗?


🎓

理论上是这样。网格充分细化后Pecell → 0,所有格式会收敛到同一结果。但实务中有计算资源限制,所以要"在允许的网格粗度下选择精度最高的格式"。这就是为什么离散化格式选择是CFD分析师的拿手绝活。


🧑‍🎓

OpenFOAM中默认是什么格式?


🎓

在OpenFOAM的fvSchemes文件divSchemes部分配置。教程中常用Gauss linearUpwind grad(U)(二阶风上)。Gauss linear是中心差分,Gauss upwind是一阶风上。TVD系用Gauss linearUpwindGauss vanLeer等。改一行配置就能切换格式,很容易对比效果。


相关用语

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

对流扩散离散化中遇到的困难,请告诉我们

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

咨询(准备中)
本文评价
感谢您的反馈!
有参考
价值
希望更
详细
报告
错误
有参考价值
0
希望更详细
0
报告错误
0
由NovaSolver贡献者撰写
匿名工程师与AI — 网站地图
查看简介