对流扩散方程模拟器 返回
流体力学分析

对流扩散方程模拟器
(数值稳定性可视化)

中心差分、风上差分、QUICK法的稳态解与解析解比对。佩克莱数增大时中心差分振荡的实时观察。用于CFD数值格式的直观理解。

流动和扩散参数
预设
对流速度 u
m/s
正值(将标量从左→右搬运)
扩散系数 D
m²/s
D 越小,被搬运的脉冲越尖锐
对流主导 — Pe = 10.0
播放控制
区域
区域长 L = 1.0 m
初始脉冲位置 x₀ = 0.15 L
对流扩散动画(浓度脉冲的输运)
浓度分布 φ(x,t) 峰位置 = u·t 展宽 σ = √(2Dt) 初始脉冲
实时数值
佩克莱数 Pe = uL/D
峰值 φmax
峰位置 x [m]
展宽 σ [m]
高Pe=尖锐脉冲被搬运。低Pe=扩散占优,脉冲很快被抹平。
理论与主要公式

$$\frac{\partial \phi}{\partial t} + u\frac{\partial \phi}{\partial x} = D\frac{\partial^2 \phi}{\partial x^2}$$

一维移流扩散方程:$u$ 为流速(m/s),$D$ 为扩散系数(m²/s),$\phi$ 为标量量。

$$Pe = \frac{uL}{D}$$

佩克莱数:移流和扩散的比值。$Pe \gg 1$ 时对流主导(尖锐波),$Pe \ll 1$ 时扩散主导(平滑)。

$$\phi(x,t) = \frac{1}{\sqrt{4\pi D t}}\exp\!\left(-\frac{(x - u t)^2}{4 D t}\right)$$

移动高斯解:点源脉冲的严格解,中心 $= u t$,方差 $\sigma^2 = 2Dt$,峰值 $\propto 1/\sqrt{4\pi D t}$。动画直接绘制该解析解。

对流扩散方程与数值格式

🙋
「对流扩散方程」是什么?就像烟雾在空气中飘散的现象吗?
🎓
正是这样!简单来说,它描述物质或热量既被「流动运输(对流)」又「向四周扩散(扩散)」的现象。比如工厂烟囱排出的烟,既被风吹动,又慢慢向周围扩散。这个模拟器可以通过上面的滑块改变「对流速度」和「扩散系数」的比例,看看解的形状如何变化。
🙋
模拟器可以选「中心差分」「风上差分」「QUICK」,答案不是唯一的吗?
🎓
很好的观察!方程是唯一的,但用计算机求解时有不同的「离散化」方法。实践中「风上差分」最稳健,经常被采用,但有精度问题。当你增大「佩克莱数」时,中心差分的图形会剧烈摇晃。试试改变参数,你会看到这三种方法的差异。
🙋
「风上差分」有问题?它没有摇晃,但答案不对吗?
🎓
说得好。风上差分虽然稳定,但会引入额外的「数值扩散」。也就是说,计算结果会比实际更加平缓。QUICK法处于中间位置,追求高精度。当你把「扩散系数」调小,让对流变强时,三种方法的差异就非常清楚了:风上差分的解最平缓,中心差分振荡,QUICK介于两者。

常见问题

