找回密码
 注册
查看: 4640|回复: 12

请教UDF问题,三维模型中,取一个面的平均温度赋予另外一个面上!

[复制链接]
发表于 2011-2-23 11:03:21 | 显示全部楼层 |阅读模式

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

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

x
三维模型,U形管,一个进口,一个出口,都是半径为16mm的圆,现在给进口温度写一个UDF,公式是:
                 
是 时刻进口温度,  是 (上一时刻)时刻出口温度,现在要取 时刻的出口平均温度赋予进口,下面程序是否正确.

#include "udf.h"
#define outlet_ID 14 //根据壁面1的实际id修改
real avg_temp=291;
real Q=5500;
real m=0.5;
real cp=4182;

DEFINE_ADJUST(outlet_avg_temp, domain)
{
        real NV_VEC(A);
        real sum_T_A=0.0,sum_A=0.0;
        face_t f;
        Thread*f_thread;
        f_thread = Lookup_Thread(domain, outlet_ID);
        begin_f_loop(f, f_thread)
        {
                F_AREA(A,f,f_thread);
                sum_A+=NV_MAG(A);               
                sum_T_A+=NV_MAG(A)*F_T(f, f_thread);
        }
        end_f_loop(f, f_thread)

        avg_temp=sum_T_A/sum_A;
}

DEFINE_PROFILE(inlet_T,t,position)
{
        face_t f;
        begin_f_loop(f,t)
        {
                F_PROFILE(f,t,position) = avg_temp+Q/m/cp;
        }
        end_f_loop(f,t)
}
求高手指点是否正确!
 楼主| 发表于 2011-2-23 11:11:28 | 显示全部楼层

请教UDF问题,三维模型中,取一个面的平均温度赋予另外一个面上!

三维模型,U形管,一个进口,一个出口,都是半径为16mm的圆,现在给进口温度写一个UDF,公式是:进口温度=上一时刻的出口温度+一个固定值
               
下面程序是否正确.

#include "udf.h"
#define outlet_ID 14 //根据壁面1的实际id修改
real avg_temp=291;
real Q=5500;
real m=0.5;
real cp=4182;

DEFINE_ADJUST(outlet_avg_temp, domain)
{
        real NV_VEC(A);
        real sum_T_A=0.0,sum_A=0.0;
        face_t f;
        Thread*f_thread;
        f_thread = Lookup_Thread(domain, outlet_ID);
        begin_f_loop(f, f_thread)
        {
                F_AREA(A,f,f_thread);
                sum_A+=NV_MAG(A);               
                sum_T_A+=NV_MAG(A)*F_T(f, f_thread);
        }
        end_f_loop(f, f_thread)

        avg_temp=sum_T_A/sum_A;
}

DEFINE_PROFILE(inlet_T,t,position)
{
        face_t f;
        begin_f_loop(f,t)
        {
                F_PROFILE(f,t,position) = avg_temp+Q/m/cp;
        }
        end_f_loop(f,t)
}
望高手指点是否正确!
发表于 2011-2-23 12:26:52 | 显示全部楼层
如果没理解错的话,完全可以通过一个UDF来实现。

另,注意公式,相等的是温度,还是热流量,密度是否受到温度变化影响?

[ 本帖最后由 znon 于 2011-2-23 04:28 编辑 ]
 楼主| 发表于 2011-2-23 17:16:44 | 显示全部楼层

回复 3# znon 的帖子

一个UDF如何实现,就是把出口温度加上一个固定值,赋予进口温度。刚刚学,请多多指教!
发表于 2011-2-23 17:41:36 | 显示全部楼层

回复 4# iamyzk 的帖子

#define ID_out 14 //根据壁面1的实际id修改
real avg_temp=291;
real Q=5500;
real m=0.5;
real cp=4182;

DEFINE_PROFILE(inlet_T, t, i)
{
         real NV_VEC(A);
        real sum_T_A=0.0,sum_A=0.0;
        Thread *thread_out;
         face_t f;
       Domain *domai;
       domain=Get_Domain(1);
        thread_out=Lookup_Thread(domain,ID_out);//找到出口的thread
/*对出口所需变量进行求和,此处thread为thread_out*/
        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_outd);
        }
        end_f_loop(f,thread_out)

        avg_temp=sum_T_A/sum_A;

/*对入口变量赋值,此处thread为t*/                                       
          begin_f_loop(f,t)
        {
                F_PROFILE(f,t,i) = avg_temp+Q/m/cp;
        }
        end_f_loop(f,t)
}
细节上你再看看有没有什么错误,大致就是这样。
 楼主| 发表于 2011-2-24 08:30:56 | 显示全部楼层

回复 5# znon 的帖子

特别感谢,我这就去看看!
发表于 2011-11-22 10:06:44 | 显示全部楼层

回复 5# znon 的帖子

ZONE 您好!我把您写的这段UDF代入FLUENT!提示:thread_out=Lookup_Thread(domain,ID_out);这句话错误,具体内容如下:Error: G:\c++\exercise\u.c: line 14: Lookup_thread: undeclared variable 请问是不是我输入的错误?谢谢指教!
发表于 2011-11-22 10:07:39 | 显示全部楼层

回复 1# iamyzk 的帖子

请问您的这个问题解决了吗?可否给我发来一份你修改过的UDF 我参考参考!谢谢帮助!
发表于 2011-11-22 10:12:34 | 显示全部楼层

回复 6# iamyzk 的帖子

朋友,可否把您的QQ号告诉下? 方便问题交流!
发表于 2011-11-22 10:13:12 | 显示全部楼层

回复 5# znon 的帖子

朋友,可否把您的QQ号告诉下? 方便问题交流!
发表于 2011-11-22 19:18:46 | 显示全部楼层

回复 5# znon 的帖子

朋友您好!可否问您一个问题!用UDF从EXCEL或者TXT文件中读取数据,该如何做呢?~
发表于 2011-11-22 20:23:05 | 显示全部楼层
看错了、、、、
发表于 2012-6-7 12:25:07 | 显示全部楼层
请教各位前辈:我的问题跟楼主的有些类似,也是需要取一个面的温度加到另一个面上。不同的地方是,我需要跟着计算域内某个壁面的温度变化,因此需要瞬态求解。自己尝试了一下,发现两个温度有关联的壁面,温度不能保持更新。
麻烦高手解答一下,是不是在DEFINE_PROFILE中定义的关系式,如果不包含流体域内的时间变量,则这个UDF在瞬态过程中不会在每个timestep更新?如果需要每个timestep都更新一下壁面的边界条件,是不是应该把begin_f_loop放到DEFINE_ADJUST中去?
恳请解答,万分感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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