许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Fluent UDF新手入门:常见问题与中文教程下载

Fluent UDF新手入门:常见问题与中文教程下载

阅读数 2442
点赞 0
article_banner

Fluent UDF

许多学习了一段时间Fluent的朋友们会开始接触到一个叫UDF的东东,这个东东的全称叫User Define Function,翻译成中文可以是“用户自定义功能”或“用户自定义函数”。

许多想入门UDF的朋友在学习UDF前面临的第一个问题应该是UDF环境变量设置的问题,这个问题可能已经成为新手入门UDF的一个门槛了。UDF环境变量设置现在网上百度也能搜到一些教程,这里我不操作如何进行UDF环境变量设置,这个可以自行找资料解决。

在设置好环境变量后,大家接下来关心的应该是Fluent支持的串行与并行了,因为在编写UDF时,这个UDF可以编写成串行的也可以编写成并行的,但不同版本Fluent对于它的真串行和真并行还是有区别的。本人是在学习过程中从一些前辈们处了解到大概从Fluent 17.2或是Fluent 18.0开始,Fluent启动界面中Processing Options下的Serial不再是真串行了,而是单核并行,所以许多新手入门UDF时总是容易碰到编写的UDF在Serial方式启动后进行UDF编译,易出现报错的情况。报错可能有两种原因,一种可能是你的UDF环境变量没有设置好,另一种可能是Fluent串行或是并行的启动方式不正确。建议大家最好安装Visual Studio 2010版本,因为该版本搭配各种Fluent版本算是最稳定的,本人是用Visual Studio 2013版本,暂时没有出现任何问题,但还是建议新手安装Visual Studio 2010版本,稳一些!

本人电脑系统为Windows10专业版,电脑上安装了多个Fluent版本,皆能正常使用,将Fluent UDF环境变量设置好。接下来我将和大家分享如下一些Fluent版本它们具体的真串行和真并行情况,为新手入门UDF提供一些微不足道的帮助!

一 编译UDF时常出现的问题

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图1

这个界面应该是许多入门UDF的新手熟悉的界面了。报错可能有两种原因,一种可能是你的UDF环境变量没有设置好,另一种可能是Fluent串行或是并行的启动方式不正确。

二 本人电脑系统及Fluent版本

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图2

环境变量设置操作是在所有Fluent安装好后进行,并设置成功。

三 用于测试的简单UDF程序

