加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在Visual Studio中直接编译Fluent的UDF的总结(并行)

(2018-02-23 12:36:26)
标签:

cfd

udf

vs

编译

二次开发

分类: fluent

首先推荐国内大神编写的一款插件VC++ UDF Studio,安装完成即可实现UDF的编译调试的,插件的官方网站:https://vcudfstudio.bitbucket.io/,可考虑购买。注:我不是这款插件的作者

前面我们介绍了VS编译Fluent18.1以前(包含Fluent18.1)串行版本的UDF,这里我们继续介绍VS编译Fluent18.2以后(包含18.2)串行UDFFluent并行UDF的方法,其实只是稍有差异,通过下面的介绍,可自行体会:

Fluent版本:Fluent 19.0

Visual Studio版本:Visual Studio 2013

这里我们以三维双精度的UDF作为示例来讲解VS编译并行UDF的设置

首先我们启动VS

在Visual Studio中直接编译Fluent的UDF的总结(并行)

首先我们先新建主机节点的项目

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

Fluent当中与主机节点相关的头文件:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_host

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\main

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\addon-wrapper

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\io

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\species

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\pbns

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\numerics

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\sphysics

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\storage

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mphase

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\bc

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\models

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\material

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\amg

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\util

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mesh

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\udf

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ht

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dx

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\turbulence

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\parallel

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\etc

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ue

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dpm

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dbns

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\cortex\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\client\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\tgrid\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\mpi_wrapper\src

在Visual Studio中直接编译Fluent的UDF的总结(并行)

此处需要注意一下:请务必严格按照上面的头文件顺序,否则编译的时候可能会出现下面的错误:

在Visual Studio中直接编译Fluent的UDF的总结(并行)

示例是三维双精度的UDF,所以是

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_host

如果是二维单精度就需要改变为:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_host

如果是二维双精度就需要改变为:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_host

如果是三维单精度就需要改变为:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_host

我们新建一个头文件

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

头文件内容如下:

在Visual Studio中直接编译Fluent的UDF的总结(并行)

我们新建一个源文件

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

源文件内容如下:

在Visual Studio中直接编译Fluent的UDF的总结(并行)

完成以上步骤以后,接下来我们新建节点的项目

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

在Visual Studio中直接编译Fluent的UDF的总结(并行)

在Visual Studio中直接编译Fluent的UDF的总结(并行)

在Visual Studio中直接编译Fluent的UDF的总结(并行)

在Visual Studio中直接编译Fluent的UDF的总结(并行)

Fluent当中与节点相关的头文件:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_node

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\main

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\addon-wrapper

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\io

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\species

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\pbns

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\numerics

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\sphysics

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\storage

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mphase

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\bc

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\models

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\material

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\amg

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\util

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\mesh

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\udf

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ht

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dx

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\turbulence

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\parallel

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\etc

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\ue

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dpm

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\dbns

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\cortex\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\client\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\tgrid\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\src

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\multiport\mpi_wrapper\src

在Visual Studio中直接编译Fluent的UDF的总结(并行)

此处仍需严格按照上面的头文件顺序

示例是三维双精度的UDF,所以是

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3ddp_node

如果是二维单精度就需要改变为:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2d_node

如果是二维双精度就需要改变为:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\2ddp_node

如果是三维单精度就需要改变为:

D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\win64\3d_node

我们新建一个头文件

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

头文件内容如下:

在Visual Studio中直接编译Fluent的UDF的总结(并行)

我们直接将主机节点的源文件复制到节点项目当中

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

以后务必主机节点和节点项目当中源代码是一致的,头文件请按照前面内容,以后请勿修改

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

编译成功

在算例目录下我们看到生成了libudf文件夹

在Visual Studio中直接编译Fluent的UDF的总结(并行)

有可能我们会遇见如下错误

在Visual Studio中直接编译Fluent的UDF的总结(并行)

我们只需要找到头文件中冲突的函数(我的头文件位置为:G:\Program Files\ANSYS Inc\v182\fluent\fluent18.2.0\client\src\sys_master.h)将冲突的cbrtcbrtf函数注释掉

在Visual Studio中直接编译Fluent的UDF的总结(并行)

然后重新编译即可 

我们启动Fluent,将Fluent目录定位到刚才的算例目录

在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)
在Visual Studio中直接编译Fluent的UDF的总结(并行)

为了方便以后的使用,我们可以将项目导出为项目模板方便以后使用,这里与串行的类似,只是这里需要将主机节点项目和节点项目分别导出为模板,下次仍需要添加两次项目来生成并行的解决方案

在Visual Studio中直接编译Fluent的UDF的总结(并行)


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有