首页/文章/ 详情

Fluent自定义冲蚀函数

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

本文描述在Fluent中自定义冲蚀函数的一些问题。

Fluent GUI 中提供了一些冲蚀模型(Generic Model、Finne、McLaury、Oka、DNV),这些模型可以应付大部分工程冲蚀问题。如果有自己的冲蚀模型,可以想办法将其写成 Generic Model 的形式,或者选择使用 UDF 进行定义。

1 Generic Model

通用模型的表达形式为:
其中,   为冲击到壁面的质量流量;   为粒径函数;   为冲击角函数;   为速度指数;   为壁面被颗粒冲击的面积。Fluent 默认参数为   ,   ,  

其他类型的冲蚀函数可以通过修改    的值进行改写。

2 UDF

可以使用 DEFINE_DPM_EROSION 指定颗粒冲击壁面或多孔阶跃面时的冲蚀率或沉积率。此 UDF 在颗粒遇到反弹壁面时调用。

UDF 宏的定义形式:

DEFINE_DPM_EROSION (name, tp, t, f, normal, alpha, Vmag, mdot)

参数包括:

  1. symbol name。宏名称。
  2. Tracked_particle *tp。Tracked_Particle 结构体的指针,该结构包含与被跟踪粒子相关的数据。
  3. Thread *t。指向颗粒当前冲击的壁面的 Thread 指针。
  4. face_t f。颗粒冲击壁面的面索引。
  5. real normal[]。被冲击壁面的面法向向量。
  6. real alpha。颗粒冲击角度(单位为弧度)。
  7. real Vmag。颗粒冲击速度(单位为 m/s)。
  8. real mdot。稳态流动:颗粒流冲击网格面时每随机次数的当前流量(kg/s);瞬态流动:冲击网格面的颗粒包质量(kg)。

该 UDF 没有返回值。

DEFINE_DPM_EROSION 有八个参数:name、tp、t、f、normal、alpha、Vmag 和 mdot。其中 Tp、t、f、normal、alpha、Vmag 和 mdot 是由 Fluent 求解器传递给 UDF 。UDF 中需要计算冲蚀率和/或沉积率的值,并将这些值分别存储在 F_STORAGE_R_XV (f, t, SV_DPMS_EROSION, EROSION_UDF) F_STORAGE_R (f, t, SV_DPMS_ACCRETION) 中。

 

注:在早期 Fluent 版本(18.0 之前的版本)中,冲蚀率及沉积率返回值均通过 F_STORAGE_R 宏进行返回。18.0 之后的版本将冲蚀率和沉积率通过不同的宏进行返回。

另一个问题,在利用 UDF 获取冲蚀率或沉积率时,需要用冲蚀率函数乘上质量流量,然后再除以冲击面积。

3 尝试

Zhang et al. 模型[1]为例,其表达式为:
式中,  ,  ;   为材料的布氏硬度,碳钢材料取 120;   为颗粒的形状系数,圆形颗粒取 0.2;   为颗粒速度;   为冲击角函数。
冲击角函数    表达式为:
其中    为颗粒的冲击角度,单位为弧度。

1、改写为通用方程形式

对照通用方程的表达形式:

其中:

逐项比对,可以得到:

2、利用UDF进行定义

可以直接编写UDF:

#include "udf.h"
#define PI 3.1415926

DEFINE_DPM_EROSION(Zhang,tp,t,f,normal,alpha,Vmag,mdot)
{
   real Area[ND_ND],area;
   real erosion;
   real F_alpha;

   // 模型系数
   real C = 2.17e-7;
   real BH = 120;
   real Fs = 0.2;
   real n = 2.41;

   real A[5] = {5.4,-10.11,10.93,-6.33,1.42};
   // 冲击角函数
   F_alpha = A[0]*alpha + A[1]* pow(alpha,2) + A[2]* pow(alpha,3) + A[3]* pow(alpha,4)+A[4]* pow(alpha,5);

   // 计算面积
   F_AREA(Area,f,t);
   area = NV_MAG(Area);
   // 计算冲蚀率函数
   erosion = C * pow(BH,-0.59) * Fs * pow(Vmag,n) * F_alpha * mdot / area;

   // 利用UDF宏返回值
   F_STORAGE_R_XV(f, t, SV_DPMS_EROSION, EROSION_UDF) += erosion;
}

// 注意:编译时建议将中文注释去掉,否则可能会有警告或错误信息。

利用UDF要更灵活,对于一些无法使用通用格式进行表达的方程,则只能使用UDF进行表达。


参考文献

[1]

Zhang, Y., Reuterfors, E.P., McLaury, B.S., Shirazi, S.A., Rybicki, E.R., 2007. Comparison of computed and measured particle velocities and erosion in water and air flows. Wear, Vol. 263, pp. 330-338.


(完)


来源:CFD之道
FluentUDF通用材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-26
最近编辑:1年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2559粉丝 11253文章 732课程 27
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