有些人第一次在Fluent Meshing里折腾边界层,设置完一算,湍流模型用的k-omega SST,壁面y+却跑到80多,结果分离区全乱套。也有人照着教程设置了15层边界层,结果生成体网格后一看,还是只有面网格,当场怀疑人生。这篇文章就把我这些年用Fluent Meshing做边界层网格的整套思路、计算公式、参数设置和踩坑记录都捋一遍:从y+怎么换算成第一层网格高度,到Fluent Meshing里每一项参数到底该怎么填,再到生成体网格后怎么验证边界层是否真的生效,以及那个让不少人蒙圈的“生成体网格出来还是面网格”的问题到底怎么回事。适合刚接触Fluent Meshing、或者已经入了门但对边界层参数心里没底的朋友参考。
1. 先搞懂y+:边界层网格的核心标尺
1.1 y+究竟是什么,为什么设置边界层时绕不开它
y+在CFD里是个无量纲量,它的定义是:
y+ = ρ u_τ y / μ
其中ρ是流体密度,u_τ是壁面摩擦速度,y是第一个网格节点到壁面的法向距离,μ是动力粘度。从物理意义上讲,y+表示的是第一层网格中心点距离壁面的“无量纲距离”,它代表的不是几何尺寸,而是你把这个节点放到了边界层内哪个相对位置。
很多新手会把“y+等于1”和“第一层网格高度要设成0.001mm”画等号,这其实是不准确的。同样的几何、同样的来流条件,不同位置的壁面摩擦速度u_τ是不一样的,所以即使要求全壁面y+≈1,各处的第一层网格高度也是不同的。我们做工程网格时不可能每个点单独设高度,所以通常的做法是:找整个计算域中最苛刻的位置(一般是前缘、冲击点或高流速区),估算出足够小的第一层网格高度,让这些关键位置的y+满足模型要求,其余区域的y+自然会更小一些,问题也不大。
理解y+还要知道边界层本身的分层结构。常见的划分是这样:
- 粘性底层(0 < y+ < 5):流动几乎是层流状态,粘性力占绝对主导;
- 过渡层/缓冲层(5 < y+ < 30):粘性力与湍流应力相当,这个区域难以用简单的壁面函数精确描述;
- 对数律区(30 < y+ < 300):湍流应力主导,平均速度剖面满足对数律关系。
如果你的第一层网格节点落在粘性底层内,说明你在直接解析壁面的粘性影响,也就是低雷诺数方法。如果你的第一层网格节点落在对数律区,说明你主要依靠壁面函数来模化近壁区。如果你把节点放在了5到30之间的缓冲层,那既没有解析到位,壁面函数假设又不成立,计算出的壁面热流和摩擦力就会有比较大的误差。这就是为什么说y+的取值直接决定边界层网格的根本思路。
1.2 不同湍流模型对y+的“口味”完全不同
在Fluent里选湍流模型的时候,其实已经隐含了对y+的要求。这可能是很多人忽略的地方。
| 湍流模型 | 壁面处理方式 | 目标y+范围 | 说明 |
|---|---|---|---|
| k-epsilon(标准/可实现) | 标准壁面函数 | 30 ~ 300 | 节点需放在对数律区,避免落入缓冲层 |
| k-epsilon(标准/可实现) | 增强壁面处理 | 1 左右 | 需要足够细的边界层网格 |
| k-omega SST | 自动壁面处理 | 1 左右 | 近壁区域解析粘性底层效果最好 |
| Spalart-Allmaras | 自动/低雷诺数 | 1 左右 | 外场空气动力学常用 |
| Transition SST | 低雷诺数转换模型 | 1 左右 | 要模拟转捩必须解析到粘性底层 |
这里有一个很重要的工程判断:如果你为了追求效率,用k-epsilon加标准壁面函数,那完全没有必要把y+做到1。你只需要保证y+在30到300之间,并且不要低于11左右,这样壁面函数才能正常工作。如果你用SST模型,又想捕捉分离和转捩,那y+就尽量控制在1附近。很多失败的仿真,不是模型选错了,而是y+和模型根本不匹配。
我个人的建议是:做外流、涉及分离和逆压梯度的工况,尽量用k-omega SST,同时把y+做到1的量级。做高雷诺数内部流动,比如管道、换热器,用k-epsilon加标准壁面函数,y+控制在30到100之间,可以有效控制网格数量。这里没有绝对的“标准答案”,一切以工程目标为准。
1.3 第一层网格高度怎么算:一套可复现的手算流程
一旦确定了目标y+,怎么换算成Fluent Meshing里的第一层网格高度?下面这套流程是工程上最常用的估算方法。
第一步,估算雷诺数。以外部绕流为例:
Re = ρ U∞ L / μ
其中U∞是来流速度,L是特征长度。比如U∞ = 30 m/s,L = 1 m,空气ρ = 1.225 kg/m³,μ = 1.84×10⁻⁵ Pa·s,那么Re ≈ 2×10⁶。
第二步,用平板经验公式估算壁面摩擦系数。常用的Schlichting公式:
Cf = [2 log₁₀(Re) - 0.65]^(-2.3)
把Re代入,log₁₀(2×10⁶)≈6.301,2×6.301-0.65=11.952,11.952^(-2.3)≈0.0033。
第三步,算壁面切应力:
τ_w = 0.5 ρ U∞² Cf
代入数值,0.5×1.225×900×0.0033≈1.82 Pa。
第四步,算摩擦速度:
u_τ = sqrt(τ_w / ρ)
u_τ = sqrt(1.82 / 1.225)≈1.22 m/s。
第五步,反推第一层网格高度y:
y = y+ μ / (ρ u_τ) = y+ ν / u_τ
如果目标y+=1,则y≈1.5×10⁻⁵ / 1.22≈1.23×10⁻⁵ m,也就是约0.0123 mm,合12微米。如果目标y+=50,则y≈0.61 mm。相差是非常大的。
这里要注意几点。这是基于平板边界层做的估算,实际几何有压力梯度、有曲率,前缘附近或冲击点位置的u_τ会更高。所以为了保险起见,往往把计算得到的y再乘一个0.5甚至0.2的系数,让关键位置的y+满足要求。另外,Fluent Meshing自带的边界层设置面板里也有一个y+计算器,原理就是上面这套公式,可以用它快速算。
还有一个经常被忽略的点:算出的第一层高度是与表面网格尺寸独立的概念。第一层高度只管法向,表面网格尺寸管切向。在Fluent Meshing中,边界层第一层高度可以远小于表面网格尺寸,这没有问题。但如果你把表面网格设得太粗,比如2 mm,而第一层高度只有0.012 mm,那么第一层网格的宽高比会非常大,有时候会影响收敛。所以最好让表面网格尺寸和第一层高度差距控制在合理范围内,除非算例确实有这个需求,一般不要超过两个数量级。
2. Fluent Meshing边界层参数逐个拆解
2.1 在哪儿创建边界层,两条路线别走错
Fluent Meshing里创建边界层,一般有两条路线。
第一条是Watertight Geometry Workflow,也就是水密几何工作流。从导入几何、修复几何、分配局部尺寸、创建表面网格、添加边界层,到最后生成体网格,是一条完整的向导式流程。在这个流程中,添加边界层是独立的一个步骤,界面里直接告诉你选择哪些面作为壁面,填入层数、增长率、第一层高度等参数。
第二条是经典界面操作。在表面网格已经生成好的情况下,右键模型树中的相关几何或区域,选择Insert -> Boundary Layer,然后手动选择需要添加边界层的面。这种方式更灵活,适合要做多种边界层区域的复杂算例。
从我的经验看,水密工作流更适合新手,条理清楚,不容易漏步骤。经典界面更适合老手微调,比如对不同的壁面面组设置不同的边界层参数。无论哪种方式,底层逻辑都是一样的:给指定的壁面创建一组法向拉伸的棱柱层网格,用来捕捉近壁流动。
需要特别留意的是,很多人会在“Sizing”里找到类似“Boundary Layer”的选项,或者把边界层和“Inflation”混淆。在Fluent Meshing里,边界层就是Boundary Layer,不要和表面网格尺寸(Size)搞混。表面尺寸控制的是三角形/四边形切向尺寸,边界层控制的是法向层数和拉伸比。
2.2 核心参数怎么填:Number of Layers、Growth Rate、First Height
这一节是重点中的重点。Fluent Meshing中创建边界层时,最核心的参数就这么几个。
Number of Layers,边界层数。默认值通常偏保守,工程上10到20层比较常见。层数太少,从壁面到主流网格的过渡会很突兀,湍流求解器对网格密度的突变非常敏感;层数太多,网格体积爆炸,尤其是在外流这种大尺寸计算域里。
Growth Rate,增长率。这个参数决定了相邻两层之间的厚度倍数。工程上1.1到1.2是常见区间。增长率的含义很直观:如果第一层高度是0.01 mm,增长率1.2,那么第二层是0.012 mm,第三层是0.0144 mm,以此类推。增长率越大,边界层总厚度增长越快,但网格质量下降也越快,尤其是在壁面曲率大的位置。我一般不建议把增长率直接拉到1.3以上,除非你非常确定那个区域的流动梯度没那么大。
First Height,第一层网格高度。这个参数直接由y+决定,就是上一节算出来的值。Fluent Meshing的边界层设置面板里给出了一个计算公式按钮,可以选择目标y+和湍流模型类型,自动算出第一层高度。这个功能很方便,但前提是你对来流条件和特征尺寸心中有数,不要机械点一下就用。
这三个参数的配合决定了边界层的总厚度。用等比数列求和公式可以估算:
H_total = h1 (r^n - 1) / (r - 1)
举个例子,h1=0.0123 mm,r=1.2,n=15,那么H_total≈0.0123×(15.407-1)/0.2≈0.886 mm。如果你的边界层物理厚度大约20 mm,那15层是远远不够覆盖边界层的,这时候要么增加层数,要么增大增长率。总厚度不够会导致边界层外部的体网格过渡过于剧烈,可能影响热通量和摩擦阻力的计算。
这里有一个常见的错误:只关注第一层高度,不看总厚度。第一层高度决定了y+,总厚度决定了边界层内能否有足够多的节点来解析速度剖面。这两个维度都必须满足。
2.3 边界层与表面网格尺寸的匹配,以及“隐藏选项”
设置边界层的时候,Fluent Meshing里还有几个容易被忽略的细节。
Transition Ratio,过渡比。它控制的是最后一层边界层与外部体网格之间的过渡速度。默认值0.2通常够用。如果这个值设得太大,边界层结束区域的网格体积变化会非常剧烈,影响收敛和精度。
Smooth Transition,光滑过渡选项。默认是开启的。这个选项让Fluent Meshing在边界层与体网格之间自动平滑过渡,生成更均匀的网格。我建议保持开启,除非你有特殊要求。
另外,在经典界面中,创建边界层时有一个输入框叫“Distance from Wall”,它可以直接指定总边界层厚度,让软件自动根据层数和增长率倒推第一层高度。如果你的算例中已经知道边界层厚度,用这个方式更方便。但要注意,这个选项和“First Height”是两种不同的输入模式,二选一。
表面网格尺寸与边界层第一层高度的匹配,是很多人踩坑的地方。表面网格一般控制在比第一层高度大几十倍到几百倍都可以接受。但如果你对同一曲面同时设置了全局尺寸和局部加密尺寸,边界层区域的外部体网格过渡就会受到表面网格自适应加密的影响,可能出现局部网格挤压。最稳妥的策略是:在主要壁面附近设置一个局部尺寸,让表面网格不会太粗;边界层外部再用一个稍大的体网格尺寸做过渡(比如通过BOI,Body of Influence)。
关于BOI,在Fluent Meshing里叫“体影响区”。它的作用是圈出一个局部区域,在这个区域内使用加密的体网格尺寸。对于外流问题,我强烈建议在需要捕捉尾迹、分离涡的区域添加BOI,因为如果没有它,边界层外部网格会迅速变得很粗,湍流涡结构根本解析不出来。BOI的边界不要直接贴在需要加边界层的壁面上,最好离壁面有一定距离,避免边界层生成时与BOI的尺寸约束打架。
2.4 多面体网格、切割体网格与边界层的适配
Fluent Meshing生成体网格时,常见的有Poly(多面体)、Poly-Hexcore(多面体核心六面体)、CutCell(切割体)等类型。边界层棱柱层与这些体网格类型的配合是有一个优先级顺序的。
Poly和Poly-Hexcore对边界层的兼容性非常好。边界层生成后,外部的多面体网格会自动桥接,网格数量适中,质量稳定,是大多数案例的首选。CutCell则需要注意,切割体网格在近壁区域的处理方式不同,有时会限制棱柱层的层数或导致边界层与切割体网格交界处出现不规则单元。除非是内部流动且几何非常规整的算例,否则我不建议在带复杂边界层的模型上用CutCell。
还有一个概念值得一提:边界层在Fluent Meshing中生成的是“棱柱层”,它与曲面上的三角形或四边形网格自动匹配,形成向法向方向拉伸的三棱柱或六面体层。所以你不需要自己手动设计边界层的拓扑,只需要给出参数,软件会自动处理。
3. 实战:从几何到边界层可用体网格
3.1 导入几何与表面网格准备,别急着开搞
在打开Fluent Meshing之后,第一步永远是导入几何并检查单位。这个比什么都重要。
很多几何文件在CAD软件里用的是毫米,导入Fluent Meshing后如果被识别为米,那所有尺寸都会放大1000倍。你在边界层里设置的First Height如果是0.0123 mm,实际作用到米制几何上就可能变成12.3 m,荒谬得很。所以在导入几何后,第一件事就是确认Scale,把单位调整为几何实际使用的单位。
几何检查也一样重要。水密工作流里有一个检查几何操作,如果显示有缝隙或缺口,你需要先用修复工具把它补好。边界层网格对几何封闭性的要求很高,因为表面网格必须是完整的封闭曲面,才能进一步生成体网格。几何漏水,边界层必然失败,这是连锁反应。
做完几何准备后,分配表面网格尺寸。这里分两步:全局尺寸和局部尺寸。全局尺寸控制计算域范围内的基准网格密度。对于外流,远处网格可以粗一点,但要保证不会严重扭曲几何形状。局部尺寸用于壁面、圆角、缝隙等需要加密的区域。如果你已经算出了第一层网格高度,那么壁面附近的局部表面尺寸建议设置为其500到1000倍以内。比如第一层高度0.0123 mm,壁面附近表面网格最好控制在6 mm以内,这样棱柱层的宽高比不会离奇得离谱。
3.2 创建边界层的具体操作步骤
下面进入核心操作。假设你用的是水密几何工作流,做完表面网格后应该是类似这样的流程。
先在“Add Boundary Layers”界面中,选择需要添加边界层的壁面。这个选择非常重要。很多人直接全选里面所有曲面,导致一些非壁面区域也添加了边界层,比如进口、出口,这会把边界层错误地加到不该加的地方,影响计算。正确做法是在几何上逐个选出真正的物理壁面,比如机翼表面、管道内壁、车身表面等。
然后填入参数。以我常用的设置为例:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Number of Layers | 15 | 视边界层厚度和网格预算调整 |
| Growth Rate | 1.2 | 第一次试算建议不超过1.2 |
| First Height | 按y+计算 | 例如0.0123 mm |
| Transition Ratio | 0.2 | 默认即可 |
| Smooth Transition | 开启 | 推荐开启 |
填完之后点击“Add Boundary Layers”。此时模型树里会多出一个边界层定义。我的习惯是,生成体网格前先查看一下边界层是否真的被创建了:在模型树中找到对应的边界层条目,右键选择显示,在图形窗口中边界层sizing范围会用颜色标注出来。如果发现颜色覆盖的区域和预期的壁面不一致,赶紧检查,不要等生成完体网格再后悔。
接下来进入“Create Volume Mesh”。这一步会真正生成体网格。如果你在前面创建了边界层sizing,这一步会自动把棱柱层铺到壁面上。选择Poly-Hexcore,点击生成。
生成完成后,日志区域会显示网格单元总数和最大偏斜度等信息。如果最大偏斜度在0.9左右甚至更高,就要警惕了,建议不要直接进求解器。
3.3 生成后怎么看,体网格还是面网格?
现在来好好说说那个让很多人崩溃的问题:fluent meshing创建体网格出来还是面网格。
先说结论:绝大多数情况下,你确实已经生成了体网格,只是在图形窗口里默认显示的是表面网格。因为整个计算域如果直接显示体网格,内部密密麻麻的单元会直接把图形窗口塞满,所以Fluent Meshing默认只渲染边界面上的网格。这不是错误,是显示策略问题。
怎么确认体网格是真的生成了?最简单的方法:在图形窗口里使用Clipping Plane,创建一个切平面,把计算域切一刀,你就能看到内部的体网格单元了。如果切面上能看到密密麻麻的多面体/六面体核心单元,那说明体网格早就生成了,只是它的真实面纱被默认显示隐藏了。
还有一种情况是工作流本身没走完。比如你在Watertight Workflow中只执行到了Generate Surface Mesh,后面Create Volume Mesh的按钮都没点。这种情况下,模型树里就没有Volume Mesh项,自然也没有体网格。解决办法很直接:继续往下执行流程。
第三种情况更隐蔽:你确实点了Create Volume Mesh,但Fluent Meshing在生成体网格时因为某些原因跳过了部分区域,或者体网格生成失败但界面没有弹出明显错误。这种情况下,模型树中Volume Mesh项的图标或状态可能不对,或者日志里出现“Failed to create volume mesh”的提示。解决方式一般是回头检查边界层sizing和表面网格是否有问题,尤其是几何环口或缝隙区域。
当你确认体网格存在后,如果想在图形窗口里直观看到体网格,可以这样操作:在模型树中隐藏所有边界标签(如wall、inlet、outlet等),然后在Volume Mesh或对应的体标签上点击显示。这样图形窗口就会显示计算域内部所有体单元。如果视觉上太乱,就配合Clipping Plane看切片。这个方法在检查边界层是否成功铺到壁面上特别有用:切开一个壁面附近区域,如果能看到沿着壁面法向层层排列的棱柱层,并且层数、增长趋势和设置的参数一致,那这道坎就算过了。
3.4 体网格质量检查,别急着求解
体网格生成后,第一件事不是进求解器,而是看质量。
Fluent Meshing自带的网格质量统计功能有几个关键指标:偏斜度(Skewness)、正交质量(Orthogonal Quality)、增长率(Growth Rate)。工程经验上,偏斜度最好低于0.9,正交质量最好高于0.1。如果偏斜度大于0.95,那大概率会在求解时出现发散或者收敛缓慢,这时候应该回头修复网格,而不是靠着松弛因子硬算。
对于有边界层的网格,还有一个很值得关注的点:边界层区域的网格质量。切面后仔细看棱柱层有没有出现交叉、重叠、负体积等现象。如果第一层高度设置得过小,而壁面表面网格又相对较粗,某些曲率半径很小的区域可能出现棱柱层单元被“压扁”甚至翻折的情况。这时要么减小表面网格尺寸,要么适当增大第一层高度,但要在y+允许范围内取舍。
如果在生成体网格时看到类似“Boundary layer could not be generated”之类的警告,常见原因包括:壁面附近尺寸与边界层总厚度严重不匹配、壁面曲率太大、几何存在非常窄的缝隙导致棱柱层没有空间伸展、或者多个边界层sizing重叠冲突。解决思路是逐项排查,优先检查几何缺陷,其次调整参数。
4. 常见问题与排查技巧实录
4.1 高频问题速查表
| 现象 | 可能原因 | 解决思路 |
|---|---|---|
| 生成体网格后只看到面网格 | 默认只显示表面网格,或工作流未执行到Create Volume Mesh | 用Clipping Plane切面;检查工作流步骤 |
| 边界层sizing创建了但生成后找不到 | 目标面未选中;边界类型不是壁面 | 重新创建边界层sizing,明确选择壁面 |
| 体网格生成失败或只有部分体网格 | 几何存在缺口;表面网格封闭性不好 | 修复几何,重新生成表面网格 |
| 最大偏斜度过高 | 局部尺寸突变;增长率过大;几何破损 | 加密局部表面网格;降低增长率到1.15 |
| y+远大于目标值 | 第一层高度偏大;来流局部速度高于估算值 | 按局部摩擦速度重新计算并降低First Height |
| y+远小于目标值 | 第一层高度偏小 | 适当增大First Height以节省网格 |
| 边界层覆盖了入口/出口区域 | 创建边界层时错误选择了非壁面 | 重建边界层sizing,精确选择壁面 |
4.2 边界层不生效的隐蔽原因
有些问题表面上不报错,但边界层实际上没有起到预期作用。这类隐蔽问题最耗时间。
第一个隐蔽原因是单位错误。几何单位不匹配,First Height输入的数字虽然是某个数,但实际生成出来的尺度完全不对。这种情况从外观上很难一眼识别,要通过Clipping Plane切面后测量实际棱柱层高度来验证。如果切面后看到第一层高度明显和设置差了好几个量级,优先怀疑单位。
第二个隐蔽原因是多个边界层sizing叠加在同一个面上。有些模型复杂,有人图省事,对同一个壁面添加了多个边界层sizing,或者既在局部Sizing里设了边界层,又在水密工作流里添加了边界层。这些sizing会相互干扰,生成结果可能不是你预期的那一套参数。解决办法是在模型树中检查边界层sizing列表,只保留一个,或者确保不同sizing覆盖的区域不重叠。
第三个隐蔽原因是几何中的小特征被删除或合并。比如一些倒角、凸台、铭牌等小几何特征,在表面网格阶段被自动简化掉了,你创建的边界层sizing针对的是原始面,但简化后面对应的区域发生了变化,导致边界层没有完全覆盖。这种情况在复杂几何中很常见。处理方式是在简化几何之前,先把需要保留的小特征标记出来,或者对关键区域单独创建局部尺寸。
第四个隐蔽原因是贴体棱柱层的法向方向反转。Fluent Meshing一般能自动识别壁面的法向,但遇到非常薄的区域或双面壁面时,边界层可能生成到几何体的外侧而不是流动域内侧。检查方法是切面后观察棱柱层的朝向,如果出现在固体一侧,那就需要手动反转或调整面法向。
4.3 我的避坑清单,照着做能省一半时间
分享几条我实际操作中沉淀下来的经验,这些内容一般在官方文档里找不到。
第一,第一次试算不要追求一步到位的y+。对于一个新的复杂几何,先用粗网格、较少层数(比如10层)跑一轮稳态,然后在后处理里看y+分布云图,搞清楚哪些位置y+超标,哪些位置网格太密。再根据云图调整第一层高度和局部加密区域。一次接通所有模块的边界层设置很容易翻车,分步走反而更快。
第二,边界层外部一定要安排过渡区。如果你只设置边界层而不设置BOI,边界层外侧的网格尺寸会迅速放大到全局尺寸,单元体积变化剧烈。这个突变虽然不影响y+,但对湍流求解的稳定性影响很大,特别是对SST模型。建议在关键壁面外围套一个BOI,尺寸取边界层总厚度的3到5倍,加密倍数取全局尺寸的20%到50%。
第三,保存多个版本。在创建边界层前后分别保存一次。如果后面调整参数,不要在原文件上覆盖,而是另存为新版本。这个习惯救了我太多次了——有一次我调整增长率后忘记检查,生成了一整片负体积,还好有备份能回滚。
第四,导入Fluent前在Meshing里先设置好边界条件的名称。边界条件命名清晰,比如wall_airfoil、wall_pipe等,后续在Fluent里识别起来非常方便。边界层sizing在选择壁面时也能直接按名字选,不用在几何上一点点找。
第五,创建边界层时注意“面”的概念。Fluent Meshing中的边界层是基于“面”创建的,这里的面是几何的一部分,不是单独的网格单元。如果你后续对几何进行了重新划分或修改了表面网格,原来的边界层sizing可能会失效,需要重新生成。所以修改几何后一定要检查边界层sizing是否还在。
第六,也是很多人忽略的一点:边界层sizing创建后,如果修改了增长率或层数,点击Apply后并不会立刻更新到体网格。你需要重新生成体网格才能看到变化。很多人以为参数改了就行,结果体网格还是旧的,白白浪费时间。Fluent Meshing不会自动重新生成体网格,一定要手动点击Create Volume Mesh。
最后再说一个经验。边界层网格这个东西,说到底是用网格密度换湍流解析精度。你用一个合适的y+、合适的增长率,边界层网格会把壁面的物理信息一层层传到主流区域,这时候求解器的压力梯度、摩擦阻力、传热系数才会准。很多仿真算出来趋势对、数值不对,回头一看就是边界层网格层数太少或者y+完全不在目标区间。把这个基本功打扎实了,后面无论是做气动优化还是散热设计,都能省下大量用来“调收敛”的时间。
在我自己上手Fluent Meshing的第一年,也经历过“看着教程设完参数,生成完体网格却不知道该怎么确认到底对不对”的阶段。后来养成一个习惯:每次生成完体网格,第一件事不是看残差,而是切一个剖面,盯着壁面附近的棱柱层看几秒钟,确认层数、厚度、贴体程度都符合预期,然后才放心进求解器。这一步花不了几分钟,但能避免后面无数个深夜的排查。希望这篇教程也能帮你建立起这个习惯。