找回密码
 注册
查看: 2760|回复: 5

(拜求大侠)请问输入的边界条件与输出有关系怎么写UDF

[复制链接]
发表于 2007-7-19 16:29:03 | 显示全部楼层 |阅读模式

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

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

x
具体情况是这样的:
    有一个水管,刚开始给定一个进水温度,运行一个步长后用UDF把水管的出水温度求出,然后作为水管的进水温度,请问大家这个UDF怎么写,我先前写了一个UDF:
#include "udf.h"
DEFINE_ADJUST(gettemp,domian)
{
   
   face_t f;
   int ID=4;/*边界出口的ID*/
   Thread *thread=Lookup_Thread(domain,ID);/*将指针指向出口边界*/
  begin_f_loop(f,thread)
    {
       F_UDMI(f,thread,1)=F_T(f,thread);/*将求得的出口温度值存在内存中*/
      
    }
    end_f_loop(f,thread)
}
DEFINE_PROFILE(input_temp,thread,position)
{
   face_t f;
   begin_f_loop(f,thread)
   {
   
     real t=RP_Get_Real("flow-time");
      if(t<=10)
      {
       F_PROFILE(f,thread,position)=300;/*刚开始给定进口温度为300K*/
      }
     else
     {
     F_PROFILE(f,thread,position)=F_UDMI(f,thread,1);/*从内存中取出出口温度值赋给进口*/
     }
    }
   end_f_loop(f,thread)
}
编译通过了但是结果不对,我查了一下是从内存中取出的值不是出口的温度,后来我又把用内存存取的方式换成了用一个全局变量代替,但值同样也传不到进口处!
后来我又改了一下UDF:
&#35;include "udf.h"
   real temp;/*定义一个全局变量*/
DEFINE_EXECUTE_AT_END(get_temp)/*在每个步长结束后取出出口的温度*/
{
   Domain *domain;
   domain=Get_Domain(1);
   face_t f;
   int ID=4;
   real temp;
   Thread *thread=Lookup_Thread(domain,ID);/*将指针指向出口边界*/
  begin_f_loop(f,thread)
  
    {
         temp=F_T(f,thread);  /*将求得的出口温度值存在全局变量temp中*/   
}      
    end_f_loop(f,thread)   
}
DEFINE_PROFILE(input_temp,thread,position)
{
   face_t f;
   begin_f_loop(f,thread)
   {
   
     real t=RP_Get_Real("flow-time");
      if(t<=100)
      {
       F_PROFILE(f,thread,position)=300;
      }
     else
     {
     F_PROFILE(f,thread,position)=temp;/*从全局变量中取出出口温度值*/
     }
    }
   end_f_loop(f,thread)
}
这个UDF没有通过编译,
请问一下是不是我的宏选择的有问题?还是怎么的了,劳烦大家指教,本人不胜感激!
 楼主| 发表于 2007-7-19 21:57:11 | 显示全部楼层

(拜求大侠)请问输入的边界条件与输出有关系怎么写UDF

ding
发表于 2007-8-4 21:19:59 | 显示全部楼层

(拜求大侠)请问输入的边界条件与输出有关系怎么写UDF

请问楼住,你的出口和进口是多少网格,网格数一样吗?出口温度的平均值赋值给进口吗?为什么不用周期性边界条件?
你这个问题比较奇怪啊,为什么要将出口温度给进口温度?
发表于 2007-8-6 19:13:30 | 显示全部楼层

(拜求大侠)请问输入的边界条件与输出有关系怎么写UDF

定义domain为全局变量,即在开始时定义domain为Domain类型即可。
求解出口温度最好用face平均值,好像有一个什么udf函数,
出口温度=面积i*温度/总面积

一下子记不起来了。
发表于 2007-8-8 14:48:36 | 显示全部楼层

(拜求大侠)请问输入的边界条件与输出有关系怎么写UDF

理论上讲,出口温度应该是体积平均,即能量守恒
 楼主| 发表于 2007-8-12 19:28:35 | 显示全部楼层

(拜求大侠)请问输入的边界条件与输出有关系怎么写UDF

谢谢大家的支持,问题已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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