几何清理通常被视为一项繁琐的工作,夹在 CAD 导出与真正有趣的部分之间。它理应获得不同的评价。花时间正确准备几何模型,能为仿真带来两方面的收益,而且两者都发生在生成第一个网格单元之前。
第一,它迫使工程师提前提出正确的问题:我究竟想从这次仿真中获得什么?哪些物理现象对这个答案至关重要?哪些几何特征影响了这些物理现象,哪些仅仅是因为零件需要制造和安装而存在?无论你是否有意识地提出这些问题,你所保留或删除的每个特征都是对这些问题的回答。
第二点由第一点引申而来。这些答案决定了仿真是否会变得不必要的昂贵。几何体中保留的每个特征都必须进行网格划分,然后在每次迭代中、在整个项目周期内进行计算。一个包含超过问题所需细节的几何体会浪费两次时间:一次在网格划分阶段,一次在每次运行中。
这也是工程师成长的地方。在每个项目中都提出这些问题,能让一名缺乏经验的工程师更快地成长为一名经验丰富的工程师,也能成为一名更优秀的工程师。那种舒适的做法是保留一切,让网格生成器和求解器去处理。更多的细节感觉像是更高的精度,但事实并非如此:它不会自动提升仿真质量,却会可靠地使仿真变慢,并将问题推移到后处理阶段——在那里,无关的细节会横亘在你与所需答案之间。思考本身无法委托给软件。软件能做到的是让行动变得简单:选取不重要的特征,一步将其删除,提取求解器所需的计算域,并为边界添加标签,从而无需猜测即可完成物理条件的设置。
以下是对三个步骤的实操介绍,这三个步骤位于 CAD 导出与仿真就绪计算域之间——无论该计算域是流体的有限体积网格、用于 FEM 分析的固体网格,还是粒子求解器所需的封闭表面。本文所使用的"清理"一词,涵盖了在生成第一个网格单元之前对几何体所做的一切操作:删除不属于计算域的内容、提取求解器所需的部分,以及为物理条件所依附的边界添加标签。有一点区别值得提前说明。在有限体积法工作流中,几何准备是不可或缺的:体网格会继承表面的每一处缺陷,这一步骤决定了是否能生成可用的网格。基于粒子的求解器则更为宽容,因为它只需要固体的表面网格,而不需要流体的体网格。这种宽容性会诱使工程师完全跳过思考过程。请抵制这种诱惑。上述问题无论如何都值得提出,凡是能够简化的地方就加以简化,这不仅能减少设置工作量,更能提升仿真本身的质量。
原始 CAD 导出的问题
CAD 模型是为了描述一个制造零件而构建的。仿真模型则是为了回答一个物理问题而构建的。这两者并非同一目标,满足前者的文件并不能自动满足后者。
具体来说,原始 CAD 导出会将两类问题带入仿真。第一类是制造所必需但与物理现象无关的细节:紧固件孔、螺纹细节、小圆角和倒角、浮雕文字。第二类是 CAD 环境可以容忍但仿真无法接受的缺陷:公差未能完全闭合而产生的面间间隙、两个零件未精确接触装配时产生的面重叠,以及重复或法向量反转的曲面。第一类会使仿真代价高昂。第二类则会导致仿真失败:在有限体积法工作流中表现为体填充失败,在粒子求解器中则表现为壁面边界上的间隙——流体会悄然从这些间隙中流出计算域。
步骤一:特征简化与修复
特征简化是指删除对仿真结果没有实质性贡献的几何细节。以壳体壁面上的一个紧固件孔为例:它对流动物理现象没有任何影响,但网格生成器仍然必须解析其边缘、在其周围构建过渡单元,并且通常需要对周边区域进行细化以保持可接受的单元质量。一个孔只是微小的干扰。而一个典型工业零件上数十个孔和圆角,将积累成网格数量和准备时间中可观的占比。
经验法则:如果一个几何特征小于你预期的仿真分辨率,它要么被少量质量低劣的单元所解析,要么迫使局部细化,使单元数量成倍增加,而不带来任何物理收益。两种结果都需要付出代价,且都不会改善仿真结果。
更难的是知道何时停止,因为答案取决于物理现象。实际问题始终如一:特征从什么长度尺度开始影响结果?对于边界层流动,这取决于该特征与边界层厚度及局部速度梯度的比较。在狭窄通道内的内部流动中,即使是微小的凸起也能改变流向。在齿轮箱壳体的外壁上,当仿真关注的是整体油液分布时,一排安装孔便无关紧要。而在结构 FEM 分析中,逻辑则完全相反:一个对流动无关紧要的小圆角,可能恰恰控制着应力集中,删除它会将有限的应力替换为尖角处的奇异应力。
在实践中,判断归结为三个问题:
- 删除特征的情形:当它小于仿真分辨率、位于流道之外,且不承载热量时。
- 保留特征的情形:当它计量流量(节流孔、油孔)、交换热量(散热翅片、加强筋),或形成流体必须通过的狭窄通道时。
- 存疑时,反问仿真要回答的问题。该特征要么对这个答案有贡献,要么没有。
以上所述只解决了上一节所述的第一类问题——即造成额外计算代价的细节。第二类问题——导致仿真失败的几何缺陷——是表面修复的任务:闭合面间间隙、删除重复曲面、修复法向量反转,并对表面进行缝合直至其水密封闭。这两类操作性质不同,但属于同一个工作环节。一个干净但存在泄漏的几何体,与一个水密封闭但仍携带所有紧固件孔的几何体,都同样无法直接用于仿真。
在 shonMesh 中,特征简化工作流通过智能选择按属性识别特征,并进行批量删除。其结果是一个已清理的表面,保留与仿真相关的几何体,丢弃其余部分。特征简化与分组案例研究 在一个发动机缸体几何体上逐步演示了这一过程。


