跳转至

第19章 OpenFOAM® 湍流应用(An OpenFOAM® Turbulent Flow Application)

作者

本章由 F. Moukalled、L. Mangani 和 M. Darwish 合著。本章是 Ch 15-18 全部理论与方法的"完整应用" —— 用 OpenFOAM 求解一个真实的工业湍流算例:Ahmed body。这一章是全书从"理论"到"工程"的桥梁。

内容概述

本章 20+ 页篇幅以汽车空气动力学中的经典基准算例 —— Ahmed body —— 为载体,演示如何用 OpenFOAM simpleFoam 求解实际工业湍流问题。Ahmed body 是汽车 CFD 领域的"标准基准",类似航空领域的 NACA 0012 机翼、压力容器领域的 ASME B16.5 法兰,是工业 CFD 验证模型精度的"金标准"。

§19.1 引言 —— 汽车车身设计的 CFD 需求:空气阻力(占乘用车燃油消耗 50% 以上)、湍流边界层、形状敏感性、阻力系数预测、噪声辐射(特别是后视镜、A 柱区域)。CFD 是汽车空气动力学设计的"核心工具",从概念设计(Concept)到详细设计(Detailed)全程应用。

§19.2 Ahmed body 介绍 —— Ahmed 钝体 (Ahmed bluff body) 是汽车空气动力学的"标准基准算例": - 几何 —— 长方体后部带 25° 或 35° 后倾角斜面 - 优势 —— 几何简单(容易生成网格 + 划分域),但流动现象复杂(3D 分离流、剪切层、涡旋、再附) - 实验数据 —— Ahmed 1984 原始测量 + Lienhart 2002 详细 PIV 数据 - 典型 Re —— \(10^5\) - \(10^6\)(基于 \(L = 1\) m 和 \(U = 40\) m/s) - 本书选 25° 倾角 —— 亚临界 case(流动再附于斜面),湍流模型预测难度较低

§19.3 域离散 —— 计算域 + 边界条件 + 网格生成:

  • 计算域 —— 矩形 box:
  • 上游:车头前 5\(L\)
  • 下游:车尾后 10\(L\)
  • 顶部:车顶上方 5\(W\)
  • 两侧:车体两侧各 5\(W\)
  • 这种"远场"布置避免出口-车体后端相互干扰

  • 对称面 —— 利用 Ahmed body 的中面对称性,取半个域计算,节省 50% 计算量。同时弱化涡旋脱落的瞬态效应(因为对称面抑制了垂直方向的涡旋分量)。

  • 边界条件

  • 入口:\(U = 40\) m/s,湍流强度 \(I = 0.05\)
  • 出口:静压 \(p = 0\),速度外推
  • 地面:移动壁面 \(U = 40\) m/s(模拟风洞地面效应)
  • 车体:noSlip,湍流 \(k-\omega\) SST 壁面函数
  • 侧面 + 顶面:远场 slip
  • 对称面:symmetryPlane

  • 网格生成 —— snappyHexMesh,从 STL 表面自动生成多面体网格,分 3 阶段:

  • castellatedMesh —— 在背景笛卡尔网格上,根据 STL 表面分级细化
  • snap —— cell 形心向 STL 表面投影,贴合表面
  • addLayers —— 在车体表面添加 prismatic 边界层

§19.4 网格细化 —— 在车体附近加密网格以解析边界层 + 分离流: - 全局细化castellatedMesh 阶段)—— 在车体表面附近细化为 2-3 级,最小网格尺度 \(\sim 0.05\) m - 贴体化snap 阶段)—— 把 cell 形心向 STL 表面投影,\(L^2\) 距离误差 < 0.02 - 边界层addLayers 阶段)—— 在车体表面添加 5-10 层 prismatic cell,\(y^+ \sim 1\)(解析黏性底层) - 典型总网格数 —— 5M - 20M cells(视网格细化级别)

