找回密码
 注册
查看: 2128|回复: 4

求大神指教:在FLUENT用UDF设置指数型速度边界条件问题

[复制链接]
发表于 2012-12-12 22:38:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位大虾:小弟模拟室外风场,用UDF进行指数型速度边界条件,用K-E模型,加载UDF后总出现错误,具体是在初始化的时候K、E两项出现-1.#IND错误,网上看原因可能是出现除零或者无穷大,自己认为UDF程序没有问题,但不知道是那的错误(错误在附图中),建筑模型为90X37X20m,计算域为280X140X80m,网格采用四面体为300万,模型中用到interface边界条件。UFD程序如下:
/* 定义大气边界层速度,湍流动能,湍流耗散率(alpha=0.22,10m高度风速2.2m/s,边界层高度80m) */

#include "udf.h"
#define UMEAN 2.2
#define Alpha 0.22
#define ZB 10
#define ZG 80

DEFINE_PROFILE(x_velocity,thread,position)
{
  real z,u,x[ND_ND];
  face_t f;
  begin_f_loop(f,thread)
  {  
    F_CENTROID(x,f,thread);
    z=x[1];
    if(z<=ZB)
      u=UMEAN*pow(ZG/10,0.22)*pow(ZB/ZG,Alpha);
    else if(z>ZB&&z<=ZG)
      u=UMEAN*pow(ZG/10,0.22)*pow(z/ZG,Alpha);
    else
      u=UMEAN*pow(ZG/10,0.22)*pow(ZG/ZG,Alpha);
    F_PROFILE(f,thread,position)=u;
   }
  end_f_loop(f,thread)
}


DEFINE_PROFILE(k_profile,thread,position)
{
  real z,ii,u,x[ND_ND];
  face_t f;
  begin_f_loop(f,thread)
  {  
    F_CENTROID(x,f,thread);
    z=x[1];
    if(z<=ZB)
      {
      u=UMEAN*pow(ZG/10,0.22)*pow(ZB/ZG,Alpha);
      ii=0.1*pow(ZB/ZG,-0.05-Alpha);
      }
    else if(z>ZB&&z<=ZG)
      {
      u=UMEAN*pow(ZG/10,0.22)*pow(z/ZG,Alpha);
      ii=0.1*pow(z/ZG,-0.05-Alpha);
      }
    else
      {
      u=UMEAN*pow(ZG/10,0.22)*pow(ZG/ZG,Alpha);
      ii=0.1*pow(ZG/ZG,-0.05-Alpha);
      }
    F_PROFILE(f,thread,position)=0.3*pow(2.5*ii,2);
   }
  end_f_loop(f,thread)
}


DEFINE_PROFILE(dissip_profile,thread,position)
{
  real z,ii,u,x[ND_ND],ux2,kay;
  face_t f;
  begin_f_loop(f,thread)
  {  
    F_CENTROID(x,f,thread);
    z=x[1];
    if(z<=ZB)
      {
       u=UMEAN*pow(ZG/10,0.22)*pow(ZB/ZG,Alpha);
      ii=0.1*pow(ZB/ZG,-Alpha-0.05);
      }
    else if(z>ZB&&z<=ZG)
      {
      u=UMEAN*pow(ZG/10,0.22)*pow(z/ZG,Alpha);
      ii=0.1*pow(z/ZG,-Alpha-0.05);
      }
    else
      {
      u=UMEAN*pow(ZG/10,0.22)*pow(ZG/ZG,Alpha);
      ii=0.1*pow(ZG/ZG,-Alpha-0.05);
      }
    kay=0.3*pow(2.5*ii,2);
    ux2=kay*0.3;
    F_PROFILE(f,thread,position)=pow(ux2,1.5)/(0.04*z);
   }
  end_f_loop(f,thread)
}
谢谢各位
无标题.png
 楼主| 发表于 2012-12-13 22:42:22 | 显示全部楼层
问题已经解决
发表于 2014-3-17 23:06:01 | 显示全部楼层
你是怎么解决的 能不能分享以下
发表于 2014-3-25 15:04:24 | 显示全部楼层

回复 2# likeshiwo2008 的帖子

请问是如何解决的
发表于 2014-3-25 15:04:38 | 显示全部楼层

回复 3# ldy080604 的帖子

请问知道如何解决吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表