UDF——提取指定线上随时间变化的物理量

Fluent版本:Fluent 19.0

Visual Studio版本:Visual Studio 2013

有时候我们想要实现一些功能,比如:我们在使用Fluent进行瞬态计算的时候,想要获取某条线上的物理量随时间的变化,如果我们直接用UDF去输出当然是可以的,但是实现起来难度比较大,而CFD-Post实现这些功能相对比较容易,难道要我们保留所有的结果,最后再在CFD-Post里面慢慢处理?当然有其他的解决办法,我们可以使用Python编写一个模块,用来调用CFD-Post获取该条线段上的物理量并且导出为文件,最后删除casdat文件以节省存储空间。我们从UDF当中指定每个时间步调用该Python模块一次,从而实现指定功能。

Python模块的代码如下(存为名为:“Data.py”文件)

需在VS当中编译该UDF,可参考我前面的:

《在Visual Studio中直接编译FluentUDF的总结(串行)

《在Visual Studio中直接编译FluentUDF的总结(并行)

VS当中需要添加python的库和包含python的头文件

首先需要安装Python,我安装的是anaconda2(可到清华大学开源软件镜像站下载,链接:https:// mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

 

然后我们在ansys19_3ddp_host项目当(文件:源.cpp)中编写如下代码:

ansys19_3ddp_node项目当(文件:源.cpp)中编写如下代码:

至于CFD-Postsession文件,自己在CFD-Post当中事先录制一个即可,这里就不多讲了。

算例来源于:https://confluence.cornell.edu/display/SIMULATION/FLUENT+-+Laminar+Pipe+Flow

我们每次取管道中心轴线的速度,取10个点

时间步长:0.001,时间步:10

注意:

需要设置自动保存,务必按照下图设置

最后结果:

至于为什么我设置的10个时间步数据却只保存了9个?是因为最后保存结果以后计算终止,没有再调用DEFINE_EXECUTE_AT_END宏了,我们可以在DEFINE_ON_DEMAND再调用一次前面的Python模块从手动完成全部的数据。

完整VS项目文件和Fluent算例文件:

链接: https://pan.baidu.com/s/1SOEk_arrI1zX2LVfsjW7mQ 提取码: kmxw

 

posted @ 2018-10-08 22:25  硫酸亚铜  阅读(2193)  评论(0编辑  收藏  举报