具体步骤见《fluent加载第三方(C++,Fortran等)动态链接库》

我们对导入的动态链接库进行改动

打开VS2013













完成了上述过程以后,还需要配置Python

首先需要安装Python,我安装的是anaconda2(可到清华大学开源软件镜像站下载,链接:https://
mirrors.tuna.tsinghua.edu.cn/anaconda/archive/































源代码

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

#include /
*Python头文件*/

#include  /
*字符串头文件*/

#include

using namespace std;

#ifdef __cplusplus

#define EXPORT extern
"C" __declspec(dllexport) /
*如果是c++则以c函数的调用约定导出函数*/

#else

#define EXPORT
__declspec(dllexport)

#endif


EXPORT

void PythonPrint()

{

Py_Initialize();  /
*初始化Python*/

PyObject* osModule =
PyImport_ImportModule("os"); /
*加载Python的os模块*/

PyObject* listDirFunc =
PyObject_GetAttrString(osModule,
"listdir");   /
*加载python中os模块的listdir函数*/

PyObject* fileList =
PyObject_CallFunction(listDirFunc, "s", "."); /
*调用os中的listdir函数,向其中传入算例目录*/

int listLen =
static_cast(PyObject_Size(fileList)); 
/
*获取返回列表的大小*/

PyObject *listItem =
NULL;  /
*用来存放返回Python列表的每一个元素*/

string strItem;
/
*用来存放将Python字符串转换为c++字符串*/

for (int i = 0; i <
listLen; i++)

{

listItem = PyList_GetItem(fileList, i); /
*获取返回列表的元素*/

strItem = PyString_AsString(listItem); 
/
*将返回的元素转换为c++类型的字符串*/

cout <<
setiosflags(ios::right);

cout << setw(40) <<
strItem;   /
*输出文件和目录*/

if ((i + 1) % 4 == 0)

cout << endl;

}

cout <<
endl;

Py_Finalize();
/
*结束python解释器,释放资源*/

}

———————————————————————————————————————————————————————————————————————————

UDF源代码如下:

#include "udf.h"

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

extern void PythonPrint();

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

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

*用动态链接库中的函数输出算例目录下的所有文件和文件夹

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

DEFINE_ADJUST(my_adjust,d)

{

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

}

我们打开Fluent

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

加载编译好的UDF

求解运行算例

最新文章

  1. [spring源码学习]一、IOC简介
  2. 文件并发(日志处理)--队列--Redis+Log4Net
  3. easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题
  4. benchmark pm2的cluster模式发布web app的性能与相关问题解决方法
  5. Linux基础入门学习笔记20135227黄晓妍
  6. C# 墙纸更换程序
  7. 客户调用COM流程
  8. 《火球——UML大战需求分析》(第1章 大话UML)——1.2 结构型的UML(Structure Diagram)
  9. string string.h=cstring=str
  10. 走进C标准库(6)——&quot;string.h&quot;中函数的实现memchr
  11. eclipse安装ADT后在windows菜单下找不到android SDK and AVD Manager选项的解决办法
  12. Redis各个数据类型的使用场景
  13. Python中os与sys两模块的区别
  14. linux中cut、printf、awk、sed命令
  15. tp框架中的一些疑点知识-6
  16. EasyExcel 解析excel
  17. centos6 搭建nginx实现负载均衡
  18. iOS编程(双语版) - 视图 - Transform(转换)
  19. 每日英语:Marriage makes our children richer — Here&#39;s why
  20. electron 创建右键菜单

热门文章

  1. Java自学-类和对象 继承
  2. 基于xilinx Zynq UltraScale MPSoC平台的核心板及开发板介绍-米尔科技
  3. python day 17: UML(统一建模语言)
  4. data:image/png;base64应用
  5. Radmin入侵
  6. restfulframework引用多对多外键
  7. 【DATAGUARD】物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置
  8. 大数据之kafka-05.讲聊聊Kafka的版本号
  9. H3C 802.11 MAC层工作原理
  10. java中的偏序关系