找回密码
 注册
查看: 1970|回复: 0

各位udf高手请进来看看,救救我吧!

[复制链接]
发表于 2010-12-13 17:12:54 | 显示全部楼层 |阅读模式

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

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

x
我的热源是一个移动的高斯热源 加载在一个表面!儿热源的加载方式是脉冲式的 及在某时间作用 在另一段时间 不作用!如此循环,按照这种思路我编了一个udf程序但是 编译连接的时候能成功 初始化就出问题了!希望各位给予指点!附udf:(我的udf的思路是在小于T0时间加载热源在T0到T这段时间不加载,如此往复)
#include "udf.h"
DEFINE_PROFILE(temperature_profile, thread, position)
{
real m[ND_ND];
real x;
real y;
face_t f;
real x0,y0,R;
real v=0.00167;
real T=0.03;
real T0=0.006;
real r=0.0003;
real J=1.5;
real t=RP_Get_Real("flow-time");
real i=0;
do
{
if(t<=i*T+T0)
  {
    begin_f_loop(f,thread)
   {
    F_CENTROID(m,f,thread);
    x=m[0];
    y=m[1];
    x0=v*t;
    y0=0;
    R=sqrt(x-x0)*(x-x0)+(y-y0)*(y-y0);
    if(R<=r)
    F_PROFILE(f,thread,position)=3*1.5*0.8/(3.14159*0.006*r*r)*exp(-3*R*R/r*r);
    else
    F_PROFILE(f, thread, position)=0;
   }
   end_f_loop(f, thread)
   printf("a");
   printf("%f",t);
   }
else if(T+i*T>t>i*T+T0)
  {
  begin_f_loop(f,thread)
   {
    F_CENTROID(m,f,thread);
    x=m[0];
    y=m[1];
    F_PROFILE(f, thread, position)=0;
   }
   end_f_loop(f, thread)
   printf("2");
   printf("%f",t);
   }
else
{
i++;
printf("3");
printf("%f",i);
}
}while(i<=10);
}

[ 本帖最后由 linken 于 2010-12-13 17:46 编辑 ]
X-Y.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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