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

利用Visual Studio+CMake编译及调试Fluent UDF

内容纲要

本文介绍利用Visual Stuido+CMake编译与调试Fluent UDF的方法。

注:本文参考胶然今天打什么发表的文章https://zhuanlan.zhihu.com/p/492619039,在此对作者的分享精神致以崇高的敬意。

Fluent UDF的编译方法很多。Fluent UDF作为一段C语言代码,原则上只要能够编译C程序的方法都可以用于编译Fluent UDF。用户可以选择利用Visual Studio或Fluent内置的编译器来完成UDF的编译工作。然而Fluent文档中仅描述了UDF的编译工作,却只字未提调试工作该如何去做。对于很短的UDF程序,可以人工调试,但对于复杂的程序,有必要借助于IDE工具来辅助进行编译。

具体实现的原理,在参考文章中已经讲得非常明白了,这里就不重复了。

下面描述文中提到的方法的具体使用方式。

1 文件准备

所需的文件已经开源,地址为:https://github.com/QcatQym/udf。

  • 将文件下载下来并放置到Fluent Case路径中。形成类似下面的文件结构。
cas folder:
│ your_CAS.cas

└─lib_name //自定义,可习惯性改成libudf
│ your_udf.c //udf源文件
│ CMakeLists.txt

└─support
pre_chore.cmd
pre_pre_make.cmd
pre_make.cmd
udf_names.c
ud_io1.h

但其实可以放到任意英文路径中即可。如下图所示,将github上下载下来的文件夹udf-master直接放到case路径下。

2 添加环境变量

  • 添加系统环境变量FLUENT_INC。如下图所示。

3 修改配置文件与源文件

  • 启动Visual Studio,选择打开本地文件夹
  • 选择前面的udf-master文件夹并打开
  • 若Visual Studio安装时选择了CMake工具,则此时应该是这样的。不同的VS版本可能会略有差异,下图是本机安装的VS 2022显示的结果。
  • 打开CMakeLists.txt文件,并修改相应的内容

注释写得挺明白了。注意这里设置的版本号必须与前面在环境变量中指定的FLUENT_INC的版本一致。另外这里的3d编译出来的UDF版本是3ddp,若想要编译3d版本,则需要修改node及host中的CMakeLists.txt文件中第2行的内容,将dp去掉即可。

  • 将源文件名改为myUDF.cpp
  • 相应的也需要修改示例源文件DPM.cpp修改为自己想要的名字,例如这里将其修改为myUDF.cpp。修改文件名后VS会提示错误,此时利用菜单生成 → 全部清理 刷新一下就可以了。

注:这里其实完全可以不改文件名,只需要保证CMakeLists.txt中的文件名与UDF文件名一致即可。但强迫症表示不改文件名活不去下。

  • 根据自己的需求修改源文件myUDF.cpp,此时VS能够提供智能提示,如下图所示

如下面随便编写的代码。

  • 前面对文件进行了修改,在编译之前可以利用菜单项目 → 删除缓存并重新配置对刷新配置文件中的参数信息
  • 点击菜单生成 → 全部重新生成编译源文件

此时能够生成libudf.dll文件,然而却跑到EX2文件夹下面去了。

解决方法1:

此时可以在EX2路径下创建一个新的文件夹,如libudf,然后将win64文件夹整体放入libudf文件夹中,处理完毕后文件结构如下图所示,这样就可以在case文件中直接加载libudf了。

如果只是编译UDF,采用这种方式即可。

解决方法2:

如果要调试UDF,则可以按下面的方式进行修改。

  • 打开host/CMakeLists.txtnode/CMakeLists.txt文件,修改host/CMakeLists.txt文件,如下图所示

修改node/CMakeLists.txt文件,如下图所示

注:源文件中多了两个点,输出路径跑到上一级菜单了。

  • 点击菜单生成 → 全部重新生成编译源文件
  • 此时在udf-master文件夹下多出来一个win64的文件夹,其中包含UDF编译完成的dll文件,如下图所示。

注意,前面没有修改文件夹udf-master的名字,因此后面在Fluent中调用UDF的时候要输入udf-master。后面测试和调试工作以此为准。

注:若想使用libudf,则可以在前面的文件准备阶段将udf-master文件夹改名为libudf。

4 测试UDF

  • 3ddp方式启动Fluent(与前面的配置中保持一致)
  • 如下图所示加载UDF

点击Load后加载dll,下图显示加载成功。

测试UDF,如下图所示,能够成功执行。

5 调试UDF

Visual Studio具有强大的程序调试功能。

  • 启动Fluent并加载UDF
  • 点击菜单调试 → 附加到进程...
  • 对话框中找到Fluent进程,如下图所示的fl2220.exe,点击附加按钮

之后即可以在源代码中下断点进行调试了,和常规的调试方式并无不同,这里就不赘述了。


(完)

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

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

说两句 抢沙发

评论前必须登录!

 

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

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

支付宝扫一扫

微信扫一扫

登录

找回密码

注册