本篇章主要介绍Fluent Meshing关于体网格生成与质量优化的相关操作及工具,具体内容如下:
▆ 模型导入
▆ BOI尺寸控制
▆ 体网格类型解析
▆ 体网格生成&边界层
▆ 体网格自动优化
▆ 讨论
01-模型导入

本篇章模型来源ANSYS官方案例,模型格式为*.msh.gz,是一个汽车的外流场模型,面网格封闭性良好,但面网格尺寸不甚合理,体网格生成前需要进行尺寸控制,并采用BOI块对模型进行局部加密,控制体网格尺寸_
[注意]
✦ 之前关于介绍面网格诊断与修复的篇章用的也是该模型,但模型细节略有差异,本篇章网格封闭性良好,可直接尺寸控制后进行体网格生成;
✦ 不了解模型导入与尺寸控制的小伙伴可以翻阅之间的篇章,本次采用的BOI块为体网格形式,文件为*.msh.gz格式,与之前略有差异;
02-BOI尺寸控制

用来局部加密的BOI块文件为*.msh.gz格式的网格文件,通过File_Read_读入BOI块,位置如上图所示_
提取模型的特征线,用于尺寸控制_
选中所需要的Mesh Object_右键_Wrap_Extract Edges_

对模型设置全局尺寸,添加曲率控制、狭缝控制、BOI控制等,与之前篇章「尺寸控制与面网格重构」的区别在于,Object Type选择Mesh,即本次通过网格来选择局部尺寸控制的作用区域,尺寸可依据需要自行设定,完成后通过Remesh Faces进行面网格重构_

上图可以看到BOI块区域内网格进行了加密,体网格生成时也可利用该BOI控制体网格的尺寸_
本小结意在介绍BOI块加密的使用方法(因为较之前篇章稍有区别),具体尺寸依据需要自行设计,也可以在其他位置生成BOI块导入该模型进行BOI尺寸控制_
[注意]
✦ 之前介绍「尺寸控制与面网格重构」的篇章是在Geometry Object的基础上进行的,采用的BOI块是几何中的体,以几何形式存在,本篇章采用的模型格式为*.msh.gz格式,操作均在Mesh Object的基础上进行,采用的BOI块是体网格,以*.msh.gz格式的网格形式存在,较之前略有差异但原理相同;
✦ 导入BOI块时切记勾选Append,才能在保留已开启模型的前提下导入BOI块;
✦ BOI块可采用几何体或者体网格的形式,作用仅仅是标记一块区域用于尺寸控制,BOI块自身的网格并没有实际意义;
✦ BOI块只需要在空间位置上与所需要加密的区域重合即可,不需要其他关系,可以自行画一个BOI块(几何体或者体网格均可)导入试试;
03-体网格类型解析
Fluent Meshing体网格生成时可选择Tet(四面体网格)、Hexcore(六面体核心网格)、Poly(多面体网格)、Poly-Hexcore(马赛克网格)。
▇ Tet(四面体网格)

面网格(2D)全部为三角形面网格时,体网格(3D)全部采用四面体网格;面网格(2D)中存在部分四边形面网格时,体网格(3D)主体采用四面体网格,四边形面网格附近生成金字塔网格;边界层为三棱柱单元;
▇ Hexcore(六面体核心网格)

面网格(2D)只能包含三角形面网格,体网格(3D)核心部分采用六面体网格,周边会采用四面体或金字塔网格过渡,边界层为三棱柱单元;
▇ Poly(多面体网格)

面网格(2D)只能包含三角形面网格,体网格(3D)采用多面体网格,体网格生成后面网格(2D)自动转化为六边形面网格;边界层为六棱柱单元;
▇ Poly-Hexcore(马赛克网格)

