内容提要
精度和效率是一直 CAE 工程师追求的两大目标。有限元分析中,前处理大概占据工程师70%的时间,而网格划分又是整个前处理过程中占据时间最多的,因此 CAE 工程师们不断地研究提升网格划分效率的方法。
本期文章将介绍 SimLab 多核并行网格划分方法,帮助大家进一步提高网格划分效率。
01
多核并行网格划分参数介绍
SimLab 支持两种模式的多核并行网格划分算法:多零件并行和单零件并行。
多零件并行网格划分指几何模型装配体中有多个零件,对应 SimLab 软件中的多个 body,软件给每个零件分配一个核进行网格划分,实现并行网格划分;
单零件并行网格划分指整个几何模型中只有一个零件,对应 SimLab 软件中的一个 body,软件调用多个核同时为该零件划分网格,实现并行网格划分。
“多零件并行”算法设置方法如下:
将 File > Preferences > Applications > Options > Number of cores 参数设置为大于1的数字。
激活多核网格划分选项1
“单零件并行”算法设置方法如下:
将File > Preferences > Applications > Options > Number of cores 参数设置为大于1的数字;
同时将 File > Preferences > Mesh > Use Multi-thread surface mesher (Parasolid) 选项激活。单零件并行算法只支持 Parasolid 格式的几何模型,若几何模型是其他格式,请使用 File > Import > CAD: Translated Geometry 方法将几何模型转化为 Parasolid 格式。
激活多核网格划分选项2
02
并行网格划分效率测试
两种划分网格的并行算法效率如何呢?下面开始测试。
01
多零件并行算法测试
测试几何模型格式为 Parasolid 格式,装配体中共有4个零件,总体尺寸为 204 x 197 x 76 mm,网格尺寸为3mm。分别测试三种网格划分方法下的并行效率:基于几何划分面网格,基于面网格划分四面体网格,基于几何划分四面体网格。
对于每种网格划分方法,分别测试不开启 Multi-thread surface mesher 选项时,分别使用1核、4核和12核的情况下划分网格所需要的时间,即表格中第二三四列对应数据;另外测试开启 Multi-thread surface mesher 选项时,分别使用4核和12核时划分网格所需要的时间,即表格中第五六列对应数据。
测试结果如下表所示:
由上表可得如下结论:模型中有多个零件时,激活 Number of cores 选项,基于几何划分面网格,多核并行能提高效率,基于面网格划分四面体网格,多核并行能提高效率,基于几何划分四面体网格多核并行不能提高效率。
02
单零件并行算法测试
测试几何模型格式为 Parasolid 格式,装配体中只有1个零件,总体尺寸为 400 x 426 x 190 mm,网格尺寸为5mm。测试方法与多零件并行算法测试中保持一致。测试结果如下表所示:
由上表可得如下结论:模型中只有一个零件时,同时激活 Number of cores 和 Use Multi-thread surface mesher (Parasolid) 两个选项,基于几何划分面网格,多核并行能有效提升网格效率,但当核数大于4核后效率不会明显提升;基于面网格划分体网格,多核并行不能提高效率,基于几何划分四面体网格,多核并行不能提高效率。
03
多核并行网格划分参数推荐
几何模型中有多个零件时,只激活 Number of cores 选项,且设置的核心数不超过零件个数;
几何模型中只有一个零件时,同时激活 Number of cores 和 Use Multi-thread surface mesher (Parasolid) 选项,设置的核心数不超过4核。
03
自动化脚本中如何
设置多核并行网格划分
若想在用脚自动划分网格时,设置多核并行划分网格,该如何设置呢?
SimLab 2021.1 及之后的版本提供二次开发接口 setUserDefinedSettings 可满足需求,用法如下:
1)在 File > Preferences 菜单中设置好多核并行参数,击右下角的 Export 按钮,然后将设置导出后缀为 ini 的文件;
2) 在 Python 脚本中加入如下所示的一行代码,即可载入多核并行设置参数,请将代码放到网格划分对应的代码之前。
simlab.setUserDefinedSettings(r"D:\OneDrive - Altair Engineering, Inc\technical document\SimLab\wechat_article\20220327_multi_threading_mesh\4core.ini")
顺便提醒,修改某些 Preference 面板参数需要重新启动 SimLab 才会生效,可在 SimLab 中定义名为“SL_USER_DEFINED_SYSTEM_SETTING_FILE”的环境变量,环境变量值设置为 ini 文件完整路径。