24小时热门版块排行榜    

查看: 2303  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

李鹏辉1234

新虫 (初入文坛)

[交流] fluent UDF程序complied问题 已有4人参与

本人fluent菜鸟一枚,初步接触UDF。在动网格编译上吃尽了苦头,现在初步解决了一些问题,现在将问题罗列如下,供由需要的人参考:
1:udf编译选择interpreted还是complied?
个人建议:优先interpreted, 不行了再试complied,反正就是点几下而已。用户手册里给出的动网格设置例子interpreted便不再适用,必须complied。一般来说,interpreted适用于程序比较简单的UDF,complied适用于复杂程序。但常用的很少有超过100行的,所以都算是小程序,能用interpreted解决的,别招惹complied。
2:complied- build-“nmake”问题和“libudf.dll”问题
Build的时候,我无数次看见过这样的提示语:
"nmake"不是内部命令或外部命令,也不是可运行程序
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
然后不管这个问题,load一下:
Error: The UDF library you are trying to load (libudf) is not compiled for 3ddp on the current platform (win64).
系统找不到指定的文件。
不管我是用用户手册里的原封不动的例子,还是用网上找到的其他例子,还是用自己之前interpreted成功的例子,这个错误都会出现,一度崩溃。

“nmake”问题是环境变量问题,有几处提到了解决方法,但都不一定有用,我把我的解决方法说一下,有些相同,又有些不同。
(1)        明确是环境问题,没有Vs(visual studio)就找软件安装,我个人前前后后装了08、10、19、15四个版本,总算搞定了,建议安装比fluent版本高的Vs。
高版本的VS这个网站都能找到,我试了挺好用的
https://www.xiazaiba.com/html/27463.html(下载吧)
下载直接安装就行
(2)        安装以后“nmake”肯定还在,所以你别急着去fluent试,没用的。首先,把你的case文件和udf文件放在同一个文件夹下,其次更改环境变量,具体分为两步:
<1>:1. 找到fluent文件设置环境变量:
双击C:\Program Files\ANSYS Inc\v150\fluent\ntbin\win64目录下setenv.exe和remenv.exe,弹框点击确定,提示变量调整成功。
<1>:2.右键我的电脑-属性-高级-环境变量:

环境变量中新增三个变量,变量名和变量值分别为:
Include
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
Lib
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\lib
path
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
路径可以直接复制,但是要把路径中和软件版本有关的部分(红色部分)改为自己的版本,具体怎么改可以对照着路径去软件安装位置看自己软件文件夹名是怎么样的。
(3)完成上一步时,你build时的“nmake”的问题应该就消失了,但是load时Error: The UDF library you are trying to load (libudf) is not compiled for 3ddp on the current platform (win64).
系统找不到指定的文件问题应该还在。
这个问题网上有提出可以用命令提示符的方式解决:
http://blog.sina.com.cn/s/blog_904cf88801015nq7.html
我试了试,不行。我的解决方法是在CFD-online论坛上找到的
https://www.cfd-online.com/Forums/
解决方法很简单:去掉你UDF文件名中的中文字符和空格,你可以命名为“dynamic-mesh”,而非“dynamic mesh”,去掉空格以后我的问题就神奇的消失了,开心。
最后提一句,CFD ONLINE这个论坛很好用,推荐一下。国外研究者很倾向于把自己的遭遇和解决方法分享出来供大家参考,我也效仿一下,把自己的曲折经历分享出来供大家参考,祝收敛。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

22150087

银虫 (小有名气)

为了毕业
5楼2020-06-04 16:54:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答
2楼2019-09-05 23:40:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
3楼2019-09-20 17:47:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

312242480

新虫 (小有名气)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
独孤神宇: 金币+1, 鼓励交流 2019-10-28 19:48:40
我编译就是dll的错误 然后换成interpret就没法初始化。。。
4楼2019-10-28 12:10:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见