OpenFOAM多相流分析
理论:用体积分数追踪界面
VOF输运各相的体积分数,并据此确定混合密度与黏度,将流动和界面耦合。它可表示破碎,但小于网格的液滴或液膜无法解析。
V_i为单元体积,V_l为液体体积。封闭域应追踪相对初始液量的偏差;有进出口时还应计入体积流量的时间积分。此处Co是一维估算,不一定等同于求解器基于面通量的定义。
先确认发行版
OpenCFD的interFoam与Foundation发行版在字典和运行方式上不同。Foundation v13溃坝示例使用foamRun和incompressibleVoF模块。应从所安装版本附带的damBreak教程开始,不要直接复制另一发行版的字典。
算例:检查时间步量级
表格是将参数代入理想模型所得的时间尺度,不是OpenFOAM运行结果或稳定保证。应另行检查实验一致性、液量守恒及网格和时间步依赖性。
水柱高0.292 m,Co = 0.5
| 单元宽度 | 对流时间步估算 |
|---|---|
| 5 mm | 7.39×10⁻⁴ s |
| 2 mm | 2.95×10⁻⁴ s |
g = 9.81 m/s²。此速度来自理想干床浅水溃坝(Ritter)模型,并非运行OpenFOAM得到的前缘速度。撞壁后或初始垂向运动明显时不能直接套用。计算期间应监测日志中的实际最大Co和界面Co。
表面张力时间尺度
| 单元宽度 | 按此系数计算的时间尺度 |
|---|---|
| 1 mm | 1.05×10⁻³ s |
| 0.1 mm | 3.33×10⁻⁵ s |
| 0.01 mm | 1.05×10⁻⁶ s |
假设水密度1,000 kg/m³、空气1.2 kg/m³、表面张力0.072 N/m。这是选定离散化相关系数的教学时间尺度,不是所有VOF算法都保证稳定的限制。网格宽度缩小10倍,此尺度缩小约31.6倍。仅设置maxCo未必能控制毛细限制,应检查实现并测试时间步依赖性。
验证流程
- 先原样运行附带的damBreak,记录发行版与字典。
- 记录alpha极值、液量和进出口收支。
- 分别细化网格和时间步,比较前缘位置及压力。
- 与实验比较时统一几何、初始液量、测点和时刻。
常见错误
| 检查项目 | 对策 |
|---|---|
| 液量减少 | 检查边界通量和alpha输运,复核界面Co与时间步。 |
| 静止液滴周围有流动 | 可能为寄生流:验证曲率、网格及毛细力平衡。 |
| 液膜消失 | 比较膜厚与单元宽度,必要时局部细化。 |
相关:OpenFOAM网格生成 / OpenFOAM后处理
常见问题
VOF中的alpha表示什么?
它是一个相在单元中的体积分数。水相alpha为1表示水,为0表示另一相,介于0和1之间表示含界面的单元。它是单元平均量,不是物理界面厚度。
只用maxCo就能确定时间步吗?
不够。还应检查界面Courant限制、表面张力和界面输运设置。名称因版本而异,应参照所用版本的教程,并通过时间步减半比较确认精度。
溃坝测试要验证什么?
检查液量守恒、alpha有界性、前缘位置随时间的变化以及压力或冲击。2√(gH)是理想干床浅水模型的速度尺度,不能作为含壁面、障碍物或黏性的VOF算例的合格判据。
参考资料与检验范围
- OpenFOAM Foundation v13 — Dam break
- Brackbill, Kothe & Zemach — Continuum surface force method (1992)
所列数值是基于文中假设的教学参考计算。资料用于理论和设置参考,不证明已在各软件中复现这些数值。工程决策须按实际条件验证。