OpenFOAM入门

分类:开源CAE | 2026-10-02 改写
CAE visualization for openfoam intro theory - technical simulation diagram
OpenFOAM入门

理论:算例结构以及时间步长与网格的确定

概述

🙋

我想开始用OpenFOAM,但听说没有图形界面,有点不安。从哪里入手好?

🎓

先原样运行一个官方教程。OpenFOAM用称为“算例”的文件夹表示一个分析,里面有三个文件夹:0/写各变量(速度U、压力p)的初值和边界条件,constant/写物性(运动粘度等)和网格,system/写计算时间与输出(controlDict)、离散方法(fvSchemes)、方程组求解方法(fvSolution)和网格生成方法(blockMeshDict)。一开始复制方腔流(只有顶盖运动的正方形箱体)算例,用blockMesh生成网格,用icoFoam求解,用ParaView查看。这一整套跑通后,再一项项改变设置确认结果的变化。没有图形界面,反过来所有设置都以文本保存,便于比较条件和自动化。

雷诺数、库朗数与计算量

$$ Re = \frac{U L}{\nu},\qquad Co = \frac{U\,\Delta t}{\Delta x} \le 1,\qquad \text{cost} \propto N^2 \times N = N^3\ \ (\text{2D}) $$

U为代表速度(顶盖速度),L为代表长度(方腔边长),ν为运动粘度,Δt为时间步长,Δx为网格尺寸,N为每边分割数。icoFoam是不可压缩层流瞬态求解器,用PISO算法耦合压力和速度。

Coffee Break 随笔闲谈

从伦敦的实验室走向世界

OpenFOAM的前身FOAM于1990年代在伦敦帝国理工学院开发,是一个能用C++“按方程原样”书写偏微分方程的库。2004年作为开源软件发布后,在企业和大学中迅速普及。求解器代码读起来几乎与控制方程形式相同,这是研究者容易加入自己模型的原因。

算例

例1:运动粘度与雷诺数(顶盖1 m/s,边长0.1 m)

运动粘度 ν雷诺数粘性扩散时间 L²/ν
0.01 m²/s101秒
0.001 m²/s10010秒
0.0001 m²/s1,000100秒

教程设置为ν = 0.01(Re = 10),结束时间0.5秒。

例2:网格疏密与计算量(库朗数1,计算到0.5秒)

网格网格尺寸时间步长步数网格数计算量(20×20为1)
20×200.0050 m0.0050 s1004001
40×400.0025 m0.0025 s2001,6008
80×800.00125 m0.00125 s4006,40064
🙋

想要Re = 1000,只把运动粘度改成0.0001就行吗?

🎓

这样还不够。首先,Re升高后方腔角落出现小涡,壁面附近速度变化很陡,20×20太粗,至少要加密到80×80左右,时间步长也要减小,使库朗数不超过1。其次,流动稳定下来所需的时间变长。粘性把动量扩散到整个方腔的时间尺度L²/ν,Re = 10时为1秒,Re = 1000时为100秒,在0.5秒停下只是在看中间状态。要延长endTime,确认中心线速度分布不再随时间变化后再使用结果。此外Re = 1000时一定要检查网格加密后结果是否不再改变(网格收敛)。方腔流有详细的参考解(Ghia等人的数据表),与之比较是最合适的第一项验证。

入门流程

  1. 把教程的cavity算例复制到工作文件夹。
  2. 用blockMesh生成网格,用checkMesh确认质量。
  3. 用icoFoam求解,在日志中确认残差和库朗数。
  4. 在ParaView中查看速度和压力(paraFoam或foamToVTK)。
  5. 一项项改变设置,与参考解比较验证。
Coffee Break 随笔闲谈

“第一次改动就发散”

跑通教程后常做的下一步,是加密网格后直接运行。有个学生改成40×40后计算立刻发散。查看日志,库朗数接近2,原因是网格尺寸减半而时间步长仍为0.005秒。把时间步长改为0.0025秒后顺利收敛。OpenFOAM也可以在controlDict中用adjustTimeStep并指定最大库朗数,让时间步长自动调整。

常见错误

错误与对策

错误后果对策
只加密网格库朗数超限发散同时减小时间步长
提高Re仍用原结束时间看到的是中间状态确认已达稳态
边界名称不一致启动时报错统一0/与网格中的名称
跳过checkMesh坏单元导致发散确认质量
不与参考解比较发现不了错误用基准问题验证
🙋

我想了解相关内容。

关联模拟器

在本领域的交互式模拟器中体验理论

模拟器列表

相关分析领域

结构分析流体分析(CFD)热分析
本文评价
感谢您的反馈!
有帮助
更详细
报错
有帮助
0
更详细
0
报错
0