边界层棱柱网格:工程设置与诊断验证
把棱柱层生成器的首层厚度、增长率、层数与最小厚度四个控制量写成互相约束的取值规则,用 1 m 弦长翼型算例算出 29 层方案,并给出 snappyHexMesh 加层配置。
边界层棱柱网格:工程设置与诊断验证
棱柱层生成器的参数不是四个独立旋钮:首层厚度由目标 定死,层数由覆盖率与增长率联合决定,增长率反过来受最小层厚约束。棱柱层最容易出现「看起来有、实际没用」的状态:层数足够、云图漂亮,但首层落在了缓冲层,或者棱柱总厚度没盖住边界层外缘。诊断这三个量——面积加权 y+、缓冲层面积占比、覆盖率——比看层数更能说明问题。
参数台账
交付需留下:、、、、 关联式与取值、、、目标 、、、、 与 及覆盖率、featureAngle、minThickness,以及计算后按面积统计的 分布。缺少 来源的记录在换流速或换介质后无法复用。
snappyHexMesh 加层配置
addLayersControls
{
relativeSizes false;
layers
{
"airfoil.*"
{
nSurfaceLayers 29;
firstLayerThickness 7.7e-06;
expansionRatio 1.25;
minThickness 7.7e-07; // 0.1 * firstLayerThickness
}
}
featureAngle 60;
nSmoothSurfaceNormals 10;
nSmoothNormals 3;
nRelaxIter 5;
nLayerIter 50;
}
relativeSizes false 时必须显式给出 firstLayerThickness;若设为 true,该字段表示相对于局部表面单元尺寸的比例,换网格尺寸后含义会变,不适合交付。featureAngle 60 让尾缘等锐边停止加层,避免层在尖角处塌陷。
分区复算脚本
壁面剪切沿弦长变化很大,必须分区统计而不是全场平均:
import numpy as np
nu, t1 = 1.5e-5, 7.7e-6 # 运动黏度 [m2/s],首层目标厚度 [m]
tau = np.array([6.70, 4.10, 12.5]) # 分区壁面剪应力 [Pa]
area = np.array([0.30, 0.55, 0.05]) # 分区壁面面积 [m2]
u_tau = np.sqrt(tau / 1.225)
yplus = u_tau * (t1 / 2) / nu
print("分区 y+:", np.round(yplus, 2))
print("面积加权 y+:", round(float((yplus * area).sum() / area.sum()), 2))
print("缓冲层面积占比: {:.1%}".format(
float(area[(yplus > 5) & (yplus < 30)].sum() / area.sum())))
加层生成器的四个控制量
snappyHexMesh 的 addLayersControls 里真正影响近壁精度的是四个量:firstLayerThickness(首层目标厚度 )、expansionRatio(相邻层厚比 )、numLayers(层数 )与 minThickness(层被压缩到目标厚度的多少比例以下就停止加层)。其余参数(nSmoothSurfaceNormals、nRelaxIter、featureAngle)只影响层能否贴住曲面,不改变设计口径。
minThickness 的默认值是 0.1,即层厚被压到 就放弃。这个值配合曲率决定了凸面上最多能加几层。
首层厚度由摩擦速度反算
首层厚度不能凭经验取,必须从目标 反算:
1 m 弦长翼型在 的常压空气中,,弦长雷诺数 。用湍流平板关联式 :
要壁面解析,取 :
对应首层单元高度约 0.0154 mm。若改用壁函数、,则 ,比前者大 30 倍。
层数由覆盖率与增长率联合确定
棱柱层总厚度按等比求和,覆盖率定义为总厚度与边界层厚度之比:
时 。取 ,目标厚度 ,增长率 ,解出层数:
取 ,实际总厚度 ,覆盖率 ,达标。若强行把 提到 1.4,同样 时 会涨到 0.0077×(1.4^29−1)/0.4 ≈ 0.0077×1.05×10^4 = 81 mm,远超边界层,纯粹浪费单元。
故障模式与判定试验
| 现象 | 根因 | 判定试验 |
|---|---|---|
| 后缘附近层数从 29 掉到 3 | 锐边两侧法向冲突,层被 minThickness 截断 |
把 featureAngle 从 60 降到 30,比较后缘层数 |
| 凸面中部层厚被压薄 | 曲率半径小于层厚增长所需空间 | 用局部曲率半径 与 比较,要求 |
| 覆盖率只有 0.6,外缘梯度断裂 | 层数按 估算但实际被截断 | 统计实际棱柱总厚度,重新解 |
| 首层 y+ 全在 3~8 | 按平板关联式估了 ,未考虑顺压梯度 | 用求解器 wallShearStress 分区反算 |
| 加层后核心区四面体质量骤降 | 棱柱外缘与四面体尺寸比过大 | 检查棱柱最外层厚度与相邻四面体尺寸之比,控制在 2 以内 |
| 首层 y+ 云图整片落在 3~10 | 前缘吸力峰使局部 远高于设计估值 | 分区统计 ,对高剪切区单独减小 |
| 壁面阻力对核心区加密不敏感 | 覆盖率 ,梯度断点在棱柱外缘 | 实测 ,补层数使 回到 1.05 以上 |
| 后缘层数骤降为 2~3 | 锐边两侧法向冲突 | 降低 featureAngle 或对后缘单独禁用加层 |
| 界面处压力出现锯齿 | 棱柱最外层与四面体尺寸比超过 3 | 统计界面两侧单元尺寸比,加一层过渡 |
| 分离点明显推迟 | 棱柱长宽比过大,流向数值扩散增强 | 表面间距减半,比较分离点位置变化 |
复算与验收
诊断结论需要同时给出:按面积统计的 最小值、最大值与分布、、实测 与覆盖率、界面尺寸比、以及棱柱长宽比。任何一项缺失都会让「棱柱层已达标」的结论无法被复核。特别地, 必须与实测 一起给出,只报 数值无法判断它是在什么剪切条件下得到的。
面积加权 y+ 与缓冲层面积占比
首层网格点落在哪里,只能用求解器实际给出的壁面剪切反算。壁面摩擦速度由 与 确定,逐面 由首层中心高度 换算:
1 m 弦长翼型的设计值取 、,设计阶段按平板关联式估得 ,目标 。求解器实际给出的前缘附近 ,于是
即真实 ,比设计值高 20%,仍在黏性底层内,可以接受。若某处实测 (强逆压梯度区),同样的 会给出 ,逼近缓冲层下缘。
必须按面积统计,不能只报平均值。 面积加权 与缓冲层面积占比为
同一算例上,若 达到 6.3%(主要来自前缘吸力峰与后缘),说明这部分壁面既不适合壁函数也没有解析黏性底层,目标量中的壁面阻力在这片区域上是不可信的。
覆盖率不足的识别
覆盖率是棱柱总厚度与实测边界层厚度之比:
设计时 、,。计算后用速度剖面找到 的位置,得到实际 (逆压梯度使边界层增厚),此时 。棱柱外缘落在对数律区内部,最外层棱柱与相邻四面体之间出现梯度不连续,表现为壁面阻力对核心区加密不敏感——因为梯度断点掩盖了分辨率变化。
判据: 应落在 1.0~1.2。 时先补层数,不要先加密核心区。
棱柱-四面体界面的尺寸跳变
最外层棱柱厚度为
核心区四面体平均尺寸 20 mm 时,界面尺寸比为 。这个跳变过大,会让界面处的对流项截断误差成为主要误差源。做法是给界面加过渡:把核心区表面尺寸降到 8 mm,尺寸比降到 2.0,或把 从 1.25 降到 1.15 使 降到 (此时需要更多层才能覆盖同样厚度,须重新解 )。
长宽比对流向数值扩散的影响
棱柱单元的长宽比由表面间距 与首层厚度决定:
高长宽比本身不破坏守恒,但会把流向的数值扩散放大到与流向梯度同量级,使分离点被推迟。诊断方法:把表面间距从 2 mm 加密到 1 mm( 降到 130),观察分离点位置是否前移。若前移超过 2% 弦长,说明当前网格的分离预测不可信。
参考资料
- OpenFOAM Foundation, OpenFOAM User Guide, snappyHexMesh 章节, 2023.
- ANSYS Inc., ANSYS Fluent User’s Guide, Boundary Layer and Prism Layer Meshing 章节, 2023.
- Menter F.R., “Two-Equation Eddy-Viscosity Turbulence Models for Engineering Applications”, AIAA Journal, 32(8): 1598-1605, 1994.
- Pope S.B., Turbulent Flows, Cambridge University Press, 2000.
- Spalding D.B., “A Single Formula for the Law of the Wall”, Journal of Applied Mechanics, 28(3): 455-458, 1961.
- Kader B.A., Yaglom A.M., “Heat and Mass Transfer Laws for Fully Turbulent Wall Flows”, International Journal of Heat and Mass Transfer, 15(12): 2329-2351, 1972.
- Wilcox D.C., Turbulence Modeling for CFD, 3rd ed., DCW Industries, 2006.
- White F.M., Viscous Fluid Flow, 3rd ed., McGraw-Hill, 2006.