返回随笔列表

个人

格子怎么切:CFD 的第一步

用 ONERA M6 机翼的课程项目,讲 CFD 为什么要切网格、结构网格和非结构网格的区别、y+ 是什么,以及网格质量怎么影响结果。

2026年9月13日

CFD(计算流体力学)论文里最显眼的是彩色的压力云图,可实际做一次就会发现,大部分时间花在算之前的切网格上,结果准不准也主要看这一步。

为什么要切格子

描述空气流动的纳维-斯托克斯方程,除了少数简单情况,写不出解析解。CFD 的做法是把机翼周围的空间分成几百万到上千万个小格子,在每个格子里近似求解,再拼成整个流场。格子太粗会把细节抹掉,太细算不动,形状太差方程又容易解不稳。

两种网格

结构网格像方格纸,格子按行列排好,每个格子的邻居都是固定的。它能贴着机翼表面一层层排列,达到同样精度需要的格子更少,边界层和激波附近也算得更准。缺点是几何形状一复杂就很难排,经常要手动分块,比较依赖经验。

非结构网格像铺碎石,用三角形、四面体自动填满空间。复杂几何也能自动生成,局部加密方便,上手快。代价是要达到同样精度通常需要更多格子,还容易出现又扁又歪的格子。

贴着机翼的那一层

空气流过机翼时,贴着表面的空气速度几乎为零,往外很薄一层里速度迅速恢复,这一层叫边界层。摩擦阻力和气流会不会分离都跟它有关,所以这里的网格要切得特别细。

判断够不够细,常用的指标是 y+。它把第一层格子到壁面的距离,按当地流动条件换算成一个无量纲数。y+ ≤ 1 说明第一层格子落在边界层最里面、黏性作用最强的那一薄层里。

ONERA M6 项目里,我们按 y+ ≤ 1 反推第一层网格的厚度,算完所有 y+ 都在 0.75 以下。我们还按平板假设估算了边界层厚度,大约 1.23 厘米,然后多加了几层膨胀层来确保覆盖。膨胀层是贴着壁面、一层比一层厚的扁格子,专门用来捕捉边界层。

ONERA M6 机翼

ONERA M6 是一块后掠、无扭转的机翼,1972 年在风洞里测得很细。因为数据质量高,几十年来一直被用来检验 CFD 程序。

我们算的是马赫数 0.84 的跨声速工况。气流流过上表面时会加速到超声速,再突然减回亚声速,这个突变就是激波,ONERA M6 上表面有一道很有名的 λ 形激波。激波很薄,压力却在这里跳变,网格不够细就捕捉不到。我们先用约 600 万节点的粗网格算了一遍,看到上表面激波很强,就把加密区往上表面和后缘方向扩大,加密后的网格有 840 万到 1120 万节点。

格子的形状

网格质量常看两个指标。长宽比是格子最长边和最短边之比,膨胀层的格子本来就扁长,但太扁会放大数值误差。偏斜度表示格子偏离理想形状的程度,0 最好,接近 1 说明格子快被压成一片了,很难算稳。

我们的网格平均长宽比 284.58,最大偏斜度 0.977,两个都偏高,这是在当时的算力下用非结构网格能做到的折中。结果里也看得出来:压力系数分布的形状和趋势跟风洞数据一致,但越靠近翼尖差得越多。报告的结论是下一步改用结构网格,从源头上改善网格质量。

几点体会

做完这个项目,我看仿真结果的方式变了一些。云图再好看,也要跟试验数据对比过才能信。同一个求解器换一套网格,结论可能完全不同,所以网格应该和结果放在一起评估。先粗后细也省事,粗网格能先看清流场的大致样子和难点在哪,再决定把算力用在哪里。报告里把翼尖对不上、网格质量偏差和下一步怎么改都写清楚了,我觉得这部分对之后做同一个题目的人最有用。

完整报告在项目页

返回随笔列表