首页/文章/ 详情

SimLab技巧丨多核并行提高网格划分效率

8月前浏览3768

内容提要


精度和效率是一直 CAE 工程师追求的两大目标。有限元分析中,前处理大概占据工程师70%的时间,而网格划分又是整个前处理过程中占据时间最多的,因此 CAE 工程师们不断地研究提升网格划分效率的方法。


本期文章将介绍 SimLab 多核并行网格划分方法,帮助大家进一步提高网格划分效率。



01

多核并行网格划分参数介绍


SimLab 支持两种模式的多核并行网格划分算法:多零件并行和单零件并行。


多零件并行网格划分指几何模型装配体中有多个零件,对应 SimLab 软件中的多个 body,软件给每个零件分配一个核进行网格划分,实现并行网格划分;


单零件并行网格划分指整个几何模型中只有一个零件,对应 SimLab 软件中的一个 body,软件调用多个核同时为该零件划分网格,实现并行网格划分。


“多零件并行”算法设置方法如下

将 File > Preferences > Applications > Options > Number of cores 参数设置为大于1的数字。


 

激活多核网格划分选项1


“单零件并行”算法设置方法如下:


  1. 将File > Preferences > Applications > Options > Number of cores 参数设置为大于1的数字;


  2. 同时将 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 文件完整路径。


来源:Altair澳汰尔
SystemSimLab二次开发pythonUMAltair
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-03-07
最近编辑:8月前
Altair澳汰尔
澳汰尔工程软件(上海)有限公司
获赞 142粉丝 478文章 746课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