打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
编译Fluent UDF的若干种方法
userphoto

2023.10.23 四川

关注

本文描述编译Fluent UDF的若干种方法。

最近总有人在后台留言问到UDF编译的问题,懒得一一回复了,干脆总结写篇文章得了。

1、利用Visual Studio进行编译

这是最传统的编译方式。从最古老的Fluent版本一直到现在最新的版本,Visual Studio一直都是Windows操作系统下Fluent的好基友。然而Visual Studio的个头颇大,安装起来很是痛苦,尤其是最新的几个版本不支持本地安装,如果网络条件不好,几个G的文件下载起来也是要人命的。事实上Fluent UDF的编译并不需要安装Visual Studio,而是需要安装Visual C++ Build Tools(中文名:Microsoft C++生成工具),其可以在网络上免费下载得到,其网址:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/。不过不是所有人都会配置这玩意儿,所以图省事儿,大家都是用Visual Studio,装完之后软件自动帮我们将一些环境变量给配置好了。

利用Visual Studio编译UDF需要配置UDF.bat文件,此文件路径位于文件夹C:\Program Files\ANSYS Inc\v221\fluent\ntbin\win64中。修改此文件很简单,只需要利用文本编辑器打开udf.bat文件,修改MSVC_DEFAULT的工作路径即可。其实如果Visual Studio是按默认路径安装的(安装到C:\Program Files(x86)文件夹中的话,是不需要修改任何内容即可使用Fluent进行UDF编译的。

如果在Fluent编译过程中,出现如nmake之类的错误提示,那多半就是Visual Studio安装路径没有指定正确所导致。

指定了环境变量之外,在Fluent启动之前还需要切换到Environment选项卡,并勾选选项Setup Compilation Environment for UDF

如果安装了Visual Studio,也可以在外部用命令行编译UDF,详细过程可见文章Fluent UDF【15】:外部编译UDF

2、利用Fluent内置编译器进行编译

Fluent在最近几个版本中(好像是2019,具体记不清了)添加了内置编译器,这样在编译UDF的时候就不需要安装Visual Studio了。

如下图所示,在UDF编译对话框中勾选选项Use Built-In Compiler即可使用内置编译器。从Fluent安装路径中的文件来看,内置的编译器似乎是clang。

使用内置编译器编译经常会出现一些警告信息,这是编译器兼容性的问题,不会影响UDF加载及使用,通常可以忽略。

在较新的Fluent版本中,建议使用此方法进行UDF的编译。

3 利用GCC进行编译

UDF本质上还是C语言程序,理论上来讲,任何C编译器都能够用于UDF的编译。比如在Linux下广泛使用的GCC编译器同样可以在Windows下对UDF进行编译。

不过利用GCC编译UDF需要配置很多参数,其中过程颇为麻烦,编译细节可参阅文章:GCC编译Fluent UDF

不过不用担心,万能的网友已经帮我们将问题解决好了。这里推荐使用硫酸亚铜提供的UDF编译工具(下载链接链接:https://pan.baidu.com/s/1bOzNCHGRhuCHMv_rcR2c-g ,提取码:1234 )。

若Fluent安装在系统盘,在使用此工具之前,需要修改Fluent安装文件夹的只读属性,否则没法编译。

  • 右键选择Fluent文件夹,点击右键并选择弹出菜单项属性
  • 在属性对话框中,取消选项只读(仅应用于文件夹中的文件),点击按钮应用
  • 弹出的对话框中选择将更改应用于此文件夹、子文件夹和文件,点击确定按钮
  • 此时打开编译UDF工具,选择源代码以及各种选项后,点击编译按钮进行编译

第一次编译因为需要将Fluent中的一些可执行文件编译为中间库,所以会比较慢,后面再编译就很快了,至少要比Visual Studio快很多。

编译出错,提示头文件cx.h中所包含的string_safe.h文件没找到。但这个文件其实是存在的,可以搜索Fluent安装路径找到。

  • 找到cx.h头文件(在C:\Program Files\ANSYS Inc\v221\fluent\fluent22.1.0\cortex\src/文件夹中),用文本文件将其打开,并修改文件

继续编译,如果还有存在文件找不到的错误提示,那么采用相同的方法进行处理。这里可能要修改4个文件,主要是tgrid文件夹下的hash2.h与hash.h文件在一些源代码中找不到,可以手动搜索找到这些文件,然后将其绝对路径添加到相应文件中,如上图所示。

若没有任何问题话,编译完毕会如下图所示。采用此方式编译UDF不会出现乱码提示,该工具对于复杂的UDF调试是非常好用的。

此工具支持复杂的C++代码编译。


(本文结束)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Fluent 2019 安装 Visual Studio 2017用于编译型udf
Fluent UDF【8】:编译型UDF
Visual Studio中头文件stdafx.h的作用
Visual Studio扩展,快捷添加任何文件
让网格动起来(5)
3-udf的解释和编译
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服