找回密码
 注册
查看: 2923|回复: 3

UDF能量方程,内附程序

[复制链接]
发表于 2009-7-14 15:43:40 | 显示全部楼层 |阅读模式

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

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

x
UDF能量方程,内附程序
做动网格计算,UDF能量源项程序如下,也设置了memory,source应该是加到能量方程中去了,但是计算后处理,C_UDMI(c,t,4)中得数为0,这个能量区的温度都高于5000度,不可能没有一点能量,这是为什么呀?请高手指点,看看我的source有问题没?



DEFINE_SOURCE(energy,c,t,dS,eqn)
{
  double source;
  double A=5.0e+04;                    
  double time60=15e-3;           
  double timecur=CURRENT_TIME+15e-3;         
  double dt=timecur-time60;
  int    n=RP_Get_Integer("time-step");         
  double resis;
  double TIME=CURRENT_TIMESTEP;
  double arc14ms=-(timecur-time60)*2*pi*50;
  double VOLUME;                             
  
  //Thread *t;
  //cell_t c;
    dS[eqn]=0.0;

    temp=C_T(c,t);
    if(temp>=5000)
    {source=pow(A*sin(arc14ms),2)*C_UDMI(c,t,2)-C_UDMI(c,t,1);
         return source;}
    else if((temp>=4000)&&(temp<5000))
        {resis=10000/0.005;
         source=pow(A*sin(arc14ms),2)*resis-C_UDMI(c,t,1);
         return source;}
    else if((temp>3000)&&(temp<4000))
        {resis=10000/0.002;
         source=pow(A*sin(arc14ms),2)*resis-C_UDMI(c,t,1);
         return source;}
    else
    {source=0;
         return source;}
        
     C_UDMI(c,t,4)=source;
     
     return source;
}
 楼主| 发表于 2009-7-14 20:15:22 | 显示全部楼层
问题大概出在前面用DEFINE_EXECUTE_AT_END(ON_DEMAND) 中,定义的)C_UDMI(c,t,2),和C_UDMI(c,t,1)没调用到DEFINE_SOURCE中来,计算后得0;不过在后处理中C_UDMI(c,t,2),和C_UDMI(c,t,1)都是有值的呀?
哪位高手提点一下C_UDMI(c,t,i)定义有什么要求吗,这个应该是存储器,为什么在source中调用无值呢?
 楼主| 发表于 2009-7-15 11:20:10 | 显示全部楼层
走过路过的朋友,请帮帮忙呀
发表于 2009-12-10 20:20:49 | 显示全部楼层
重新定义一个real ss   令ss=source 试试看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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