出口回流处理:原理与诊断验证
区分物理回流与计算域截断伪影,给出突扩与钝体回流长度的量级估算、Orlanski 辐射条件与出口压力的两种给法及其适用范围。
出口回流处理:原理与诊断验证
出口回流不是数值故障的同义词。扩压器、突扩、钝体尾迹、强旋流燃烧室在真实运行中都存在逆流区,把它压掉等于篡改物理;但在计算域过短或出口切进分离泡时出现的回流又纯粹是截断造成的。区分这两类回流决定了后续该延长计算域还是该正确指定回流变量。"出口够远了吗"这个问题只有一个可验证的答案:把出口逐级外移,看目标量序列是否单调收敛,并用 Richardson 外推给出极限值。单看流场图判断回流是否消失是靠不住的——回流面积可能已经降到 1%,但压降仍在以每级 3% 的速率漂移。
突扩与钝体的回流尺度估算
对轴对称突扩,设上游直径 $D_1D_2h = (D_2 - D_1)/2$。湍流条件下再附长度约为
取内径 $D_1 = 50\ \mathrm{mm}D_2 = 100\ \mathrm{mm}h = 25\ \mathrm{mm}L_r \approx 8 \times 25 = 200\ \mathrm{mm}2D_2U_1 = 5\ \mathrm{m/s}\rho = 998\ \mathrm{kg/m^3}\mu = 10^{-3}\ \mathrm{Pa\cdot s}Re_h = \rho U_1 h/\mu = 998 \times 5 \times 0.025/10^{-3} = 1.25\times 10^5L_r/h = 8Re_h < 400L_r/h \approx 10 \sim 12$ 且不再自相似。
突扩的不可逆压损由 Borda-Carnot 关系给出:
面积比 $A_1/A_2 = (50/100)^2 = 0.25K = 0.75^2 = 0.5625\Delta p = 0.5625 \times 0.5 \times 998 \times 5^2 = 7018\ \mathrm{Pa}7.0\ \mathrm{kPa}$,多半是出口位置切进了回流区,把不可逆损失"漏"出了计算域。
两类回流的判别逻辑
判别的核心是回流区是否被出口截面截断。真实回流区有闭合的再循环结构:流体在分离点离开壁面,在再附点重新贴壁,回流区沿流向有确定的长度 。若出口位于 的位置,出口截面上必然存在逆流,且这个逆流区会随计算域延长而缩小、最终消失——这是截断伪影的指纹。反之,若把出口外移到 后逆流仍然存在,且形态不随域长改变,则为物理回流,此时必须给出回流温度、湍流量与组分。
这个判据可以量化:延长出口后,记录出口逆流面积占比 。若 随域长单调下降并在某长度后趋于常数,该常数即为物理回流的真实占比;若 持续下降不收敛,说明仍未脱离分离区。
出口压力的两种给法及其后果
出口只允许一个自由度(不可压缩流为压力水平),但压力的类型可以不同:
- 给定静压:速度由内部解与外推共同决定,是内流标准做法。回流速度由压力梯度自然产生,物理上自洽。
- 给定总压:隐含规定了回流速度量级。回流区里总压几乎等于静压(动压小),因此给定总压会把回流速度强行压到接近零,抑制逆流。
第二种给法在扩压器算例中会给出偏乐观的结果:逆流被人为消除,出口压降偏低。若必须用总压(例如与上游总压入口配对做压差驱动系统),应同时用 pressureInletOutletVelocity 让速度在逆流时由压力反算,而不是固定为零。
回流量化与阈值
回流的危害程度由质量流量而非面积占比决定。设出口面积 ,若逆流面积占 ,逆流区平均法向速度 ,则逆流质量流量
入口质量流量 ,故逆流占比 。稳态算例中逆流占比超过 就必须显式指定回流变量,否则默认值会通过出口持续注入错误的温度与湍流量。
辐射条件与对流出口的适用条件
非定常流动中,出口应允许涡结构以接近非反射的方式穿出。Orlanski 辐射条件的形式是
其中 可取速度分量或压力, 是由边界上局部时间导数与法向梯度反算的对流速度。数值上 需做上下限裁剪()以避免梯度趋零时发散。一次可核对的估算:若在时间步 内出口某点速度变化 ,同点法向梯度为 ,则
取绝对值 作为该点的对流速度,与主流速度 同量级,说明裁剪上限设为 是必要的。这类边界适合周期性尾迹与涡脱落;对定常求解器没有意义,因为 使 无法定义。
出口边界字典
boundaryField
{
outlet
{
type pressureInletOutletVelocity; // 逆流时速度由压力反算
value uniform (0 0 0);
}
}
// 0/p 出口:只给压力水平,速度由内部解决定
boundaryField
{
outlet
{
type fixedValue;
value uniform 0; // 表压基准
}
}
// 逆流时携带的温度与湍流量,必须取外部环境代表值
// 0/T
outlet
{
type inletOutlet;
inletValue uniform 293.15; // 20 C
value uniform 293.15;
}
// 0/k
outlet
{
type inletOutlet;
inletValue uniform 0.24; // 按来流强度反算
value uniform 0.24;
}
运行后用 postProcess -func 'surfaceFieldValue(name=outlet,operation=sum,fields=(phi))' 拿到出口净通量,用 fieldMinMax 检查 在出口面是否出现低于入口一个量级的异常值——那是默认值填充的痕迹。
诊断脚本
下面的脚本对每对相邻域长解给出外推值与 GCI:
import numpy as np
dp = np.array([8.42, 7.35, 7.11, 7.045]) # kPa, L/h = 8,16,32,64
r, p, Fs = 2.0, 2.0, 1.25
for i in range(1, len(dp) - 1):
q_ext = dp[i+1] + (dp[i+1] - dp[i]) / (r**p - 1.0)
gci = Fs * abs((dp[i+1] - dp[i]) / dp[i+1]) / (r**p - 1.0)
print(f"L/h={2**(i+3):3d} dp={dp[i+1]:.3f} kPa "
f"ext={q_ext:.3f} kPa GCI={gci*100:.2f}%")
脚本对每一对相邻解给出外推值与 GCI,若外推值在三级之间漂移小于 GCI,序列可信;若漂移大于 GCI,说明尚未进入渐近区,需要继续外移。
故障模式与判定试验
| 现象 | 根因 | 判定试验 |
|---|---|---|
| 出口逆流面积随域长单调下降 | 出口切进分离泡,属截断伪影 | 出口外移 重算,若 减半则继续外移 |
| 域长加倍后逆流形态不变 | 物理回流,需要显式回流变量 | 检查回流温度/湍流量是否等于外部环境值 |
| 突扩压降远低于 | 出口给了总压,逆流速度被压制 | 改为固定静压,比较压降是否上升 |
| 残差在出口附近反复跳变 | 默认回流值与环境差 100 K 以上 | 输出出口逆流点温度,与外部环境逐点对比 |
| 周期性尾迹算例出口反射明显 | 用了定常压力出口,无对流项 | 改用 waveTransmissive,观察出口压力频谱是否变干净 |
| 出口面出现 极低值 | inletOutlet 的 inletValue 未按环境设定 |
fieldMinMax 读出口面 最小值,应不低于环境的 |
| 逆流占比已降到 1% 但压降仍每级变 3% | 回流面积小但速度大,动量通量仍显著 | 改用 而非 判断,阈值取 |
| 外推值比 Borda-Carnot 高 10% 以上 | 出口仍位于分离区内 | 加一级 看外推值是否继续下降 |
| 稳态 、瞬态峰值 | 涡脱落驱动,稳态掩盖了峰值 | 按 估 ,检查采样是否每周期 50 点以上 |
| 表观收敛阶 拟合出 3.5 以上 | 序列未进入渐近区或存在非单调解 | 检查三级解是否单调,非单调时不可用 Richardson |
| GCI 小于 0.1% | 三级解被同一数值误差主导,序列无信息 | 换用更粗的域长序列重新构造 |
| 外推值比解析值低 10% 以上 | 出口给总压,逆流被抑制 | 改为固定静压重算,比较压降是否上升 |
与 Borda-Carnot 解析值的交叉校核
自洽不等于正确。突扩的不可逆压损有解析解,可作为独立校核:
面积比 $A_1/A_2 = (50/100)^2 = 0.25K = 0.5625$,
外推值 与解析值 相差 ,远小于 GCI 的 ,同时确认了 的选择合理、 的出口位置足够远。若外推值比解析值高 以上,应优先怀疑出口仍在分离区内;若低 以上,则可能是出口给了总压、抑制了逆流。
Richardson 外推与网格收敛指数
域长序列的极限值用 Richardson 外推估计。设三级解 对应公比 的加密,表观收敛阶为 ,则
对本例 ,,。对流主导的出口误差是一阶的,取 会给出 ,低于解析值;取 (压力反馈主导)得
网格收敛指数按 Roache 定义给出最细解的相对不确定度:
安全因子取 (三级解)。于是报告应写"(域长不确定度 1.4%)",而不是一个裸数字。
用域长序列代替单点算例
验证出口位置需要至少三个域长构成序列,公比通常取 。以突扩下游为例,台阶高度 ,出口分别置于 (即 ),关注量为突扩总压损 :
两个信号同时收敛:逆流占比在 已降到 量级,压降的逐级变化从 降到 。注意逆流占比的收敛速度快于压降,因此不能只看回流面积来决定域长。
| 域长 | 出口位置 | 逆流面积占比 | ||
|---|---|---|---|---|
| 8 | ||||
| 16 | ||||
| 32 |
回流质量流量而非面积占比
回流的危害由携带的质量、动量和能量通量决定。定义逆流质量分数
对上述 算例,出口直径 $D_2 = 100\ \mathrm{mm}A_{out} = \pi D_2^2/4 = 7.854\times 10^{-3}\ \mathrm{m^2}\Phi = 18.5%1.453\times 10^{-3}\ \mathrm{m^2}0.75\ \mathrm{m/s}998\ \mathrm{kg/m^3}$:
上游质量流量 ,得 。工程阈值: 可忽略回流变量; 需检查回流温度与湍流量; 必须显式指定并复核能量收支。这里 ,属于必须处理的情形。
瞬态峰值与稳态均值的差异
稳态求解器报告的逆流占比是时间平均,而真实的回流区往往由涡脱落驱动,瞬时峰值可以比均值大数倍。判定是否有周期性结构,用脱落频率估算:钝体尾迹的斯特劳哈尔数 ,在 、 下
瞬态验证时,时间步需每周期至少 50 点,即 ,实际取 。此时记录逆流占比的时程,若峰值 而均值 ,则峰值/均值比 6.5。验证报告必须写明是峰值还是均值,否则两个都"正确"的数字可以相差一个量级。
参考资料
- Orlanski I., “A Simple Boundary Condition for Unbounded Hyperbolic Flows”, Journal of Computational Physics, 21(3), 251-269, 1976.
- Eaton J.K., Johnston J.P., “A Review of Research on Subsonic Turbulent Flow Reattachment”, AIAA Journal, 19(9), 1093-1100, 1981.
- Ferziger J.H., Perić M., Street R.L., Computational Methods for Fluid Dynamics, 4th ed., Springer, 2020.
- Borda J.C., “Mémoire sur l’écoulement des fluides dans les tuyaux cylindriques”, Mémoires de l’Académie Royale des Sciences, 1766.
- OpenFOAM Foundation, OpenFOAM User Guide: pressureInletOutletVelocity and inletOutlet Boundaries, v2312, 2023.
- Richardson L.F., “The Approximate Arithmetical Solution by Finite Differences of Physical Problems”, Philosophical Transactions of the Royal Society A, 210, 307-357, 1911.
- Roache P.J., “Perspective: A Method for Uniform Reporting of Grid Refinement Studies”, Journal of Fluids Engineering, 116(3), 405-413, 1994.
- Celik I.B., Ghia U., Roache P.J., Freitas C.J., Coleman H., Raad P.E., “Procedure for Estimation and Reporting of Uncertainty Due to Discretization in CFD Applications”, Journal of Fluids Engineering, 130(7), 078001, 2008.
- ASME, V&V 20-2009: Standard for Verification and Validation in CFD and Heat Transfer, 2009.