udf也能用Python
具体步骤见《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
求解运行算例
最新文章
- [spring源码学习]一、IOC简介
- 文件并发(日志处理)--队列--Redis+Log4Net
- easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题
- benchmark pm2的cluster模式发布web app的性能与相关问题解决方法
- Linux基础入门学习笔记20135227黄晓妍
- C# 墙纸更换程序
- 客户调用COM流程
- 《火球——UML大战需求分析》(第1章 大话UML)——1.2 结构型的UML(Structure Diagram)
- string string.h=cstring=str
- 走进C标准库(6)——";string.h";中函数的实现memchr
- eclipse安装ADT后在windows菜单下找不到android SDK and AVD Manager选项的解决办法
- Redis各个数据类型的使用场景
- Python中os与sys两模块的区别
- linux中cut、printf、awk、sed命令
- tp框架中的一些疑点知识-6
- EasyExcel 解析excel
- centos6 搭建nginx实现负载均衡
- iOS编程(双语版) - 视图 - Transform(转换)
- 每日英语:Marriage makes our children richer — Here&#39;s why
- electron 创建右键菜单
热门文章
- Java自学-类和对象 继承
- 基于xilinx Zynq UltraScale MPSoC平台的核心板及开发板介绍-米尔科技
- python day 17: UML(统一建模语言)
- data:image/png;base64应用
- Radmin入侵
- restfulframework引用多对多外键
- 【DATAGUARD】物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置
- 大数据之kafka-05.讲聊聊Kafka的版本号
- H3C 802.11 MAC层工作原理
- java中的偏序关系