§19.5 求解设置 —— constant/system/ 目录的关键文件:

  • transportProperties —— \(\nu = 1.5 \times 10^{-5}\) m²/s(空气运动黏度)
  • turbulenceProperties —— RASModel kOmegaSST
  • fvSchemes ——
  • gradSchemes { default Gauss linear; }
  • divSchemes { div(phi,U) Gauss linearUpwind; }(2 阶迎风格式)
  • laplacianSchemes { default Gauss linear orthogonal; }(限制非正交修正为 1 次)
  • fvSolution ——
  • solvers { p GAMG (1e-7, 0); U PBiCG (1e-7, 0.01); k, omega smoothSolver (1e-7, 0.01); }
  • SIMPLE { nNonOrthogonalCorrectors 1; residualControl { p 1e-4; U 1e-4; k 1e-4; omega 1e-4; } }
  • relaxationFactors { fields { p 0.3; } equations { U 0.7; "(k|omega)" 0.7; } }

§19.6 监控收敛 —— 残差下降 + 升力 / 阻力系数 + 流量守恒 3 重判据: - 残差阈值 —— 压力 \(10^{-4}\)、速度 \(10^{-4}\)、湍流量 \(10^{-4}\) - \(C_D\) 稳定性 —— 最后 100 步内变化 < 0.5% - 质量守恒 —— 入口质量流量 = 出口质量流量,误差 < 0.1%

§19.7 后处理 —— Paraview 显示: - 速度场 —— 横截面(车前、车中、车后)+ 纵截面对比 - 压力场 —— 车体表面 \(C_p\) 分布 - 湍流粘度比 \(\mu_t / \mu\) 分布 —— 一般工程上 < 1000 - Q-criterion 等值面 —— 涡旋可视化 - 流线 —— 分离区、再附区 - 湍动能 \(k\) 分布 —— 分离区湍动能最高

§19.8 与实验对比 —— Ahmed body 25° case 的实验数据: - 阻力系数 \(C_D\) —— 实验值 ~ 0.25 - 0.30(视 Re 和地面效应) - 表面压力分布 —— 车顶 A 点(流动滞止点)\(C_p \sim 1.0\),后端斜面 \(C_p \sim -0.6\) - 后端斜面处涡旋位置 —— 25° case 涡旋再附于斜面 - 验证 CFD 模型的精度 —— 典型 RANS 误差在 \(\pm 5\%\) 以内,LES 误差在 \(\pm 2\%\) 以内

§19.9 闭包 —— 总结完整 CFD 仿真的工程流程:几何建模 → 网格生成 → 物理设置 → 求解 → 监控 → 后处理 → 与实验对比 → 报告。

