流体力学的基础 — 从纳维-斯托克斯方程到湍流模型的完整解释
流体力学是描述液体和气体流动所遵循物理规律的学科体系。在CAE中的流体分析(CFD:Computational Fluid Dynamics)广泛应用于汽车空气动力学、飞机翼型气流、热交换器设计、建筑物风荷载评估、电子设备冷却设计等现代工程的各个领域。本文从流体力学的数学基础开始,系统讲解实务中必需的湍流模型选择、CFD求解器的内部算法等内容。
1. 流体的基本性质
连续体假设与流体质点
老师,流体就是"水分子聚集在一起"对吧。CFD是不是在计算每一个分子?
完全同意。流体力学采用连续体假设。1 cm³空气中有约2.7×10¹⁹个分子,但从工程尺度来看,"连续分布的物质"这个近似就足够精确了。CFD网格单元即使只有1 mm³,其中也包含着数万亿分子。
不过在微流体装置(通道宽度数μm以下)或接近真空的极低压下,连续体假设会失效。此时需要通过Knudsen数 $Kn = \lambda/L$($\lambda$:平均自由程, $L$:特征长度)检验。当 $Kn > 0.01$ 时需要特别注意。
普通的汽车和飞机的流动可以用连续体吗?"流体质点"是什么,和分子不一样吗?
流体质点是"无穷小但包含足够多分子的微小体积元素"。比分子大,比流动结构小。在流体质点上可以定义位置、速度、压力、温度等状态量。这是连续体力学的出发点。
粘性的物理意义
粘性是"流体层间传递动量"的性质。对于牛顿流体,剪切应力 $\tau$ 与剪切速率 $du/dy$ 成正比(牛顿粘性律):
其中 $\mu$ 是动力粘性系数(粘度)[Pa·s],$u$ 是流速,$y$ 是距壁面的距离。运动粘性系数 $\nu = \mu/\rho$ [m²/s]($\rho$:密度)在CFD中也经常用到。温度依赖性很强,液体中粘度随温度升高而降低,气体中粘度随温度升高而升高。
| 流体 | 动力粘性系数 μ [Pa·s](20℃) | 运动粘性系数 ν [m²/s] | 备注 |
|---|---|---|---|
| 空气 | 1.81×10⁻⁵ | 1.51×10⁻⁵ | 温度变化影响大 |
| 水 | 1.00×10⁻³ | 1.00×10⁻⁶ | 作为基准易于使用 |
| 轻油(20℃) | 3.0×10⁻³ | 3.4×10⁻⁶ | 温度依赖性很强 |
| 甘油(20℃) | 1.49 | 1.19×10⁻³ | 粘度是水的1490倍 |
| 发动机油 SAE30(40℃) | ~0.1 | ~1.1×10⁻⁴ | 高温时快速下降 |
| 水银(20℃) | 1.53×10⁻³ | 1.13×10⁻⁷ | 密度大,所以 ν 小 |
可压缩性 vs 不可压缩性
空气是可以压缩的吧。但我看到CFD解"不可压缩性",什么时候能用?
实务中的经验是Mach数 $Ma < 0.3$。流速在音速(空气中约340 m/s)的30%以下时,密度变化不到1%,可视为不可压缩。时速100 km的车(约28 m/s,$Ma \approx 0.08$)完全没问题。反之战斗机巡航($Ma \approx 0.85$)或超音速火箭必须考虑压缩性。
不可压缩模型的优点是能独立求解能量方程,密度是常数,计算简化很多。SIMPLE法这样的基于压力的求解器也是这样才能用的。
Mach数定义为 $Ma = V/a$($V$:流速, $a = \sqrt{\gamma RT}$:音速)。$\gamma$ 是比热比(空气:1.4),$R$ 是气体常数(空气:287 J/(kg·K)),$T$ 是绝对温度。
| Mach数范围 | 流动名称 | 密度变化 | 推荐方法 | 代表例 |
|---|---|---|---|---|
| $Ma < 0.3$ | 不可压缩区 | <2% | 不可压缩求解器(SIMPLE等) | 汽车、建筑、低速风扇 |
| $0.3 < Ma < 0.8$ | 亚音速可压缩 | 2〜20% | 可压缩求解器或密度修正 | 客机巡航、高速风扇 |
| $0.8 < Ma < 1.2$ | 跨音速 | 很大、可能有冲击波 | 必须用可压缩求解器 | 翼型跨音速设计 |
| $Ma > 1.2$ | 超音速 | 冲击波、膨胀波 | 密度基求解器(Roe/AUSM) | 火箭、超音速飞机 |
牛顿流体 vs 非牛顿流体
满足 $\tau = \mu \, du/dy$ 的流体称为牛顿流体(水、空气、大多数低分子有机溶剂)。血液、聚合物溶液、润滑脂等许多实用流体表现出非牛顿性质。
| 模型 | 本构式 | 代表例 | CFD处理 |
|---|---|---|---|
| 牛顿 | $\tau = \mu \dot{\gamma}$ | 水、空气、乙醇 | 标准NS方程直接应用 |
| 幂律(Power Law) | $\tau = K \dot{\gamma}^n$($n<1$:假塑性,$n>1$:膨胀性) | 番茄酱、聚合物熔体 | 代入有效粘度 $\mu = K\dot{\gamma}^{n-1}$ |
| Bingham塑性体 | $\tau = \tau_0 + \mu_p \dot{\gamma}$(当 $\tau > \tau_0$ 时流动) | 润滑脂、混凝土、泥流 | 考虑屈服应力 $\tau_0$ 的模型 |
| Herschel-Bulkley | $\tau = \tau_0 + K\dot{\gamma}^n$ | 血液、发胶 | 幂律+屈服应力的组合 |
| Carreau-Yasuda | $\mu = \mu_\infty + (\mu_0-\mu_\infty)[1+(\lambda\dot{\gamma})^a]^{(n-1)/a}$ | 血液、牙膏 | Ansys Fluent等直接输入可用 |
2. 连续方程(质量守恒)
积分形与微分形的推导
对任意检查体积 $V$ 应用质量守恒。检查体积内质量变化率 = 流入质量通量 − 流出质量通量:
应用Gauss发散定理($\oint_S \mathbf{F}\cdot\hat{n}\,dS = \int_V \nabla\cdot\mathbf{F}\,dV$)得到微分形式:
展开后:$\frac{\partial \rho}{\partial t} + \rho\nabla\cdot\mathbf{v} + \mathbf{v}\cdot\nabla\rho = 0$,用物质导数表示为:
不可压缩流体($\rho = \text{常数}$,即 $D\rho/Dt = 0$)时:
$\nabla \cdot \mathbf{v} = 0$ 经常出现。具体表示什么?
粗俗说法:"任何地方都不积累流体,任何地方都不冒出来"。想象一根断面积变化的管子。变细时流速加快,变粗时流速变慢。这个关系用 $A_1 v_1 = A_2 v_2$(连续方程的积分形式)表示,微分形式就是 $\nabla \cdot \mathbf{v} = 0$。
在CFD中,如果这个条件不满足,就会"质量凭空消失或凭空产生"导致出错。continuity residual(连续残差)很大时,通常是网格或边界条件设置的问题。
管道截面变化与流速的关系(实例)
直径 $D_1 = 50$ mm的管道缩小到 $D_2 = 25$ mm时,入口流速 $v_1 = 2$ m/s,出口流速为:
截面积减小到1/4时,流速增加4倍。结合伯努利定理($p + \frac{1}{2}\rho v^2 + \rho g z = \text{常数}$),可求出压力下降 $\Delta p = \frac{1}{2}\rho(v_2^2 - v_1^2) = \frac{1}{2} \times 1000 \times (64-4) = 30\,000$ Pa ≈ 0.3 atm。
3. 纳维-斯托克斯方程(动量守恒)
物质导数的概念
NS方程里有 $D/Dt$ 这个记号。和普通偏导数 $\partial/\partial t$ 有什么区别?
这是流体力学初学者最容易卡的地方。$\partial/\partial t$ 是"看固定位置随时间的变化"(欧拉描述)。$D/Dt$ 是"坐在流体质点上随时间的变化"(拉格朗日描述)。
比如河流水温:$\partial T/\partial t$ 是"在桥上测量同一地点的水温变化",$DT/Dt$ 是"坐橡皮艇跟着漂流感受水温变化"。两者的关系是 $\frac{D}{Dt} = \frac{\partial}{\partial t} + (\mathbf{v} \cdot \nabla)$,其中 $(\mathbf{v} \cdot \nabla)$ 项表示"对流"。
那CFD代码里如何离散化 $D/Dt$ 呢?
在FVM中,$\partial/\partial t$ 部分用时间差分(向后差分、Crank-Nicolson等)离散化,对流项 $(\mathbf{v} \cdot \nabla)\phi$ 作为单元边界面的通量求值。如何评估这个对流通量就是"对流格式",有一阶迎风、QUICK、高阶带限制器的格式等多种。后面会详细说明。
NS方程的推导与物理意义
对流体质点应用牛顿第二定律($F = ma$)。作用在流体质点上的力包括:(1) 压力梯度力、(2) 粘性力(剪切应力的发散)、(3) 体积力(重力等)。用牛顿流体的应力张量:
代入动量守恒式,假设不可压缩($\nabla\cdot\mathbf{v}=0$)和常数粘度,得到纳维-斯托克斯方程:
展开的x分量形式:
整理各项的物理意义:
| 项 | 公式 | 物理意义 | CFD注意事项 |
|---|---|---|---|
| 非定常项 | $\rho \partial\mathbf{v}/\partial t$ | 流体质点的动量时间变化 | 定常分析中省略为零 |
| 惯性项(对流项) | $\rho(\mathbf{v} \cdot \nabla)\mathbf{v}$ | 流动引起的动量传输 | 非线性!数值不稳定的主要原因 |
| 压力梯度项 | $-\nabla p$ | 压力差引起的驱动力 | 不可压缩时需单独求解压力方程 |
| 粘性项 | $\mu \nabla^2 \mathbf{v}$ | 粘性引起的动量扩散(平滑化) | 高Re时较小,注意数值扩散 |
| 体积力 | $\rho \mathbf{g}$ | 重力、浮力(热对流中重要) | Boussinesq近似或完全可压缩处理 |
强调惯性项是"非线性",具体什么问题?
非线性就是有 $\mathbf{v}$ 与 $\mathbf{v}$ 的乘积。线性方程可以用叠加原理,很容易求解。但非线性就不行了。这个惯性项正是产生湍流、涡流、Karman涡街这些复杂现象的根本原因。CFD需要迭代计算(欠松弛)就是因为非线性对流项的处理。
反过来,Re数非常小($Re \ll 1$)的Stokes流中可以忽略惯性项,变成线性方程"Stokes方程",能得到精确解。微流路生物流体分析和滑动轴承膜等用这个近似。
无量纲化与雷诺数的推导
用代表长度 $L$、代表速度 $U$、动压 $\rho U^2$ 进行无量纲化(带星号量为无量纲):
这里出现了唯一的无量纲参数——雷诺数:
无量纲化的重要启示:若两个流动的 Re 数相同且几何相似,则流动模式也相似。这是风洞试验用缩小模型的理论基础。例如实际模型的1/10缩小模型用10倍流速就能得到相同的Re数,压力系数等无量纲量完全一致。
4. 能量方程
在可压缩流和流热耦合问题中,需要将能量方程与连续式、动量式联立求解。用全焓 $H = h + V^2/2$($h$:比焓, $V = |\mathbf{v}|$)的守恒形式:
在不可压缩、常物性、忽略粘性耗散的情况下,简化为纯温度的对流扩散方程:
其中 $c_p$ 是定压比热 [J/(kg·K)],$k$ 是热传导系数 [W/(m·K)]。此方程中温度场单向依赖于速度场(速度→温度),但在自然对流或Boussinesq近似中,密度对温度的依赖会产生双向耦合。
能量方程是CFD必须解的吗?不解也可以吗?
实务中经常做"等温分析"把温度方程关掉。比如汽车车身空气动力学,如果只想知道风压、阻力系数,用不可压缩等温就够了。但电子设备散热(CPU排热)、发动机燃烧室、超音速流动必须求解能量方程。
要注意的是Ansys Fluent等软件中"Energy: OFF"忘记关掉的话,温度会变成乱七八糟的值但计算还能跑。温度与密度有函数关系(理想气体 $\rho = p/(RT)$)时更要当心。汽车发动机舱热流动这种"高温气体+强制对流"的问题,必须把能量方程打开。
粘性耗散项的重要性
在高速流和高粘流体中,粘性耗散($\Phi = \boldsymbol{\tau}:\nabla\mathbf{v}$)变得重要。
其中 $e_{ij}$ 是应变速率张量的分量。高粘高分子聚合物挤出成形或高Mach数超音速流中粘性耗散导致的温度上升(气动加热)不能忽视。大气圈再入航天器之所以高温,正是这个现象。
5. 雷诺数与流动尺度
层流、过渡、湍流的判定
| 流动状态 | 圆管内(水力直径 $D_h$) | 平板上(距离 $x$) | 特征 |
|---|---|---|---|
| 层流 | $Re_D < 2300$ | $Re_x < 5 \times 10^5$ | 流线整齐,压力损失∝流速一次方 |
| 过渡流 | $2300 \sim 4000$ | $5\times10^5 \sim 10^6$ | 不稳定,难以分析预测 |
| 湍流 | $Re_D > 4000$ | $Re_x > 10^6$ | 混乱涡运动,压力损失∝流速1.75〜2次方 |
实际的机械设备一般是什么Re数范围呢?有点摸不着边。
举例说明:
- 毛细血管($D \approx 10\,\mu\text{m}$): $Re \approx 0.001$ — 完全层流,惯性可忽略的Stokes流
- 淋浴喷头喷孔: $Re \approx 500\sim2000$ — 层流~过渡区
- 家庭自来水管(φ13 mm, 2 L/min 流量): $Re \approx 3000$ — 过渡~湍流
- 汽车车身(100 km/h, 特征长度 4 m): $Re \approx 1.1\times10^7$ — 完全湍流
- 大型客机翼(巡航速度, 弦长 7 m): $Re \approx 5\times10^8$ — 极高Re湍流
- 泵的叶轮: $Re \approx 10^6\sim10^7$ — 湍流
CFD用得最多的就是湍流区,所以湍流模型选择至关重要。
边界层发展
平板上边界层厚度 $\delta(x)$ 随流向距离 $x$ 的增长规律:
壁面摩擦系数 $C_f$(局部):
湍流边界层生长更快,壁面剪切应力更大,摩擦阻力更大。但湍流边界层对逆压力梯度(adverse pressure gradient)的抗分离能力强。高尔夫球表面的小凹陷就是为了主动形成湍流边界层,让分离点向后移,降低阻力。
6. 湍流基础与湍流模型
雷诺平均(RANS)与湍流脉动
湍流中速度随时间脉动。将变量分解为时间平均值与脉动分量(雷诺分解):
代入NS方程并取时间平均,得到RANS方程:
$-\rho\overline{u'_i u'_j}$ 称为雷诺应力张量。对称张量,独立分量6个(三维)。这成为新的未知量,需要建立额外的"湍流模型"来闭合方程组(闭合问题)。
"闭合问题"是什么意思?未知数多了,没办法吗?
正好。RANS方程出现了雷诺应力这个新的未知量(三维6个分量),但方程个数没增加。这叫"方程未闭合"。湍流模型的作用就是用已知的平均量近似雷诺应力。
最简单的近似是涡粘性假设(Boussinesq近似):$-\rho\overline{u'_i u'_j} \approx \mu_t\left(\partial\overline{u}_i/\partial x_j + \partial\overline{u}_j/\partial x_i\right) - \frac{2}{3}\rho k \delta_{ij}$,加入湍流粘性系数 $\mu_t$,用额外的输运方程求解。$k = \frac{1}{2}\overline{u'_i u'_i}$ 是湍流动能。
湍流能量级联与Kolmogorov尺度
按Kolmogorov理论,湍流从大尺度(注入能量尺度 $L$)逐步向小尺度传递能量(能量级联)。
其中 $\varepsilon$ 是湍流能量耗散率 [m²/s³]。高Re流中尺度比 $L/\eta \sim Re^{3/4}$,完全求解所有尺度(DNS)需要计算量 $\propto Re^{9/4}$,代价巨大。
| 方法 | 求解尺度 | 计算代价 | 适用Re数 |
|---|---|---|---|
| DNS(直接数值模拟) | 直到Kolmogorov尺度 $\eta$ | $\propto Re^{9/4}$(极高) | $Re < 10^4$(基础研究) |
| LES(大涡模拟) | 惯性小子区以上的尺度 | $\propto Re^{13/7}$(高) | $Re \sim 10^5\sim10^6$(详细分析) |
| RANS(雷诺平均) | 所有尺度平均化 | 低~中 | 任意(实用) |
| DES(分离涡模拟) | 壁近处RANS + 自由区LES | 中~高 | $Re \sim 10^6\sim10^7$ |
主要湍流模型比较
| 模型 | 输运方程 | 擅长的流动 | 不擅长的流动 | 应用场景 |
|---|---|---|---|---|
| Spalart-Allmaras(SA) | 1个($\tilde{\nu}$) | 翼面附着边界层 | 分离、逆压梯度 | 飞机外部空气动力 |
| 标准 k-ε | 2个($k$, $\varepsilon$) | 充分发展管内流、喷流 | 壁近处、分离 | 建筑通风、烟羽 |
| RNG k-ε | 2个(RNG推导) | 有涡、曲率的流动 | 强分离 | 混合罐、室内通风 |
| 可实现 k-ε | 2个(可实现条件) | 喷流、剪切流、通道流 | 强旋转 | 涡轮机初步检查 |
| 标准 k-ω | 2个($k$, $\omega$) | 壁近处、逆压梯度 | 自由流依赖性(外部流问题大) | 边界层详细解析 |
| k-ω SST (Menter) | 2个(混合函数) | 壁近+自由流兼顾,分离流 | 强浮力效应(自然对流) | 最通用。汽车、翼型、涡轮 |
| RSM(雷诺应力) | 7个(全应力分量) | 强各向异性、旋流 | 收敛慢、复杂 | 旋转燃烧器、旋风分离器 |
| LES(Smagorinsky等) | 非定常+SGS模型 | 大涡详细结构、声学 | 壁近处高Re(成本过高) | 噪声、燃烧详细过程 |
| DES/DDES | SA or SST 基础 | 大规模分离(车尾流等) | 收敛判断难 | 汽车尾流、钝头体 |
为什么k-ω SST被称"最通用"?k-ε不行吗?
k-ε的弱点在壁面附近。要精确模拟,需要依赖壁函数(wall function),y+得在30〜300范围才行。k-ω则擅长壁面,但自由流(远离壁面)对初始湍流条件过度敏感。
SST(Shear Stress Transport)用混合函数"壁面近k-ω,自由流ε-like",两者长处结合,还加了湍流剪切应力过估修正。自1994年Menter提出后,航空、汽车、涡轮机就都用这个。"不知道选什么"的第一选择就是SST。
y⁺(y-plus)的含义与壁面网格设计
$y^+$ 是用"粘性子层尺度"对壁面距离进行无量纲化:
壁面附近速度分布(对数律):
| 湍流模型/处理方式 | 推荐 y⁺ | 壁面处理 | 备注 |
|---|---|---|---|
| k-ε(标准壁函数) | 30〜300 | 壁函数补间 | 粗网格可用。计算成本低 |
| k-ε(增强壁处理) | y⁺ ≈ 1 也可 | 自动切换 | Ansys Fluent推荐设置 |
| k-ω SST(低Re求解) | y⁺ ≈ 1 | 粘性子层求解 | 精度优先。计算代价高 |
| k-ω SST(壁函数) | y⁺ = 30〜300 | 壁函数 | 大规模分析的折衷方案 |
| LES / DES | y⁺ ≈ 1〜5 | 壁面求解 | 网格极细,成本高 |
若y⁺ 在推荐范围外,壁面剪切应力、传热系数会产生大误差。分析前必须用 y⁺计算器 检查第一层网格高度。
7. 可压缩流与冲击波
等熵流与驻点条件
无摩擦、无热交换的等熵流中,完全气体的状态量仅由Mach数决定:
下标0表示驻点(全量)条件,无下标表示静量。$\gamma = 1.4$(空气),$Ma = 1$ 时喉部条件:$T^*/T_0 = 2/(\gamma+1) = 0.833$,$p^*/p_0 = 0.528$。
德·拉瓦尔喷管与面积比
要在喷管内产生超音速,需要先收缩后膨胀的形状(德·拉瓦尔喷管、收缩膨胀喷管)。喉部面积 $A^*$ 与某点面积 $A$ 的比与Mach数的关系:
火箭喷管就是这个形状吧。但为什么截面扩大就超音速了?亚音速里"细就快",怎么反了?
"音速超过后连续方程反向工作"的现象。亚音速 $d\rho/\rho \ll dA/A$,管细了流速快(体积守恒≈断面守恒)。超音速后 $d\rho/\rho$ 比 $dA/A$ 大得多——密度下降快,截面虽扩大,连续性让流速必须更快。
喉部达到 $Ma = 1$ 时出现"堵塞(choke)":上游压力再提也通过喉部的质量流量不增。火箭发动机喇叭形喷管正是利用这原理把燃烧气加速到超音速,获得最大推力。
垂直冲击波关系式(Rankine-Hugoniot)
垂直冲击波前后(下标1:上游, 2:下游)的关系式:
冲击波是几个平均自由程厚度的薄不连续面,压力、密度、温度陡增,熵增加(不可逆过程)。CFD中捕捉冲击波需要控制数值扩散,密度基求解器(Roe法、AUSM法、JST法等)加TVD格式必不可少。
| $Ma_1$(上游) | $Ma_2$(下游) | $p_2/p_1$ | $T_2/T_1$ | $\rho_2/\rho_1$ |
|---|---|---|---|---|
| 1.0 | 1.000 | 1.000 | 1.000 | 1.000 |
| 1.5 | 0.701 | 2.458 | 1.320 | 1.862 |
| 2.0 | 0.577 | 4.500 | 1.688 | 2.667 |
| 3.0 | 0.475 | 10.33 | 2.679 | 3.857 |
| 5.0 | 0.415 | 29.00 | 5.800 | 5.000 |
8. 计算流体力学(CFD)概论
有限体积法(FVM)的离散化
CFD最常用的是有限体积法(FVM:Finite Volume Method)。计算域分割成单元(控制体积),对每个单元应用保存律的积分形式。在单元中心 $P$ 与相邻单元 $N$ 的边界面处评估通量。
$\phi$ 是守恒变量(速度分量、温度、$k$、$\varepsilon$ 等),$\dot{m}_f$ 是边界面的质量通量,$\Gamma_\phi$ 是扩散系数,$A_f$ 是面积,$S_\phi$ 是源项。FVM的特点是严格满足每个单元的守恒律(守恒性好)。
压力速度耦合:SIMPLE法
不可压缩的NS方程没有压力方程吧?CFD怎么求压力?
问得好!不可压缩中压力是"满足连续方程 $\nabla \cdot \mathbf{v} = 0$ 的约束"而确定。这就是压力速度耦合问题。SIMPLE(半隐式压力关联方程法)的流程:
- 用假定的压力场 $p^*$ 解动量方程,得到假的速度 $\mathbf{v}^*$
- $\mathbf{v}^*$ 不满足连续方程,所以建立压力修正量 $p'$ 的Poisson方程求解
- $p = p^* + \alpha_p p'$、$\mathbf{v} = \mathbf{v}^* + \mathbf{v}'$ 用欠松弛系数 $\alpha_p$ 更新
- 重复直到残差足够小
进阶有SIMPLEC(系数更精确)、非定常用PISO(Pressure-Implicit Splitting Operators)。OpenFOAM的非定常分析常用PIMPLE(SIMPLE+PISO混合),效率好。
对流格式的比较
| 格式 | 精度阶 | 稳定性 | 数值扩散 | 振荡 | 用途 |
|---|---|---|---|---|---|
| 一阶迎风(UDS/UD) | 一阶 | ◎(无条件稳定) | 大 | 无 | 收敛检查、初值、稳健性优先 |
| 中心差分(CDS) | 二阶 | △(高Pe数不稳定) | 无 | 有 | LES、DNS(数值扩散最小需要) |
| 线性迎风(LUDS) | 二阶 | ○ | 中 | 小 | 定常RANS标准选择 |
| QUICK(三阶迎风加权) | 三阶 | ○ | 小 | 略有 | 精度优先的RANS |
| TVD格式(MUSCL+限制器) | 二~三阶 | ○ | 小 | 抑制 | 冲击波、密度不连续流 |
| WENO(高阶权重本质无振荡) | 五阶以上 | ○ | 极小 | 无 | 超音速、爆炸波、精密LES |
实务中常见做法是先用一阶迎风收敛,再切换为二阶精度格式提高精度的"两阶段法"。直接用高阶格式容易发散。
收敛判定与残差读法
OpenFOAM计算时会输出各种"残差"。怎样才算"收敛"?残差要多小?
一般目标是:
- 速度分量 ($U_x, U_y, U_z$): $10^{-4}$ 以下最好,$10^{-3}$ 时工程上有时可接受
- 连续残差 (continuity): $10^{-4}$ 以下。大的话质量守恒破坏
- 能量(温度): $10^{-7}$ 以下(值小易收敛)
- 湍流变量 ($k, \omega, \varepsilon$): $10^{-5}$ 以下
但只看残差是危险的。监控关心的物理量(阻力系数 $C_D$、压力损失 $\Delta p$、热流 $q$)是否不再变化。残差下降但 $C_D$ 还飘忽不定,说明没真正收敛。定量监控点设置必须做,这样才能判断答案稳定了。
9. CFD实务注意事项
边界条件设置错误与对策
CFD分析中最常见的失败就是边界条件误设。虽然计算能跑,但物理上无意义的边界条件会导致完全错误的结果。
| 边界 | 常见错误 | 正确设置与检查要点 |
|---|---|---|
| 入口(Inlet) | 湍流强度和长度尺度用默认值(TI=5%) | TI = 1〜5%(内部流路)或0.1〜1%(外部流)。长度尺度约为水力直径的0.07倍 |
| 出口(Outlet) | 预期有反流处设压力出口,反流条件未设 | 反流可能的地方设backflow湍流条件。计算域延伸到出口后方也有效 |
| 壁面(Wall) | 旋转壁的速度错误设为零(涡轮机械) | 使用Moving Wall / MRF(多参考框架)/ Sliding Mesh |
| 对称面(Symmetry) | 对非对称流(Karman涡街)用对称条件 | Karman涡、非对称分离不能用对称。半模型也须用非定常 |
| 热边界 | 外壁设绝热(adiabatic)做热分析。全温与静温混淆 | 依据测量值或规格明确设热通量或对流传热系数+外气温 |
| 周期边界 | 周期长度与物理周期不符 | 压力降指定型(Fluent的Periodic BC)与流量指定型的区分 |
网格品质与数值扩散
"数值扩散"经常听到,但它具体是什么问题?和物理扩散怎么区分?
数值扩散是"数值误差表现得像物理扩散"的现象。一阶迎风格式的截断误差展开,实际上加进了伪扩散系数 $\nu_{\text{num}} \approx U\Delta x/2$。这项大的话,本来尖锐的温度梯度或涡就会"模糊"。特别是网格不对齐流向时更坏。
辨别方法是加细网格看结果是否变化。粗网格和细网格差异大,说明数值扩散在主导。这叫网格无关性验证(Grid Independence Study)。实务中至少比较两个网格级别(粗、细)。
| 品质指标 | 良好范围 | 问题值 | 影响 |
|---|---|---|---|
| 纵横比(Aspect Ratio) | < 100(非边界层) | > 1000 | 收敛差、精度低 |
| 斜度(Skewness) | < 0.5 | > 0.85 | 离散误差增大、易发散 |
| 正交性(Non-orthogonality) | < 40° (OpenFOAM定义) | > 70° | 压力速度耦合误差大 |
| 体积比(Volume Change Ratio) | < 10 | > 100 | 体积剧变导致局部误差 |
物性值的数据源与注意
物性值错误是"计算能跑但答案全错"的常见原因。遵守以下原则:
- 温度依赖性考虑:空气粘度在20℃〜100℃间变化约1.5倍。温度变化大的分析不能用常物性
- 混合物物性:冷却液(乙二醇水溶液)的物性随浓度、温度强烈变化。必查制造商数据表
- 推荐数据源:
- NIST Webbook(https://webbook.nist.gov):气体、液体热物性可免费按温度压力查询
- Engineering Toolbox:工程范围物性值快速查询
- CRC Handbook of Chemistry and Physics:实验数据可信度高
最后问一个:做CFD最容易犯的三个错误是什么?
①不验证就直接切细网格:应先用粗网格跑通,检查"物理是否合理",再加细网格。一开始就10倍网格,答案不对时修改成本巨大。
②湍流强度用默认值(5%)不改:入口条件的湍流强度(Turbulent Intensity)对结果影响大,却经常被忽视。应依实验或规范设定。
③只看残差判断收敛:监控感兴趣的物理量($C_D$、$\Delta p$、传热系数),不能只看残差。另外用基准(