具体步骤见《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. Idea创建一个SpringBoot工程

    1.打开Idea,点击新建工程 File—New—Project 2.点击下一步后可能会很一直在请求,或者直接报如下错误, 解决办法:直接点OK后再点Previous返回上一步,继续重新Next 3. ...

  2. 自学Python编程的第一天----------来自苦逼的转行人

    学习Python的第一天,也是我第一次写博客的一天,不怎么会写博客,也不怎么会Python,也不怎么会写总结.在学Python的第一天发现自己脑子不是很好用,在学习过程中出现很多错误,错误锦集如下,哈 ...

  3. python基础知识(二)

    python基础知识(二) 字符串格式化 ​ 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 ​ print(' %s is boy'%('tom')) ----> ...

  4. js文本对象模型[DOM]【续】(Node节点类型)

    一.Document类型    document实例1.常用的一些属性documentElement 始终指向HTML页面中的<html>元素.body 直接指向<body>元 ...

  5. 数据仓库模型ETL架构(DWI/DWR/DM)

    1.DWI DWI:数据湖.数据砥柱,一般存放在HDFS 数据仓库的基础数据来源,各种杂七杂八的数据 关键点:数据清洗.数据整合.异常处理.增量获取 ETL:E-数据抽取.数据清洁.格式转换,T-生成 ...

  6. 82.使用vue后怎么针对搜索引擎做SEO优化?

    什么是SEO 搜索引擎优化(Search engine optimization,简称SEO),指为了提升网页在搜索引擎自然搜索结果中(非商业性推广结果)的收录数量以及排序位置而做的优化行为,是为了从 ...

  7. react native错误排查-TypeError: window.deltaUrlToBlobUrl is not a function

    错误现象:window.deltaUrlToBlobUrl is not a function 最近在调试react-native时,打开浏览器调试时发现报错window.deltaUrlToBlob ...

  8. Linux命令——jobs、bg、fg、nohup

    参考:Bash基础——工作管理(Job control) jobs -l :除了列出 job number 与命令串之外,同时列出 PID 的号码: -r :仅列出正在背景 run 的工作:-s :仅 ...

  9. Beta之前-凡事预则立(校园帮-追光的人)

    所属课程 软件工程1916 作业要求 Beta之前-凡事预则立 团队名称 追光的人 作业目标 在Beta冲刺之前,提前做好准备和规划 议题 1.讨论组长是否重选的议题和结论. 2.下一阶段需要改进完善 ...

  10. web自动化测试-模块驱动测试实例和数据驱动测试实例

    一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...