找回密码
 注册
查看: 1331|回复: 0

fluent 通过UDF来以某点的温度控制热流密度

[复制链接]
发表于 2016-2-24 13:24:26 | 显示全部楼层 |阅读模式

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

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

x
大家好!
    我在做一个模拟,模型如下,是一根很简单的圆柱。
QQ图片20160224125228.png
长1000mm,底面半径为12.5mm。
在fluent中以左边的圆心为原点。
我现在要以某个点的温度来控制壁面的热流密度,当温度小于某值时,热流密度为1500,当温度大于这个值时,热流密度为0。
参考网上的一些内容,我写了一个UDF,如下:

#include "udf.h"

real tem;
DEFINE_ADJUST(get1_tem,d)
{
    Thread *t;
    cell_t c;
    real xc[ND_ND];
    thread_loop_c(t,d)
        {
       begin_c_loop(c,t)
           {
          C_CENTROID(xc,c,t);
          if(sqrt(ND_SUM(pow(xc[0],2.), pow(xc[1]-0.0123,2.), pow(xc[2]-0.3,2.)))<0.0001)
        /*求(0,0.0123,0.3)这个点的温度值*/
             tem=C_T(c,t);
           }
           end_c_loop(c,t)
         }
}

DEFINE_PROFILE(new_heat1,t,i)
{
        face_t f;
        begin_f_loop(f,t)
        {
                if(tem<=450.)
                        F_PROFILE(f,t,i) = 1500;
            
                else
                        F_PROFILE(f,t,i) = 0;
        }
        end_f_loop(f,t)
}

我用的是解释型,fluent解释的时候没发生错误,具体使用的时候,发现边界的热流密度一直是1500。

我有几个问题
1,C_CENTROID这个函数求到的坐标是fluent scale mesh里的那个三维坐标吗。

2,我在scale mesh显示的是mm,在UDF里无论怎么样都是用m做单位的吗。

3,为满足要求这个udf合适吗,为什么我使用的时候热流密度一直是1500.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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