四十九、Fluent UDF编译正确的流程

1. UDF正常编译流程

很多同学会在群里面问一些UDF编译的问题,特此写一篇文章详细说明一下对UDF进行编译的正确流程。

第一步:配置环境变量,参考公众号文章十.Fluent环境变量的配置

第二步:验证环境变量是否成功

第三步:进行UDF编译

2. 配置环境变量

2.1 编译型VS解释型

推荐大家使用编译型UDF

有些同学为了方便省事,想直接用解释型UDF,这样就不用配置环境变量了。解释型的UDF与编译型UDF在UDF的编写上没有任何不同,只是将UDF加载到Fluent中的方式有所不同。

解释型的UDF:运算速度慢、不需要C语言编译器、只能使用预定义的宏、只能使用C语言书写

对于简单的UDF,可以使用解释型的UDF。但是当你的UDF涉及到比较高级的宏,解释型UDF是识别不了的,比如BOUNDARY_FACE_GEOMETRY、PRINCIPAL_FACE_P、Error等

编译型UDF:运算速度快、可以使用C或C++语言书写、通用性强。

一句话,解释型不能通过的UDF,编译型有可能通过;但编译型不能通过的UDF,解释型一定不能通过。

(一句话,东厂管得了的我要管,东厂管不了的我更要管,先斩后奏,皇权特许!这就是西厂,够不够清楚?)

2.2 验证环境变量是否成功

找一个一定没问题的UDF,编译一下看是否通过。如果没有任何error信息,那就说明环境变量配置成功了。

没问题的UDF如何找:UDF手册中的UDF肯定没问题,找一个最简单的就行,这里我提供一个:

#include "udf.h"

DEFINE_PROPERTY(density_air, c, t)//空气密度

{

real density;

density = 1.0;

return density;

}

直接新建txt文件,将上面代码复制,然后将.txt改为.c即可。也可以从文章后面的链接中直接获取UDF文件

什么样的信息算是error?:我们先假设UDF一定没问题,如果Source Files选择了这个UDF,点击Build后,控制台界面会生成一堆乱码信息,直接点击load,如果弹出下图,那大概率就是环境变量没有配置成功。

这种方法判断的前提是UDF没有任何问题。

3. 进行UDF编译

在环境变量配置成功的情况下,再进行自己书写的UDF的编译。

这一步还可能会遇到很多问题。由于环境变量已经配置成功,因此遇到的问题一定是UDF本身的问题,可能是书写不规范,也可能是语法问题。

还有可能,UDF编译通过,但是一点计算就会出现下图这种错误

或者出现received a fatal signal (aborted).

总之错误总是千奇百怪,防不胜防。但当使用的多了,会发现常见的错误原因就那几个,多注意排查即可。这部分下篇文章会进行叙述。

原文链接:

https://mp.weixin.qq.com/s/fuWIsp5klmB0QPH-cdX8Zwhttps://mp.weixin.qq.com/s/fuWIsp5klmB0QPH-cdX8Zw

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值