首页/文章/ 详情

DEFINE_PROFILE用法介绍(3)

4年前浏览6099
01—问题描述



如下图二维管道,


我们使用DEFINE_PROFILE来分别生成二维充分发展管道流的速度、湍流动能和耗散率的profile。定义了三个独立的udf,分别是x_velocity、k_profile和dissip_profile ,这些函数连接在一个C源文件中,可以在ANSYS Fluent中解释或编译。1/7幂律用于指定X速度分量:

其中,v_x,free为来流速度的X分量(本例中设为常数),

假定湍流动能从近壁值的值

线性变化到自由流值

耗散率为

其中混合长度l为KY和0.085
的最小值,(k是冯卡门常数= 0.41。)

摩擦速度和壁面剪切力为:

由Blasius方程估算摩擦系数为:




02—UDF


UDF源代码如下:
/**********************************************************************  Concatenated UDFs for fully-developed turbulent inlet profiles ***********************************************************************/ 
#include "udf.h"
 #define YMIN 0.0      
 /* constants */ 
 #define YMAX 0.4064 
 #define UMEAN 1.0 
 #define B 1./7. 
 #define DELOVRH 0.5 
 #define VISC 1.7894e-05 #define CMU 0.09 
 #define VKC 0.41  
 /* profile for x-velocity */ 
 DEFINE_PROFILE(x_velocity,t,i) 
 {    
     real y, del, h, x[ND_ND], ufree;  
     /* variable declarations */    
     face_t f;    
     h = YMAX - YMIN;    
     del = DELOVRH*h;    
     ufree = UMEAN*(B+1.);    
     begin_f_loop(f,t)      
     {         
         F_CENTROID(x,f,t);         
         y = x[1];         
         if (y <= del)           
             F_PROFILE(f,t,i) = ufree*pow(y/del,B);         
         else           
             F_PROFILE(f,t,i) = ufree*pow((h-y)/del,B);      
       }    
    end_f_loop(f,t) 
  }
 /* profile for kinetic energy */
 DEFINE_PROFILE(k_profile,t,i) 
 {    
     real y, del, h, ufree, x[ND_ND];    
     real ff, utau, knw, kinf;    
     face_t f;    
     h = YMAX - YMIN;    
     del = DELOVRH*h;    
     ufree = UMEAN*(B+1.);    
     ff = 0.045/pow(ufree*del/VISC,0.25);    
     utau=sqrt(ff*pow(ufree,2.)/2.0);    
     knw=pow(utau,2.)/sqrt(CMU);    
     kinf=0.002*pow(ufree,2.);    
     begin_f_loop(f,t)      
     {         
         F_CENTROID(x,f,t);         
         y=x[1];           
         if (y <= del)             
             F_PROFILE(f,t,i)=knw+y/del*(kinf-knw);           
         else             
             F_PROFILE(f,t,i)=knw+(h-y)/del*(kinf-knw);        
      }      
      end_f_loop(f,t) 
  }
 /* profile for dissipation rate */ 
 DEFINE_PROFILE(dissip_profile,t,i) 
 {    
     real y, x[ND_ND], del, h, ufree;    
     real ff, utau, knw, kinf;    
     real mix, kay;    
     face_t f;    
     h = YMAX - YMIN;    
     del = DELOVRH*h;    
     ufree = UMEAN*(B+1.);    
     ff = 0.045/pow(ufree*del/VISC,0.25);    
     utau=sqrt(ff*pow(ufree,2.)/2.0);    
     knw=pow(utau,2.)/sqrt(CMU);    
     kinf=0.002*pow(ufree,2.);    
     begin_f_loop(f,t)      
     {         
         F_CENTROID(x,f,t);         
         y=x[1];         
         if (y <= del)           
             kay=knw+y/del*(kinf-knw);         
         else           
             kay=knw+(h-y)/del*(kinf-knw);         
         if (VKC*y < 0.085*del)           
             mix = VKC*y;         
         else           
             mix = 0.085*del;         
             F_PROFILE(f,t,i)=pow(CMU,0.75)*pow(kay,1.5)/mix;        
      }      
     end_f_loop(f,t) 
 }


03—计算结果


速度  plot XY图

湍流动能  plot XY图

湍流耗散率  plot XY图

可以看出速度、湍流动能和湍流耗散率分布符合预期值,其中,速度、湍流动能是对称的,而湍流耗散率不是对称的。

案例文件关注公众号获取“CFD流”

关注我,我有一万个CFD故事讲给你听


Fluent换热散热流体基础湍流UDF代码&命令二次开发标准解读
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-05-24
最近编辑:4年前
CFD流
硕士 | CFD工程师 微信公众号:CFD流
获赞 125粉丝 2474文章 47课程 17
点赞
收藏
未登录
1条评论
not e LOSER
模拟人加油!
3年前
回复
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