找回密码
 注册
查看: 1222|回复: 6

求助 udf

[复制链接]
发表于 2013-5-25 11:03:05 | 显示全部楼层 |阅读模式

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

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

x
问题描述:
一个调用udf的算例,不是实际例子,只是自己想做的一个例子。假设,空气流过一个中间有加热丝的管道,被加热(加热丝的发热功率由出口处温度限制,当出口温度大于473k时,发热丝停止热量输出),之后再通过吸热工件降温,空气入口温度调用出口的平均温度。
自己编写的一个udf,通过计算发现不对,从监视图中看到入口平均温度低于出口平均温度很多,同时温度限制加热丝热量的田段条件好像也不起作用,求大侠们帮忙。

udf如下
#include "udf.h"
real NV_VEC(A);
real avg_temp;
real sum_T_A=0.0;
real sum_A=0.0;
real tcenter;
Thread *thread_out;
face_t f;
Domain *domain;
DEFINE_ADJUST(adjust,d)
{
  domain=Get_Domain(1);
  thread_out=Lookup_Thread(domain,6);
  begin_f_loop(f,thread_out)
    {
        F_AREA(A,f,thread_out);
        sum_A+=NV_MAG(A);                 
        sum_T_A+=NV_MAG(A)*F_T(f, thread_out);
     }
      end_f_loop(f,thread_out)
   tcenter=sum_T_A/sum_A;
}

DEFINE_PROFILE(heat_flux, thread, position)   
{
    begin_f_loop(f,thread)
      {
                if (tcenter<=473)
                {
                F_PROFILE(f,thread, position)=30000;
                }
                else
                {
                F_PROFILE(f,thread, position)=0;               
                }
       }
    end_f_loop(f,thread)
}

[ 本帖最后由 学习交流 于 2013-5-25 11:04 编辑 ]
未命名.jpg

2.rar

1.95 MB, 下载次数: 64

 楼主| 发表于 2013-5-25 13:28:53 | 显示全部楼层
发表于 2013-5-26 09:55:36 | 显示全部楼层

求教

我也是遇到相似的问题,是这样的,墙体外表面温度随时间变化,温度时间函数拟合为T=-0.11(t-12)*(t-12)+38。fluent计算需要用到UDF,下面是我自己编写的,但是结果不对,导入fluent里面说是时间步长不可用,用一阶什么的。请帮我看看那有问题啊。感激不尽。



#include "udf.h"
DEFINE_PROFILE(temperature_T_waibi, face,index)
{
/* this will hold the position vector */
real t;
face_t f;
for(t=0;t<=86400;t++)
{
begin_f_loop(f, face)
{
        F_PROFILE(f,face,index) =-0.11*(t/3600-12)*(t/3600-12)+311.;
}
end_f_loop(f, face)
}
}
 楼主| 发表于 2013-5-28 11:02:13 | 显示全部楼层
直接用非稳态,读取你的计算时间不就行了?你这是时间自己叠加啊?
 楼主| 发表于 2013-5-28 11:02:36 | 显示全部楼层
为什么没人理会我的问题啊?
 楼主| 发表于 2013-5-30 19:51:24 | 显示全部楼层
 楼主| 发表于 2013-6-7 19:38:23 | 显示全部楼层
没什么没有人回答啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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