佩克莱数增大表明对流项起主导作用,中心差分无法正确反映上游的信息,导致非物理的数值振荡。改用风上差分或QUICK法可以抑制这种振荡。
中心差分精度高但当佩克莱数大时会振荡。风上差分稳定但数值扩散大,解会变钝。QUICK法介于两者,既有较高的精度又有较好的稳定性,是实用的选择。
可能是佩克莱数过大或网格太粗。减小佩克莱数、细化网格(减小Δx)可使数值解更接近解析解。另外要注意风上差分本质上会高估扩散。
这里采用迪利克雷边界条件:x=0时φ=1,x=L时φ=0。解析解在此条件下定义,数值解也在同样条件下计算。如要改变边界条件,需直接修改代码。
细化网格使单元佩克莱数(Pe_h = u·Δx/D)降低,更容易满足各格式的稳定条件。中心差分以 Pe_h < 2 为目标,超过此值就开始振荡。风上差分无此限制,但Δx减半时数值扩散也减半,所以精度提高需要足够细的网格。在这个模拟器中增加网格数,你会看到误差逐渐减小。
OpenFOAM中是 scalarTransportFoam 求解器,在 fvSchemes 文件的 divSchemes 项中可以指定 Gauss linearUpwind(风上差分)或 Gauss QUICK(QUICK法)。Ansys Fluent中对应「空间离散化」选项中的「Second Order Upwind」或「QUICK」。
当D→0时,佩克莱数趋向无穷,问题变成纯对流(双曲型方程)。解析解在x=0处变成陡峭的阶跃,数值解中:中心差分产生强烈振荡,风上差分的解变得阶梯状而钝,QUICK法收敛困难。这正是实际高雷诺数流动的情况,也是为什么实务中使用TVD(全变差递减)格式的原因。
本工具针对一维稳态对流扩散方程,不能直接扩展到多维。但通过「算子分裂法」的概念,可以理解为多维问题的分解。实际的二维/三维分析需要使用OpenFOAM的scalarTransportFoam或Ansys Fluent。

实际应用

环境工程·大气扩散模型:工厂或汽车排放的污染物(PM2.5、NOx等)被风吹散,在大气中扩散、稀释。风上差分因其稳定性常被采用,以确保计算的可靠性。

电子器件散热设计:CPU等热源发热,由风冷(对流)散去,热量在基板内传导(扩散)。要得到精确的温度分布,需采用如QUICK法这样的高精度格式,避免数值扩散掩盖实际物理过程。

化工反应器设计:原料在管式反应器中随流动而移动(对流),同时混合(扩散),并发生化学反应。反应速率计算需要准确的浓度分布,数值扩散少的格式(如QUICK)更合适。

河川水质预测:生活污水中的营养元素或化学物质随河流搬运,再通过涡度扩散而扩散。实务中常用风上差分为基础的稳定求解方案。

常见误解与注意事项

许多人认为「中心差分总是最精确的」,但实际上当佩克莱数(对流与扩散之比)增大后,中心差分会产生数值振荡,给出物理上不可能的解(超调和欠调)。这个工具清楚地展示了:当佩克莱数超过2时,中心差分的解开始从解析解偏离并出现摇晃。实务中为了避免这种振荡,会改用风上差分或QUICK法,但这又引出了新问题。「风上差分总是稳定的」这个说法也需要修正:虽然风上差分不会振荡,但它引入了较大的数值扩散(人工扩散),使浓度梯度变平缓,当佩克莱数极高时,解会严重失真。「QUICK法总优于中心差分」的想法也不完全正确:QUICK法在极限对流情况(Pe极大)或网格品质差的位置可能出现小的振荡,并非绝对稳定,某些边界条件下还可能不稳定。因此,选择合适的数值格式需要根据具体问题的流动特征、对精度的要求,以及计算资源的限制来综合权衡。

使用指南

  1. 用「val-u滑块」设置流速u(m/s),范围0.1~10 m/s,控制对流的强弱
  2. 用「val-D滑块」设置扩散系数D(m²/s),范围1e-3~1 m²/s,控制佩克莱数Pe=u·L/D的变化
  3. 用「val-dx滑块」指定网格间隔dx(m),范围0.01~0.1 m,同时计算并可视化三种格式(中心差分、风上差分、QUICK法)的数值解

具体计算例

在长度1 m的区域,设u=2 m/s、D=0.02 m²/s、dx=0.05 m时,佩克莱数Pe=2×1/0.02=100,属于对流优势。中心差分显示振荡解,风上差分因数值扩散(等效0.015 m²/s)导致边界层附近梯度缓和约2~3°C。而QUICK法以三阶精度减少对流项的数值扩散约70%,得到平顺的解。

实务中的注意点

  1. 中心差分(Pe>2不稳定):热交换器或化学反应器中高流速条件(u>5 m/s)会导致振荡,应避免使用
  2. 风上差分(稳定但低精度):大型泵周围乱流混合分析中保证了稳定,但若需准确的浓度梯度,则不合适
  3. QUICK法的适用极限:Pe>500的极端对流域或角落急梯度处仍可能出现局部振荡,应考虑与混合方法的结合