核心方程与概念

  • Ahmed body 几何参数

  • 总长 \(L = 1.044\) m

  • 总高 \(H = 0.288\) m
  • 总宽 \(W = 0.389\) m
  • 斜面倾角 \(\phi = 25°\)\(35°\)
  • 离地高度 \(h = 0.05\) m

  • 边界条件

  • 入口 —— \(U = 40\) m/s(典型),湍流强度 \(I = 0.05\)
  • 出口 —— 静压 \(p = 0\)(参考压力),速度外推
  • 地面 —— 移动壁面 \(U = 40\) m/s(模拟风洞地面效应)
  • 车体表面 —— noSlip,湍流 \(k-\omega\) SST 壁面函数
  • 侧面 + 顶面 —— symmetryPlane
  • 计算域边界 —— slip(远离车体的壁面)

  • snappyHexMesh 配置(system/snappyHexMeshDict

castellatedMesh true;
snap            true;
addLayers       true;

geometry
{
    ahmed_body.stl
    {
        type triSurfaceMesh;
        name ahmedBody;
    }
}

castellatedMeshControls
{
    maxGlobalCells 5000000;
    minRefinementCells 10;
    refinementRegions
    {
        ahmedBody
        {
            mode distance;
            levels ((0.05 4) (0.1 3) (0.2 2));
        }
    }
}

snapControls
{
    nSmoothPatch 3;
    tolerance 2.0;
}

addLayersControls
{
    layers
    {
        "(ahmedBody).*"
        {
            nSurfaceLayers 5;
            expansionRatio 1.2;
            finalLayerThickness 0.0008;
        }
    }
}
  • SST 湍流模型配置
simulationType  RAS;
RAS
{
    RASModel        kOmegaSST;
    turbulence      on;
    printCoeffs     on;
}
  • SIMPLE 算法配置
solver          GAMG;
tolerance       1e-7;
relTol          0;
fields
{
    p               0.3;
}
equations
{
    U               0.7;
    "(k|epsilon|omega)" 0.7;
}
  • 阻力系数 \(C_D\)

$\(C_D = \frac{2 F_D}{\rho U_\infty^2 A_{\text{ref}}}\)$

其中 \(F_D\) 是阻力(沿 \(U_\infty\) 方向),\(A_{\text{ref}}\) 是参考面积(通常取 \(W \times H\))。

关键结论

  1. Ahmed body 是汽车 CFD 的"标准基准":简单几何 + 复杂流动 + 大量实验数据,是验证湍流模型和数值方法的"金标准"。
  2. snappyHexMesh 是 OpenFOAM 工业网格生成的"标配":从 STL 自动生成多面体网格 + 边界层处理,节省 90% 的人工网格时间。
  3. SST 湍流模型 + SIMPLE + Rhie-Chow = 工业 CFD 的"事实标准配置":在汽车外气动仿真中这一组合预测精度在 \(\pm 5\%\) 以内。
  4. 残差 + 阻力系数 + 流量守恒 = 收敛判据的"金标准":单一残差阈值不够,必须配合物理量(升力、阻力)的稳定性。
  5. OpenFOAM simpleFoam 是稳态不可压湍流的标准求解器

挑战和开放性问题

  1. \(Re\) 流动的近壁面解析 —— 当 \(Re > 10^6\) 时,\(y^+ = 1\) 网格要求使总网格数爆炸。
  2. LES / DDES 替代 RANS —— 工业 LES/DDES 在汽车外气动仿真中越来越流行。
  3. 动网格 (Moving Mesh) —— 实际汽车空气动力学需要瞬态模拟涡旋脱落等非稳态现象。
  4. 多物理场耦合 (Aero-Acoustics, Aero-Elasticity) —— 工业 CFD 越来越多地涉及气动声学、气弹耦合。
  5. 机器学习加速 CFD —— 现代研究方向。

个人反思与批判性分析

本章是全书"工程应用"章节,20+ 页篇幅用 Ahmed body 这一经典算例串联了 Ch 4-18 的全部方法论。从写作特点看:

  • 真实工业算例 —— Ahmed body 是汽车 CFD 的"标准基准",实验数据丰富,便于读者直接验证自己的实现。Ahmed 1984 原始论文 + Lienhart 2002 详细 PIV 数据是工业 CFD 验证的"金标准"。
  • 完整的 OpenFOAM 配置文件 —— constant/system/ 目录的所有关键文件都给出示例,读者可以直接照搬。特别是 snappyHexMeshDict 的三级细化(castellatedMesh + snap + addLayers)是工业网格生成的"标准模式"。
  • 从网格生成到后处理的完整工作流 —— 不只讲求解器,还讲 snappyHexMesh、Paraview 后处理,是工业 CFD 项目的"完整工程链路"。
  • 3 重收敛判据 —— 残差 + 物理量(\(C_D\))+ 流量守恒,避免了"只看残差"的常见错误。这是工业 CFD 验证的"金标准"。
  • OpenFOAM simpleFoam 是稳态不可压湍流的标准求解器 —— 通过 Ahmed body 案例展示了"理论 → 配置 → 求解 → 验证"的完整流程。

但本章也存在以下不足:

  • 结果与实验的定量对比 仅简略提及"典型 RANS 误差在 \(\pm 5\%\) 以内",未给出具体的 \(C_D\) 误差百分比、压力系数分布误差、涡旋位置误差等。读者需要自行 benchmark。
  • 网格无关性验证 未展开。工业 CFD 验证的标准做法是 3 个细化级别(粗、中、细)的网格收敛性研究,本书仅展示单一网格配置。
  • 动网格(瞬态)的扩展 未提及(Ahmed body 本书按稳态处理)。实际工业项目中,需要瞬态模拟涡旋脱落(特别是 35° 倾角 case),需要 pimpleFoam + 动网格。
  • LES / DDES 替代 RANS 未提及。2016 年后 LES 在汽车外气动仿真中越来越流行(特别是对 35° 倾角的强分离 case),但计算成本增加 100-1000 倍。
  • 多目标优化 (MDO) 未提及。汽车空气动力学的核心是"降低 \(C_D\) 同时保持其他性能",通常需要参数化几何 + 多目标优化(NSGA-II 等),需要 OpenFOAM + Dakota / modeFRONTIER 等工具链。
  • 气动声学 (Aero-Acoustics) 未提及。汽车外气动的噪声(特别是后视镜、A 柱)是 NVH 的重要指标,需要 Lighthill 声类比 + FW-H 声传播模型。OpenFOAM 6+ 的 lighthillAcousticModel 是工业实现。

总体而言,本章是"理论 → 工程"的桥梁章节,对需要快速上手 OpenFOAM 工业 CFD 项目的读者是"完整教程"。Moukalled 的优势在于"理论(Ch 4-18) + 工具(OpenFOAM) + 案例(Ahmed body)"三位一体。本章是全书 20 章的"工程收尾",但仅是工业 CFD 项目的"起点"。

从工程实践角度,Ahmed body 案例的工程价值:

  • 作为内部 CFD 团队的能力测试 —— 新人入组时,Ahmed body 是标准 onboarding 任务
  • 作为湍流模型的对比基准 —— k-ε、k-ω、SST、RSM 等模型在 Ahmed body 上的精度差异是工业 CFD 文献的常见主题
  • 作为 OpenFOAM 验证案例 —— 本书的 Ahmed body 配置文件可直接用于 OpenFOAM 二次开发测试
  • 作为 CFD 课程教学案例 —— 适合研究生 CFD 课程的"综合实战"环节

读者可以基于本章给出的配置文件,直接跑通一个 Ahmed body 仿真,并尝试修改参数(Re、湍流模型、网格细化级别)观察结果变化。这是工业 CFD 学习的"标准入门路径"。

重要参考文献

  • [X1] Ahmed S.R., Ramm G., Faltin G. (1984) Some salient features of the time-averaged ground vehicle wake. SAE Technical Paper, 840300. (Ahmed body 原始实验文献)
  • [X2] Lienhart H., Stoots C., Becker S. (2002) Flow and turbulence structures in the wake of a simplified car model (Ahmed model). Notes on Numerical Fluid Mechanics, 77: 323-330. (Ahmed body 实验数据补充)
  • [X3] OpenFOAM Foundation (2014) The Open Source CFD Toolbox — User Guide. (OpenFOAM simpleFoam / snappyHexMesh 文档)
  • [X4] OpenFOAM Foundation (2014) OpenFOAM: The Open Source CFD Toolbox — Programmer's Guide. (OpenFOAM 实现细节)
  • [X5] Menter F.R. (1994) Two-equation eddy-viscosity turbulence models for engineering applications. AIAA Journal, 32(8): 1598-1605. (SST 湍流模型)
  • [X6] Patankar S.V., Spalding D.B. (1972) A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows. International Journal of Heat and Mass Transfer, 15(10): 1787-1806. (SIMPLE 算法)
  • [X7] Rhie C.M., Chow W.L. (1983) Numerical study of the turbulent flow past an airfoil with trailing edge separation. AIAA Journal, 21(11): 1525-1532. (Rhie-Chow 插值)
  • [X8] Jasak H. (1996) Error Analysis and Estimation for the Finite Volume Method with Applications to Fluid Flows. PhD Thesis, Imperial College. (OpenFOAM 早期开发者的博士论文)
  • [X9] Moukalled F., Mangani L., Darwish M. (2016) uFVM source code. https://feaweb.aub.edu.lb/research/cfd. (uFVM 教学代码)
  • [X10] Ferziger J.H., Perić M. (2002) Computational Methods for Fluid Dynamics, 3rd Edition. Springer.
  • [X11] Versteeg H.K., Malalasekera W. (2007) An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd Edition. Pearson.