吾生有涯 学海无涯
析模有界 知识无界

编译Fluent UDF的若干种方法

内容纲要

本文描述编译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 FilesANSYS Incv221fluentntbinwin64中。修改此文件很简单,只需要利用文本编辑器打开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 FilesANSYS Incv221fluentfluent22.1.0cortexsrc/文件夹中),用文本文件将其打开,并修改文件

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

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

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


(本文结束)

本篇文章来源于微信公众号: CFD之道

赞(3) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《编译Fluent UDF的若干种方法》
文章链接:https://www.topcfd.cn/20027/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册