四十九、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
四十九、Fluent UDF编译正确的流程相关推荐
- c语言头文件格式图片_阿波罗 STM32F767 开发板资料连载第四十九章 图片显示实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第四十九章 图片显示实验 ...
- FLUENT UDF编译及蒸发冷凝相关问题
FLUENT UDF编译及蒸发冷凝相关问题这里写自定义目录标题 1.[UDF编译]错误汇总及解决办法 2. 以下为网上搜索的关于蒸发冷凝的案例 3.模拟练习 UDF代码片 1.[UDF编译]错误汇总及 ...
- 左耳听风 第四十九周
左耳听风 第四十九周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- 四十、Fluent 颗粒\气泡PBM模型
1. PBM模型概念 PBM模型被称为群体平衡模型.可考虑颗粒粒径分布,并考虑颗粒(气泡)的成核.生长.分散.溶解.聚集和破碎产生分散.与DPM模型.DEM模型等应用场景不同. 应用场景: 可以应用种 ...
- 第四十九章 Caché 变量大全 ^$ROUTINE 变量
文章目录 第四十九章 Caché 变量大全 ^$ROUTINE 变量 大纲 参数 描述 参数 nspace routine_name 示例 作为$DATA的参数 作为`$ORDER`的参数 作为$QU ...
- 【正点原子FPGA连载】第四十九章OV5640摄像头HDMI灰度显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- Python编程基础:第四十九节 鸭子类型Duck Typing
第四十九节 鸭子类型Duck Typing 前言 实践 前言 本节我们一起学习一个非常有趣的知识点:鸭子类型.有这么一句话:If it walks like a duck, and it quacks ...
- 四十九、深入了解两个并发接口Callable和Runnable的区别
@Author:Runsen @Date:2020/6/11 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...
- 鲁迅散文——随感录四十九
随感录四十九 凡有高等动物,倘若没有遇着意外的变故,总是从幼到壮,从壮到老,从老到死. 我们从幼到壮,既然毫不为奇的过去了:自此以后,自然也该毫不为奇的过去. 可惜有一种人,从幼到壮,居然也毫不为奇的 ...
最新文章
- 2021年春季学期-信号与系统-第四次作业参考答案-第四小题
- 网络推广是什么告诉大家如何高效提高网站权重?
- maven netty 配置_springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务
- jhipster 配置 mysql_java – 将jhipster后端和前端分成两个项目?
- 【ElasticSearch】es 使用function_score及soft_score定制搜索结果的分数
- 非root用户暴力法解决选择性使用两个cudnn
- flex, swf 不能访问网络/本地资源
- java 外观模式_Java设计模式11:外观模式
- Hibernate Session get()vs load()实例差异
- POJ NOI MATH-7827 质数的和与积
- 【数学建模】论文模板和latex模板
- 全国地区对应身份证号码值关系----身份证号前6位
- ov5640_rgmii_udp
- 【 Vue 】暗黑模式切换
- php mysql 家谱_mysql家谱表查询某人所有后代
- 2019年北航计算机夏令营
- Dijkstra 与 Floyd算法
- 关于NC65通过接口新增客户档案并分配出现的分配组织错误的问题及解决方法
- Linux无线网络已经禁用,无线网络启用后还显示已禁用怎么办
- jq animate动画