fluent UDF好像没有抓取到最大温度,请帮忙指正? 50

浏览:1100 回答:6

程序是想抓取一个域内体网格的最大温度tmax,然后用tmax和设定的温度313.15比较大小,然后来判定执行哪个加热功率,但是程序一直执行define profile语句中else的功率,虽然tmax已经大于我设定的313.15。实在看不出哪里有错,还请各位大神帮忙指点一下,感谢!感谢!

程序如下:

#include "udf.h"
real tmax;
real thermosensor_temperature;
real heat_change_temperature = 313.15; /*40 du*/
real heater_change           = 26400000; /*100W*/
real heater_unchange         = 79600000;/*300W*/

DEFINE_EXECUTE_AT_END(tsensor)
{
 cell_t c;
 Domain *d;
 Thread *t;
 d = Get_Domain(1);
 t = Lookup_Thread(d,6);
 tmax=253.15; /*-20du*/
  begin_c_loop(c,t)
 { 
     thermosensor_temperature = C_T(c,t); /* get thermocouple temperature */
     if(thermosensor_temperature > tmax)
      {
        tmax = thermosensor_temperature;
      }  
      else
      {
        tmax=253.15;/*-20du*/
      }  
 }
 end_c_loop(c,t)
}

DEFINE_PROFILE(heat_bc,t,i)
{ 
 face_t f;
 if (tmax >= heat_change_temperature)
 {
  begin_f_loop(f,t)
  {
   F_PROFILE(f,t,i) = heater_change;
   /*Message("The heater_change is '%f'\n", heater_change);*/
  }
  end_f_loop(f,t)
 }
 else
 {
  begin_f_loop(f,t)
  {
   F_PROFILE(f,t,i) = heater_unchange;
   /*Message("The heater_unchange is '%f'\n", heater_unchange);*/
  }
  end_f_loop(f,t)
 }
}


 


邀请回答 我来回答

全部回答

(2)
默认 最新
NANK
把at-end宏里面的tmax存储到udm里,profile宏里面调用这个udm,来实现两个宏的tmax数据传递
2018年6月13日
评论 1 点赞 1
NANK
这个都发现不了错误?两个宏都使用tmax,数据传递都没有,当然起不了作用。
2018年6月13日
评论 3 点赞 1

没解决?试试专家一对一服务

换一批