fluent加载第三方(C++,Fortan等)动态链接库

这里我介绍一种比较简单的方法,首先我们从ANSYS Fluent UDF Manual上随便找一段正确的UDF,下面这段UDF取自ANSYS 18ANSYS Fluent UDF Manual,位于2.3.23.3. Example 1 - Pressure Profile

/ ***********************************************************************

UDF for specifying steady-state parabolic pressure profile boundary

profile for a turbine vane

************************************************************************/

#include "udf.h"

DEFINE_PROFILE(pressure_profile,t,i)

{

   real x[ND_ND]; / * this will hold the position vector */

   real y;

   face_t f;

   begin_f_loop(f,t)

   {

      F_CENTROID(x,f,t);

      y = x[1];

      F_PROFILE(f,t,i) = 1.1e5 - y*y/(.0745*.0745)*0.1e5;

   }

   end_f_loop(f,t)

}

我们将上面的UDF源代码存为prepare.c

fluent加载第三方(C++,Fortan等)动态链接库

我们启动Fluent 

fluent加载第三方(C++,Fortan等)动态链接库

然后我们直接编译我们刚才保存的prepare.c

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

我们打开Visual Studio(我是Visual Studio 2013英文版)

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库

DLL的代码很简单,就是输出Hello Fluent,这里有一点需要注意一下Solution PlatForms一定要根据Fluent的位数来选择,默认是编译为Win32,而我们现在的一般使用的是64位的Fluent,所以我们需要改变为x64才行(见截图)

#include / *包含输入输出流头文件*/

 

using namespace std;

 

/ *一定要这样写,以c语言的形式导出,在Fluent当中才能识别*/

extern "C" __declspec(dllexport) void CppDynamicLinkLibrary()

{

   cout << "Hello Fluent" << endl; / *输出“Hello Fluent”*/

}

 

fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库

然后准备真实需要编译且加载了加载第三方动态链接库的UDF源文件,代码如下:

#include "udf.h"

 

/ *链接我们刚才动态链接库的函数*/

extern void CppDynamicLinkLibrary();

 

/ *******************************************

*我们在每次迭代完成以后,

*用动态链接库中的函数输出一次“Hello Fluent”

********************************************/

DEFINE_ADJUST(my_adjust,d)

{

   CppDynamicLinkLibrary(); / *调用动态链接库中的函数*/

}

将源代码也保存为prepare.c

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

然后前面动态链接库项目文件夹下

fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库
fluent加载第三方(C++,Fortan等)动态链接库

重新打开Fluent 

fluent加载第三方(C++,Fortan等)动态链接库

导入网格,设置好各种求解参数

加载刚才编译的UDF(注意:此处只需要加载(Load),而不需要编译(Build)了!见截图) 

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

fluent加载第三方(C++,Fortan等)动态链接库

求解运行算例

fluent加载第三方(C++,Fortan等)动态链接库

 

posted @ 2017-06-06 01:55  硫酸亚铜  阅读(1505)  评论(0编辑  收藏  举报