步骤二:体域提取
如果你使用基于粒子的求解器,此步骤不一定适用:粒子仿真需要固体本身,而不是流体域,但在某些粒子仿真设置中,提取出的体域也很有用,例如将封闭区域填充粒子作为初始条件。FEM 分析同理:固体本身就是计算域,无需进行提取。而在有限体积法 CFD 中,情况恰好相反。流体域是核心部分,也是网格划分的对象。固体几何体是该计算域的边界,而非其内容。CAD 文件描述的是固体;仿真所需的是其反转形态。
对于简单的外部流动案例,这一区别尚可处理。但对于内部流动问题——例如流体流过阀体、冷却液流过热交换器,或电机壳体周围的水套——流体域被封闭在固体几何体内部,在 CAD 文件中没有直接的表示形式,需要对其进行提取。而当流体与固体共同参与仿真时,如共轭传热分析,则需要同时获得两个计算域,它们应干净地分开并在共享界面处精确匹配。
体域提取获取封闭的固体几何体,识别其中的封闭空间,并生成流体域。在 shonMesh 中,体域提取功能可在单次操作中完成:原始几何体、封闭曲面以及提取出的流体体积作为关联工作流的输出一并生成。流体域随后可直接进行网格划分,无需手动重建内部曲面。体域提取案例研究 展示了该操作在一个管件上的应用。

步骤三:边界分组
第三步使开篇最后一个问题变得具体:哪个表面承载哪种物理条件?在生成网格之前,几何体上的表面片区需要根据其在求解器中将承载的边界条件进行分组和标注。入口、出口、壁面边界、对称面、旋转面和接触界面在仿真中均需不同处理,这种区分需要在离开网格划分环境之前编码到网格中。与体域提取不同,此步骤完整适用于两类求解器。在基于粒子的润滑仿真案例中,齿轮齿面是旋转壁面,喷油嘴是入口,壳体是静止壁面——求解器只有在表面网格加以说明的情况下才能区分它们。
另一种做法——在网格划分之后通过在求解器中手动选择面来施加边界条件——是脆弱的。面的选择在网格细化后往往无法干净保留,在团队成员之间也难以复现,而且在具有许多不同边界区域的几何体上会变得难以管理。在网格划分工具中预先分配分组,意味着标签被嵌入网格文件中,在导入时自动应用,与网格分辨率或单元类型无关。
在 shonMesh 中,边界分组通过 Face Patch 功能进行设置。在网格生成之前,对曲面进行选择、分组和命名。分组标签自动延续到表面网格,再延续到体网格,在导出的网格文件中以命名边界集的形式呈现,无需任何后处理即可映射到求解器中的边界条件。
收益:网格划分成为轻松的一步
在几何体完成特征简化和修复、流体域已提取、边界已分组之后,网格生成便不再是一个排查问题的过程。在此处展示的案例中,shonMesh 首先以全局和局部尺寸控制构建三角形表面网格,然后在其基础上生成固体的四面体体网格——即热分析 FEM 所使用的网格。而像 shonDy 这样的粒子求解器根本不需要体网格:它直接在封闭表面网格上工作。无论目标是什么,在已准备好的几何体上,这都是工作流中最简短的一步。这不是因为网格生成器更努力,而是因为已经没有任何绊脚石留给它了。

结论
网格划分领域的文献往往聚焦于单元类型、质量指标和细化策略——这些都很重要,但如果交给网格生成器的几何体存在破损、过度细化或相对于求解器所需的几何形态发生了反转,这些内容都将无济于事。
本文介绍的三个步骤——特征简化与修复、体域提取和边界分组——不仅仅是预处理。它们是你决定仿真目的、需要解析的内容以及可以安全忽略的内容的地方。那些深思熟虑地做出这些决定的工程师,能够获得更快的仿真速度和更清晰的结果,而且每次做出这些决定时都会变得更加熟练。工具的存在使得执行这些决定只需数分钟。而思考,需要由你来完成。shonDynamics 案例研究库 中的案例完全遵循这一流程。
如果你想在自己的几何体上尝试这一工作流,请申请 3 周试用,工程师将引导你完成安装和第一个案例。
