前面提到可以在vs提供的命令行界面编译UDF。见Fluent UDF【8】:编译型UDF。利用命令行形式编译UDF可以加载外部函数库,可以不用打开Fluent就可以编译UDF,还可以方便地调试UDF。
今天尝试了一下,发现了很多的问题。
在Fluent外部编译UDF的基本步骤:
-
创建目录结构
-
在case文件夹下创建libudf文件夹
-
在libudf文件夹中创建两个文件夹,分别命名为src及win64
-
在win64文件夹中创建文件夹2ddp
-
将UDF源文件拷贝到src文件夹中
-
将Fluent安装目录(如c:ANSYS Incv180fluentfluent18.0.0srcudf)下的user_nt.udf及makefile.udf文件拷贝到2ddp目录下
-
修改user_nt.udf文件的内容
-
修改makefile.udf文件名为makefile
-
启动visual studio的win64工具提示命令进入命令行界面,采用cd命令进入到2ddp目录
-
使用nmake命令进行编译
按道理来说事情应该能够解决,然而事情没那么简单。出现了N多的错误。
直接使用nmake后出现下图所示的错误。
错误提示:resolve.exe不是内部或外部命令。
用文本编辑器打开makefile文件,搜索resolve.exe。在第170行发现目标,如下图所示。
发现此行没什么大的作用,这个resolve也不知道哪里来的,搜索了整个电脑硬盘也没找到。干脆去掉这一行。
保存文件继续nmake编译。
真是祸不单行,又出错了。
错误提示:sed不是内部或外部命令,也不是可运行的程序。
搜索makefile文件,发现186行与190行用到了sed。
sed命令在linux下很常用,主要用于代码内文本替换。这fluent不厚道啊,windows版本还用linux下的工具。搜索了一圈也没发现sed藏在哪里。不过有替代措施,上网下载一个windows下的sed试试先。
windows版本的sed软件下载地址:https://sourceforge.net/projects/gnuwin32/files/sed/4.2.1/
下载完毕后安装。安装完毕后修改makefile文件的这两行,如下图所示,将完整的sed路径添加进去。
再次执行nmake,完整通过。
最近关注的人越来越少了,都跌到个位数了。每天新关注的人还没有取消关注的人多,真悲剧~~
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册