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
求解运行算例
udf也能用Python的更多相关文章
- Spark(Hive) SQL中UDF的使用(Python)
相对于使用MapReduce或者Spark Application的方式进行数据分析,使用Hive SQL或Spark SQL能为我们省去不少的代码工作量,而Hive SQL或Spark SQL本身内 ...
- Spark(Hive) SQL中UDF的使用(Python)【转】
相对于使用MapReduce或者Spark Application的方式进行数据分析,使用Hive SQL或Spark SQL能为我们省去不少的代码工作量,而Hive SQL或Spark SQL本身内 ...
- 猪和python(pig and python)
Python 真是无处不在国内. pig 0.9后python作为嵌入式语音,采用Jython解释器使用python2.5特征,此接口是最上层org.apache.pig.scripting.Pig首 ...
- spark UDF函数
Spark(Hive) SQL中UDF的使用(Python):http://www.tuicool.com/articles/3yMBNb7
- 2015/10/9 Python基础(21):可调用和可执行对象
在Python中有多种运行外部程序的方法,比如,运行操作系统命令或另外的Python脚本,或执行一个磁盘上的文件,或通过网络来运行文件.这完全取决于想要干什么.特定的环境包括: 在当前脚本继续运行 创 ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Apache Spark 2.2.0 中文文档
Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...
- 渗透测试环境搭建以及使用sqlmap获取mysql用户数据库密码
通过sqlmap检测sql注入漏洞 安装SQLmap漏洞查看工具 安装渗透测试演练系统DVWA 使用SQLmap进行sql注入并获得后台管理员adnim帐号和密码 环境介绍 安装SQLmap:Rich ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
随机推荐
- eclipse中启动tomcat后, 无法访问localhost:8080
问题: 今天老师讲了Servlet路径问题, 做了个测试在eclipse中启动tomcat后,在浏览器地址栏输入 http://localhost8080无法访问, 提示404错误, 正常情况是可以访 ...
- Vue项目开发相关问题总结
Vue项目开发相关问题总结 一.创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下: (1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11 ...
- webpack+vue-cil跨域配置接口地址代理
在vue项目开发的时候,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们现在使用vue-cli进行项目打包的时候,我们在本地启动服务器后,比如本地开发服务下是 http:/ ...
- Mybatis自动生成代码,MyBatis Generator
这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...
- 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] / ...
- SocksCap代理
所有Windows应用都可以使用Socks代理上网,即使不支持Socks代理的应用也可以用Socks代理上网 配置代理 点击"添加",代理类型可以修改, 支持代理测试 运行程序 点 ...
- FIneUICore 版本的 AppBoxMvcCore
http://www.51aspx.com/code/codename/64088 CORE版本的APPBOXMVC欢迎下载
- Spring IOC 总结
IOC 简介 IOC是(Inversion of Control,控制反转)的简写.Spring提供IOC容器,将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的的过度程序耦合.它由DI( ...
- jQuery知识梳理20190817
目录 jQuery知识梳理20190817 1. jQuery的特征 2. jQuery的两把利器 2.1 jQuery核心函数 2.2 jQuery核心对象 3. jQuery核心函数详解 4. j ...
- GreenPlum数据库搭建原原则
1.平衡: 性能 容量 成本 2.高可用(主节点高可用): 节点 网络 磁盘 3.部署方案: Master和Standby Master分机部署 primaty segment 与miiror Seg ...