具体步骤见《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

求解运行算例

udf也能用Python的更多相关文章

  1. Spark(Hive) SQL中UDF的使用(Python)

    相对于使用MapReduce或者Spark Application的方式进行数据分析,使用Hive SQL或Spark SQL能为我们省去不少的代码工作量,而Hive SQL或Spark SQL本身内 ...

  2. Spark(Hive) SQL中UDF的使用(Python)【转】

    相对于使用MapReduce或者Spark Application的方式进行数据分析,使用Hive SQL或Spark SQL能为我们省去不少的代码工作量,而Hive SQL或Spark SQL本身内 ...

  3. 猪和python(pig and python)

    Python 真是无处不在国内. pig 0.9后python作为嵌入式语音,采用Jython解释器使用python2.5特征,此接口是最上层org.apache.pig.scripting.Pig首 ...

  4. spark UDF函数

    Spark(Hive) SQL中UDF的使用(Python):http://www.tuicool.com/articles/3yMBNb7

  5. 2015/10/9 Python基础(21):可调用和可执行对象

    在Python中有多种运行外部程序的方法,比如,运行操作系统命令或另外的Python脚本,或执行一个磁盘上的文件,或通过网络来运行文件.这完全取决于想要干什么.特定的环境包括: 在当前脚本继续运行 创 ...

  6. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  7. Apache Spark 2.2.0 中文文档

    Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...

  8. 渗透测试环境搭建以及使用sqlmap获取mysql用户数据库密码

    通过sqlmap检测sql注入漏洞 安装SQLmap漏洞查看工具 安装渗透测试演练系统DVWA 使用SQLmap进行sql注入并获得后台管理员adnim帐号和密码 环境介绍 安装SQLmap:Rich ...

  9. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

随机推荐

  1. mysql-表关系介绍(应用较多)

    目录 表之间的关系(重点) foreign key (外键) 级联操作 (cascade) 两种级联操作 外键的使用 多对一(一对多) 多对多 一对一关系 表之间的关系(重点) foreign key ...

  2. c语言学习目标

    运行c语言环境codeblocks. codeblocks的安装: 安装地址:http://www.codeblocks.org/downloads/26 codeblocks-16.01mingw- ...

  3. thrift简单示例 (基于C++)

    这个thrift的简单示例, 来源于官网 (http://thrift.apache.org/tutorial/cpp), 因为我觉得官网的例子已经很简单了, 所以没有写新的示例, 关于安装的教程, ...

  4. 图记 2016.1.7 获取本地图片、Bitmap转image

    这几天完成的内容有: 1.“添加图片”按钮 2.添加图片功能 遇到的问题: 我想要将添加图片按钮放在右下角,所以采用了相对布局,但是问题随之二来,因为将导航栏设置成了半透明,所以图片放到右下角之后,半 ...

  5. etcd数据备份和恢复--转发

    对于etcd api v3数据备份与恢复方法 # export ETCDCTL_API=3 # etcdctl --endpoints localhost:2379 snapshot save sna ...

  6. Spring boot项目分环境Maven打包,动态配置文件,动态配置项目

    Spring boot Maven 项目打包 使用Maven 实现多环境 test dev prod 打包 项目的结构 在下图中可用看出,我们打包时各个环境需要分开,采用 application-环境 ...

  7. vue父组件触发子组件方法

    比如应用场景是弹窗中的组件,想要点弹窗时更新该组件展示对应记录的的值 methods: { edit (record) { this.mdl = Object.assign({}, record) t ...

  8. Flume实战案例运维篇

    Flume实战案例运维篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Flume概述 1>.什么是Flume Flume是一个分布式.可靠.高可用的海量日志聚合系统,支 ...

  9. 攻防世界WEB高手进阶之Zhuanxv

    1.一开始就是一个时钟界面 2.扫描目录发现/list 目录 打开是后台登陆,看了一下源码,也没发现什么,焦灼... 3.百度上搜了一波wp,发现原来在css里面藏了东西 后台的背景图片居然是这样读取 ...

  10. ETL工程师笔试题

    1.参考答案 1)建表 CREATE TABLE `ta` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `cx` varchar(20) DEFAULT NUL ...