面网格(2D)只能包含三角形面网格,体网格(3D)核心部分采用六面体网格,部分位置采用多面体网格过渡,体网格生成后面网格(2D)自动转化为六边形面网格;
边界层为六棱柱单元;
Fluent Meshing原则上是不支持全六面体网格生成的,如果需要在某一区域生成全六面体网格,那么只能通过类似拉伸边界层的方式来获得全六面体网格或者三棱柱网格,这其中还涉及到体网格节点拼接的问题,后续再行分享,当然以上是在要求模型必须全部共节点的情况下考虑的,嫌麻烦也可以采用Interface做数据交互_
[注意]
✦ 以上仅仅是Fluent Meshing中的体网格类型介绍,不同软件的体网格生成也不尽相同; ✦ 如果面网格(2D)中存在四边形面网格,那体网格便只能选择Tet(四面体),因为Hexcore(六面体核心网格)、Poly(多面体网格)、Poly-Hexcore(马赛克网格)均不支持面网格(2D)中包含四边形面网格单元;
✦ 如果想要模型完全共节点,且模型中存在部分区域必须要使用全六面体网格或三棱柱网格,那就意味着面网格(2D)中肯定会存在四边形面网格,那其他位置的体网格便只能选择Tet(四面体);
✦ Poly(多面体网格)、Poly-Hexcore(马赛克网格)在体网格生成后面网格(2D)会由原来的三角形面网格自动转化为六边形面网格,由于添加了边界层的原因,Tet(四面体网格)、Hexcore(六面体核心网格)的面网格(2D)在边界层附近位置也会发生些许变化;
✦ 可通过Mesh_Prisms_进行边界层拉伸来获得全六面体网格或三棱柱网格_
04-体网格生成&边界层
检查面网格封闭性、质量,边界条件类型,确认无误后可在结构树选择需要的Mesh Object通过Volumetric Regions_右键_Compute_进行体网格区域计算_ 选择需要的Mesh Object_右键_Auto Mesh_进行体网格生成与边界层设置等_

体网格的填充设置可采用Geometric(现存网格尺寸)或Size Field(尺寸函数)来控制,通过Geometric(现存网格尺寸)控制需要设置生长率和最大网格尺寸,通过Size Field(尺寸函数)控制,就是利用之前设置的尺寸函数(全局尺寸、曲率控制、狭缝控制、BOI控制等)来控制,选择此项才可以利用BOI块控制体网格的尺寸_

关于边界层是什么?为什么要添加边界层?以及边界层厚度如何计算?之前篇章做过一个简易介绍,可自行查阅,对于不同的近壁面处理策略,边界层的设置也会不同,暂时先不考虑这些_
关于边界层的设置问题,控制方法也比较多,我也不是全都了解,仅对了解的简易介绍,一般都可以设置边界层的层数,通过不同的方法控制每一层边界层的厚度,比如给定第一层边界层的厚度、比如采用纵横比的方式、并设置生长率等等。还需要设置边界层的区域,即需要在哪些面上生成边界层,可以选用较为简单的模型自行尝试一下,通过测量边界层的厚度了解每一种方法,对此不是特别了解,不多赘述_ [注意]
✦ 可通过Boundary(左上角File旁边)_Manage_进行边界条件检查与更改;
✦ 也可以通过顶部窗口上的Mesh_Auto Mesh_进入体网格生成设置模块,在里面选择需要生成体网格的Mesh Object;
✦ 模型较为复杂时,体网格生成前建议对计算域进行类型设置(右键_Change Type),可将不需要生成的体网格设置成Dead,在体网格生成时设置不保存Dead区域;
✦ 纵横比就是边界层附近的网格尺寸与边界层第一层厚度的一个比值,这个方式相对简单方便,要求不高话可以采用这个;
05-体网格自动优化

体网格生成后可通过右键_Summary_对体网格进行质量检查,网格质量不佳时可利用Auto Node Move(体网格自动优化工具)进行体网格质量提升,一般设置一个Skewness(歪斜度)的最大值,设置一个Iterations(迭代步数)优化即可满足需求,更多的设置与操作可自行尝试_
一般检查网格的Skewness(歪斜度)即可,如有特殊需要,可通过_Report_Quality Measure_修改检查的衡量标准;
06-讨论
✦ 本篇章简易介绍了BOI尺寸控制、体网格类型解析、体网格生成、边界层设置、体网格自动优化等;
✦ 每个软件都有各自的优势和弱点,Fluent Meshing体网格生成速度快、质量高、支持自动优化、体网格类型多、但是在全六面体网格或三棱柱网格方面就变得相当棘手,尤其是体网格节点拼接相当麻烦,我时常用Fluent Meshing对Hypermesh的面网格进行体网格生成,当然在涉及一些全六面体网格的区域时会将体网格导回Hypermesh进行节点合并;
✦ 如果不会或没有Hypermesh,上述情况就会比较麻烦,需要在Fluent Meshing中进行体网格拼接使不同的体在接触位置保持节点位置一致,且需要在Fluent中进行节点合并,后续再行分享;
✦ 模型文件分享![仅供学习交流使用]
https://pan.baidu.com/s/1FZ_qv6hAJMjA3MvKA9lKxA
提取码:pcfd
❖ 可能会存在描述错误或理解不足等问题,欢迎指正交流_
❖ 可通过以下方式联系博主,欢迎指正交流~
❖ 点个关注不迷路幺~

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删