层流管内流动(Hagen-Poiseuille) — 故障排除指南
更丰富的内容请访问 laminar-pipe-flow.html。
常见问题与对策
这么简单的问题也会失败吗?
出乎意料的是常见。Hagen-Poiseuille 是"应该能成功"的问题,正因如此,当结果不匹配时问题分类就变得容易了。
1. 速度分布不是抛物线
检查要点:
- 管道是否足够长: $L > 0.06 Re \cdot D$ 如果不满足,出口截面处速度尚未完全发展。Re=100 时需要 $L > 6D$
- 入口条件: 如果在入口给定均匀流,则速度通过助运区间发展为抛物线。不应期望入口截面处已经是抛物线
- 网格的轴对称性: 对于非结构网格,截面内的非对称性会扭曲分布
2. 压力降与理论值不符
压力降与理论值 $128\mu LQ / (\pi D^4)$ 存在偏差。
检查要点:
| 原因 | 对策 |
|---|---|
| 助运区间的附加压力降 | 在完全发展区域内的两点间计算 $\Delta p$ |
| 单位系统不匹配 | 检查 $\mu$ 和 $\nu$ 的单位。$\mu = \rho \nu$ |
| 出口边界条件 | 确认出口处有压力出口 ($p = 0$) |
| 数值扩散 | 一阶精度格式中压力梯度精度也会降低 |
3. 收敛缓慢 / 不收敛
Hagen-Poiseuille 是线性问题,如果设置得当应在数百次迭代内收敛。收敛缓慢时:
- 松弛系数过小: SIMPLE 法中,压力松弛 $\alpha_p = 0.3$,速度 $\alpha_U = 0.7$ 是标准值。检查是否不必要地降低了它们
- 网格扭曲: 非正交性高会恶化收敛。用
checkMesh确认 non-orthogonality - 边界条件不匹配: 入口有质量流入但出口是壁面等致命错误
4. 壁面剪切应力为零
wallShearStress 输出为零。
检查壁面条件是否设为 slip。正确的应是 noSlip(OpenFOAM 中为 fixedValue uniform (0 0 0))。
另外,OpenFOAM 的 wallShearStress 后处理工具在没有启用湍流模型时可能计算不正确。对于层流,最好不用 wallShearStress,而是从 wallGradU 手动计算 $\tau_w = \mu (\partial u / \partial n)_{wall}$。
5. 周期边界条件不工作
在 OpenFOAM 中使用 cyclic 边界时的注意事项:
- inlet/outlet 补丁的面法向必须相反,面形状必须完全一致
- 用
createPatch工具创建周期补丁后,用checkMesh确认无错误 - 确认
meanVelocityForce的方向向量与流动方向一致
基本问题越要仔细验证,这一点很重要。
没错。如果 Hagen-Poiseuille 流无法正确求解,就没有资格解更复杂的问题。建议定期作为 CFD 的"健康检查"来运行基准测试。
"Re 数正确但结果仍不匹配"的常见陷阱
在层流管内流动的验证中,经常会遇到"Re 数降至 2000 以下但速度分布仍不是抛物线"的反馈。大多数原因是"墙面粗糙度模型已启用"或"出口边界条件不允许逆流"。特别是后者是盲点,即使使用零梯度条件,数值扰动也可能导致逆流,从而破坏收敛。另一个陷阱是"网格太粗无法充分解析抛物线"的情况。断面方向至少需要 10 个单元,但有人用 5 个单元然后"看起来成形了"就认为没问题。层流很简单这一先入为主的观念反而成为隐患。
相关主题
细节
错误