具体步骤见《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. eclipse中启动tomcat后, 无法访问localhost:8080

    问题: 今天老师讲了Servlet路径问题, 做了个测试在eclipse中启动tomcat后,在浏览器地址栏输入 http://localhost8080无法访问, 提示404错误, 正常情况是可以访 ...

  2. Vue项目开发相关问题总结

    Vue项目开发相关问题总结 一.创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下: (1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11 ...

  3. webpack+vue-cil跨域配置接口地址代理

    在vue项目开发的时候,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们现在使用vue-cli进行项目打包的时候,我们在本地启动服务器后,比如本地开发服务下是 http:/ ...

  4. Mybatis自动生成代码,MyBatis Generator

    这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...

  5. 2647673 - HANA Installation Failure with signal 11 core dumped

    Symptom HANA 2.0 SPS03 installation using hdblcmgui failed due to the below error message. [Error] / ...

  6. SocksCap代理

    所有Windows应用都可以使用Socks代理上网,即使不支持Socks代理的应用也可以用Socks代理上网 配置代理 点击"添加",代理类型可以修改, 支持代理测试 运行程序 点 ...

  7. FIneUICore 版本的 AppBoxMvcCore

    http://www.51aspx.com/code/codename/64088 CORE版本的APPBOXMVC欢迎下载

  8. Spring IOC 总结

    IOC 简介 IOC是(Inversion of Control,控制反转)的简写.Spring提供IOC容器,将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的的过度程序耦合.它由DI( ...

  9. jQuery知识梳理20190817

    目录 jQuery知识梳理20190817 1. jQuery的特征 2. jQuery的两把利器 2.1 jQuery核心函数 2.2 jQuery核心对象 3. jQuery核心函数详解 4. j ...

  10. GreenPlum数据库搭建原原则

    1.平衡: 性能 容量 成本 2.高可用(主节点高可用): 节点 网络 磁盘 3.部署方案: Master和Standby Master分机部署 primaty segment 与miiror Seg ...