UDF——提取指定线上随时间变化的物理量
Fluent版本:Fluent 19.0
Visual Studio版本:Visual Studio 2013
有时候我们想要实现一些功能,比如:我们在使用Fluent进行瞬态计算的时候,想要获取某条线上的物理量随时间的变化,如果我们直接用UDF去输出当然是可以的,但是实现起来难度比较大,而CFD-Post实现这些功能相对比较容易,难道要我们保留所有的结果,最后再在CFD-Post里面慢慢处理?当然有其他的解决办法,我们可以使用Python编写一个模块,用来调用CFD-Post获取该条线段上的物理量并且导出为文件,最后删除cas和dat文件以节省存储空间。我们从UDF当中指定每个时间步调用该Python模块一次,从而实现指定功能。
Python模块的代码如下(存为名为:“Data.py”文件):
需在VS当中编译该UDF,可参考我前面的:
《在Visual Studio中直接编译Fluent的UDF的总结(串行)》
《在Visual Studio中直接编译Fluent的UDF的总结(并行)》
在VS当中需要添加python的库和包含python的头文件
首先需要安装Python,我安装的是anaconda2(可到清华大学开源软件镜像站下载,链接:https:// mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)
然后我们在ansys19_3ddp_host项目当(文件:源.cpp)中编写如下代码:
在ansys19_3ddp_node项目当(文件:源.cpp)中编写如下代码:
至于CFD-Post的session文件,自己在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