首页/文章/ 详情

PyFluent指定UDF边界条件

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
1年前浏览4991

本文演示利用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之道
FluentUDF
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-28
最近编辑:1年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2566粉丝 11299文章 734课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