许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  使用 Fluent的UDF调用REFPROP数据库中的物性数据 操作指南

使用 Fluent的UDF调用REFPROP数据库中的物性数据 操作指南

阅读数 3
点赞 0
article_banner


说明:本文经验是根据知乎回答(https://zhuanlan.zhihu.com/p/378848954?utm_campaign=shareopn&utm_medium=social&utm_psn=1787448727763501056&utm)总结出的个人经验,仅供参考。

调用方法:UDF静态调用dll-动态调用dll

Fluent版本:2024R1;vs版本:2017;

文中所提到的文件链接已经放在末尾了,设置的是永久有效;

Fluent和visual studio的安装位置我都放在E盘,为方便可以安装在C盘,然后环境变量LIB,LIBPATH,PATH,INCLUDE及系统变量PATH配置可以参考B站教程。

1.编译一个简单UDF(参考UDF手册2.3.30.3.处给的示例),在fluent的user-defined function中选择编译型UDF然后add-->build,但是不要点load(我的UDF放在E:\udf_file处);

2.VS中新建动态链接库项目(记住这个项目名A),修改pch.h和pch.cpp文件(头文件和源文件中),这里可以直接复制guide\Tutorial demo folder\01-Dynamic_call_refpropDll中对应的文件,把Debug旁边的x86改为x64,再点“本地Windows调试”,注意下方显示生成了dll和lib文件,此处会有报错无法直接运行,这个不用理会;

3.编写调用dll的udf文件,此处可以直接复制 guide\Tutorial demo folder\02-Call_test 处的 02-Call_test.cpp 文件,然后将文件名称改为第一步中的udf文件名(比如我第一步用的udf名称为 inletvelocity.c ,那这里也要把这个udf的名称改为 inletvelocity.c),并将此文件复制到udf所在文件夹中的 libudf\src 处替换原有文件(不改名的话就需要将 3d_host3d_node 中的 user_nt.udf 文件中的第一行的inletvelocity.c改为新写的udf的名字,否则后面会出错);(说明:有的叫3d_host,有的叫3ddp_host; node的那个也一样,只要是host和node就行,前面的前缀应该不太重要)

4.安装sed软件,或者用everything找到vs中的sed.exe文件,并复制路径名称,找个地方改成“路径\sed.exe”的形式,留作接下来使用,若是重新安装的话,也是一样改成“路径\sed.exe”的形式(例如我的就是"E:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\usr\bin\sed.exe",此处如果不加英文双引号后面的操作会报错“E:\Program..”不是运行程序);

5.使用记事本打开 libudf\win64\3d_hostlibudf\win64\3d_node)文件夹中的 user_nt.udf 文件,在下方加上这两行

FLUENT_INC=C:\Program Files\ANSYS Inc\v195\fluent

FLUENT_ARCH= win64

第一行等号后的路径改为自己电脑中fluent所在的路径;(这两个文件夹即 host 和 node 中需要修改的地方以及操作基本都是类似的)

6.使用记事本打开 libudf\win64\3d_hostlibudf\win64\3d_node)文件夹中的 makefile 文件添加第二步生成的lib文件引用(如下图),文件名即为第二步中的项目名A:

CPP_LIB=项目名A.lib

$(CPP_LIB)

删除这一行:resolve.exe -udf $(CSOURCES) -head_file ud_io1.h

然后再将文件中的所有sed改为上面提到的“路径\sed.exe”,记得将中文双引号换为英文双引号,例图如下:

7.在开始菜单中找到“Developer Command Prompt for VS 2017”或者是“VS 2017的开发人员命令提示符 ”,右键-->更多-->以管理员形式打开,转入以下VS目录

(例如:输入指令“cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build”),如果VS不是安装在C盘,那么则要先输入“E:”(你的VS安装路径所在盘),再输入命令例如“cd E:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build”,完成后继续输入:

vcvarsall.bat x64  然后按回车键,

再输入指令跳转至 libudf\win64\3d_host 文件夹,例如:

cd E:\udf_file\libudf\win64\3d_host 再按回车键,

输入清除已编译文件命令:nmake /f makefile clean

(我在这一步中间出了挺多次错的,但是按步骤来应该不会再出错了...比较常见的一个错误就是U1052没找到文件“makefile”,后来怎么解决的居然已经忘了...可能就在上面某一步中)

将第二步生成的“项目名A.lib”复制到 3d_host 文件夹中,再将项目名A.dll和REFPRP64.DLL(这个是第二步建立的项目中调用的动态链接库的dll文件)这里两个文件复制到udf所在位置,比如我的就是复制到 E:\udf_file 下(这里我还把教程给的两个.fld文件复制过去了,不知道不复制会不会有问题),这个udf所在位置可以再fluent控制台也就是你一开始build完udf后显示的那个Done下面那一行输入:pwd 来查询,复制完之后重新编译

输入命令:nmake /f makefile 到这里两个文件夹都完成一遍这些操作的话这一步才算结束了;

8.切到刚才没关的fluent,在user-defined function中选择编译型再点击load,加载成功的话调用就算完成了!!!

9.根据自己需要的材料和相应的物性数据修改给的参考文件即Dynamic_call_refpropDll中的pch.h和pch.cpp文件以及Call_test中的Call_test.cpp文件,理论上就能实现自定义调用了!!!(这一步刚刚开始探索...)

链接:https://pan.baidu.com/s/1_R2b5eoIdAW9AmhT3bbhSw?pwd=2ier

提取码:2ier


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空