#include "udf.h"
DEFINE_ON_DEMAND(
my_udf)
{
 Message("
Welcome to Fluent!\n");
}

该C程序参考UDF帮助手册编写,将用于编译UDF测试。

四 Fluent各版本串行与并行测试

下面将使用 Fluent 17.0/17.2/18.0/18.2/19.0/19.2/2019R3/2020R1 进行串行与并行下UDF编译情况测试。
4.1
Fluent 17.0

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图3

▼ 我们以Serial串行方式启动Fluent 17.0。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图4

▼ 可以在控制台中读取到一些信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图5

▼ C程序已经编写好,可用于导入Fluent进行编译。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图6

▼ 在User-Defined Functions下点击Compiled...这种编译方式。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图7

▼ 将C程序Add...到Source Files中。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图8

▼ 点击Build后弹出框点击OK,进行生成libudf文件。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图9

▼ 控制台中显示了如上信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图10

▼ 点击Load。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图11

▼ 可以在控制台中发现生成了动态库文件。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图12

▼ 因为我们用的是DEFINE_ON_DEMAND函数(该函数具体有哪些格式要求和功能请自行查阅UDF帮助手册),所以点击Excute on Demand...。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图13

▼ 执行该UDF程序,在控制台发现生成了我们在C程序中编写的信息,该测试完成。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图14

▼ 点击Exit退出。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图15

▼ 进行下一个测试时一定记得将生成的libudf文件夹删除。

这里我们发现,我们以串行方式启动编译的UDF生成的是单句信息,生成的动态库文件也是单个,这里的串行方式是真串行方式。

Parallel -1 方式

这里的并行我设置了1线程,我在尝试设置为0线程时发现,点击启动Fluent时,线程数自动变为了1。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图16

▼ 以1线程启动Fluent。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图17

▼ 从控制台发现,主机节点host和0节点n0都使用了,刚刚设置的1线程也就生效了。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图18

▼ 执行完该UDF程序生成了两个动态库文件,一个是主机节点host生成的,一个是0节点n0生成的,信息语句也生成了两条。

这里我们发现,这种并行方式启动是一种真的并行启动,不仅有主机节点进行计算还有所开另外线程的节点进行计算。
4.2
Fluent 17.2

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图19

▼ 我们以Serial串行方式启动Fluent 17.2。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图20

▼ 可以在控制台中读取到一些信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图21

▼ 执行该UDF程序,在控制台发现生成了我们在C程序中编写的信息,该测试完成。

这里我们发现,我们以串行方式启动编译的UDF生成的是单句信息,生成的动态库文件也是单个,这里的串行方式是真串行方式。

Parallel -1 方式

这里的并行我设置了1线程,我在尝试设置为0线程时发现,点击启动Fluent时,线程数自动变为了1。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图22

▼ 以1线程启动Fluent。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图23

▼ 从控制台发现,主机节点host和0节点n0都使用了,刚刚设置的1线程也就生效了。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图24

▼ 执行完该UDF程序生成了两个动态库文件,一个是主机节点host生成的,一个是0节点n0生成的,信息语句也生成了两条。
这里我们发现,这种并行方式启动是一种真的并行启动,不仅有主机节点进行计算还有所开另外线程的节点进行计算。
4.3
Fluent 18.0

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图25

▼ 我们以Serial串行方式启动Fluent 18.0。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图26

▼ 可以在控制台中读取到一些信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图27

▼ 执行该UDF程序,在控制台发现生成了我们在C程序中编写的信息,该测试完成。

这里我们发现,我们以串行方式启动编译的UDF生成的是单句信息,生成的动态库文件也是单个,这里的串行方式是真串行方式。

Parallel -1 方式

这里的并行我设置了1线程,我在尝试设置为0线程时发现,点击启动Fluent时,线程数自动变为了1。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图28

▼ 以1线程启动Fluent。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图29

▼ 从控制台发现,主机节点host和0节点n0都使用了,刚刚设置的1线程也就生效了。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图30

▼ 执行完该UDF程序生成了两个动态库文件,一个是主机节点host生成的,一个是0节点n0生成的,信息语句也生成了两条。
这里我们发现,这种并行方式启动是一种真的并行启动,不仅有主机节点进行计算还有所开另外线程的节点进行计算。
4.4
Fluent 18.2

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图31

▼ 我们以Serial串行方式启动Fluent 18.2。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图32

▼ 但发现控制台中出现了两个节点,一个是主机host节点,一个是n0节点,可以判断Fluent 18.2的Serial串行是伪串行,实际上是单线程并行方式启动,在编写UDF时尤其是编写并行UDF时一定要注意。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图33

▼ 从控制台中发现,动态库文件生成了两个,但信息语句只生成了一个。

这里我们发现,Fluent 18.2的Serial串行启动是一种伪串行,实际是一种单线程并行启动方式,在编译UDF时一定要注意这个问题,否则就很容易出现最开始那种报错提示。

Parallel -0 方式

在使用Fluent 18.2的朋友们如果想使用真正的串行方式启动,请看如下操作。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图34

▼ 应该将打开Parallel中的线程数设置为0。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图35

▼ 可以在控制台中读取到一些信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图36

▼ 这里我们可以看到控制台中只显示生成了一个动态库文件,信息语句也只生成了一个。

因为没有安装Fluent 18.1版本,所以不知道是不是从18.1开始,Fluent的串行改为了单线程并行,0线程并行实际为串行,但18.0还没有出现,18.2出现了。
4.5
Fluent 19.0

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图37

▼ 我们以Serial串行方式启动Fluent 19.0。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图38

▼ 从上一个版本18.2开始,19.0也是这样了。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图39

▼ 两个动态库文件,一条信息语句,很明显的伪串行。

Parallel -0 方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图40

▼ 将线程设置为0启动。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图41

▼ 可以在控制台中读取到一些信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图42

▼ 这里我们可以看到控制台中只显示生成了一个动态库文件,信息语句也只生成了一个。

4.6
Fluent 19.2

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图43

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图44

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图45

Parallel -0 方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图46

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图47

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图48

4.7
Fluent 2019R3

Serial方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图49

▼ 我们以Serial串行方式启动Fluent 2019R3。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图50

▼ 可以在控制台中读取到一些信息。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图51

▼ 这里的Fluent 2019R3和Fluent 19.2的伪串行又有些区别了,这里不仅生成了两个动态库文件,还生成了两条信息语句。

Parallel -0 方式

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图52

▼ 这里用0线程并行方式启动。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图53

▼ 在控制台中显示如上信息。

这是谷歌翻译的内容,请参考着理解。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图54

Fluent现在默认使用并行模式和单个进程来执行“串行”。您已选择在旧版串行模式(也称为“-t0”)中启动Fluent。此模式与Fluent中的许多较新增强功能不兼容,并且可能在将来的版本中删除。建议您改用默认的串行模式。如果使用默认模式是因为使用默认模式时遇到问题,请让ANSYS支持联系人了解详细信息,以便我们改进产品。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图55

▼ 只生成了一个动态库文件和一条信息语句。

4.8
Fluent 2020R1

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图56

▼ 从Fluent 2020R1启动界面已经找不到Serial这个英文单词了,而且红色框中的Solver Processes线程数最小只能设置为1,已经不存在所谓的串行或是0线程并行了。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图57

▼ 使用了主机节点host和n0节点两个节点计算。

新手入门Fluent UDF较关注的几个问题 附Fluent UDF中文教程下载的图58

▼ 生成了两个动态库文件和两条信息语句。

在这里,大家要明白这一点,Fluent 2020R1已经不存在以-t0方式启动串行了,现在只有并行了,编写UDF时更要注意这个问题。

下载地址:Fluent UDF中文教程



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

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

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

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空