首页/文章/ 详情

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

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
2年前浏览3323

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

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

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

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

1 文件准备

所需的文件已经开源,地址见附件。

  • 将文件下载下来并放置到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,点击附加按钮

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


(完)

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


来源:CFD之道

附件

免费地址.txt
FluentUDF
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-10-24
最近编辑:2年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2559粉丝 11242文章 732课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