Fluent真串行与假串行辨析:UDF学习前的重要一课

这个题目听了很多人可能有点懵圈,但一旦你涉及Fluent UDF编程就需要深入了解了。首先看一下下图中真串行和并行的差别,可以看到真串行是一个独立的计算模块,负责所有网格的单独计算,相当于自己管自己的“独行侠”,而并行则是网格剖分成若干个分区计算节点(图中举例是3个核并行计算),网格的计算都在这些分区节点上计算,然后另外多出一个host的协调模块,负责各个分区节点数据交换以及与图形界面沟通的协调工作。网上以前有个形象的比喻,分区节点类似于各个学生,专门做作业,host相当于布置作业的班主任,负责收集作业,协调学生之间关系。


早期Fluent就是如此设计的,真串行和并行是有两套独立的可执行程序,或许Fluent为了减少工作量统一到一套程序,高版本的Fluent就有抛弃真串行的趋势,引入了如下一个分区节点实现的并行,我们称之为“假串行”。这种情况实际还是并行架构,只不过网格在一个分区节点上计算,写UDF时候还得按照并行来考虑


在较高版本Fluent自带启动面板的“Serial”模式,字面意思是“串行”,实际已经不再是真串行,而是1个分区节点的并行,这就是我们称之为“假串行”的原因。


当然,中期版本Fluent也给大家留了一些过渡的余地,要实现真串行可以选“Parallel”然后将分区节点数里面设为“0”,或者在命令行里面敲类似“fluent 3d -t0”的命令。

 


可惜的是在高版本Fluent中,连这些“曲线救国”方法也取消了,只有第三方开发的VC++ UDF Studio插件才用技术手段调出了隐藏的真串行。下表列出了真串行在不同Fluent版本以及VC++ UDF Studio插件中的支持情况。

Fluent版本Fluent自带图形启动器上Serial为真串行?Fluent自带图形启动器上利用0核并行启动真串行?命令行 –t0启动真串行VC++UDF Studio插件启动真串行
6.3 ~ 18.1允许允许允许
18.2 ~ 2019R3允许允许允许
2020R1~2020R2禁止允许允许
2021R1~2022R1禁止禁止允许
2022R2禁止禁止禁止

由上表可知,Fluent越来越抛弃真串行,而将程序统一为并行架构。这无疑一下子提升了UDF的门槛,不仅要学习UDF语法,还要考虑并行网格分区,host与node的协调等,对初学者来说是个坏消息。因此,对于喜欢使用高版本Fluent的初学者,建议第一步可以借助VC++ UDF Studio插件中的串行启动来实现真串行(对Fluent 2022R2开始插件也无能为力了),这样可以暂时不考虑并行架构,等熟悉UDF基本用法后再深入学习并行的UDF架构。




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

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空