吾生有涯 学海无涯
析模有界 知识无界

PyFluent指定UDF边界条件

内容纲要

本文演示利用PyFluent设置使用UDF定义的边界条件。

1、模型描述

测试模型尺寸如下图所示,管道半径5 mm,长度为80 mm。

入口为充分发展流动,平均速度1 m/s。采用UDF进行入口边界指定,速度分布为:

计算网格如下图所示。

2、准备UDF

编写UDF文件如下所示所示,命名为velUDF.c。

#include "udf.h"

DEFINE_PROFILE(vel, t, i)
{
real x[ND_ND];
real y;
face_t f;
begin_f_loop(f, t)
{
F_CENTROID(x, f, t);
y = x[1];
F_PROFILE(f, t, i) = 2 * (1 - y * y / (0.005 * 0.005));
}
end_f_loop(f, t)
}

3、TUI测试

运行此仿真可以使用下面的TUI命令。

/file/read-case "demo2.msh"
/define/models/axisymmetric? yes

/define/user-defined/compiled-functions compile "libudf" yes y "velUDF.c" "" ""
/define/user-defined/compiled-functions load "libudf"

/define/boundary-conditions/set/velocity-inlet "inlet" () vmag yes yes "udf" "vel::libudf" q
/solve/initialize/hyb-initialization yes
/solve/iterate 100

4、PyFluent程序

改写TUI命令,写成流程程序如下。

import ansys.fluent.core as pyfluent
# 启动Fluent
solver = pyfluent.launch_fluent(precision='double',processor_count=4,mode='solver',version='2d')
# 读取网格文件
solver.tui.file.read_case('demo2.msh')
# 激活轴对称模型
solver.tui.define.models.axisymmetric('yes')

# 编译UDF并加载UDF
solver.tui.define.user_defined.compiled_functions("compile","libudf","yes","y","velUDF.c","","")
# 加载udf
solver.tui.define.user_defined.compiled_functions("load","libudf")
# 指定入口速度,采用UDF进行速度指定
solver.tui.define.boundary_conditions.set.velocity_inlet("inlet",[],"vmag","yes","yes","udf",'"vel::libudf"',"quit")
# 进行初始化
solver.tui.solve.initialize.hyb_initialization("yes")
# 迭代计算100次
solver.tui.solve.iterate(100)
# 保存文件
solver.tui.file.write_case_data('demo')
# 退出Fluent
solver.exit()

5、计算结果

计算结果如下图所示。

  • 速度分布
  • 入口速度

用PyFluent做后处理效果不太好,这里直接保存dat文件在Fluent里面查看结果。

6、小结

利用TUI方式能极大地缩短PyFluent学习成本。除了TUI方式外,PyFluent还支持root方式,这个以后有空再说。


(完)

本篇文章来源于微信公众号: CFD之道

赞(1) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《PyFluent指定UDF边界条件》
文章链接:https://www.topcfd.cn/33181/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册