首页/文章/ 详情

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

1年前浏览1283

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

1. 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. 验证环境变量是否成功

   

找一个一定没问题的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).

 

 

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

下载链接见附件




来源:Fluent学习笔记

附件

免费四十九、Fluent UDF编译正确的流程.txt
FluentUDF通用控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-07-19
最近编辑:1年前
Fluent学习笔记
博士 签名征集中
获赞 122粉丝 312文章 130课程 3
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