24小时热门版块排行榜    

查看: 6433  |  回复: 16

stanstanne

银虫 (正式写手)

[求助] 【已完结】FLUENT 换热系数UDF的编写求助

希望学习FLUENT UDF的虫友帮帮忙,关于施加换热系数边界条件的UDF。

问题描述:一根有厚度圆管,内部有导热油流过,外部有带速度的空气流过,如下图。
【已完结】FLUENT 换热系数UDF的编写求助
但是不知道定义换热系数边界条件用什么宏。

看help文件,发现DEFINE_PROFILE和DEFINE_HEAT_FLUX好像都可以,但是没有例子

自己不会编,希望虫友们给点建议

[ Last edited by 1592203609 on 2017-3-6 at 16:04 ]
回复此楼

» 猜你喜欢

我是一个粉刷匠
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

stanstanne

银虫 (正式写手)

刚才成功编译换热系数的UDF,感谢http://muchong.com/html/201304/5739908.html上附的代码。

现在把自己写的代码放在下面,很长,希望对感兴趣的虫友有所帮助

/* UDF used to calculate the forced convection between the bare absorber tube and the air around it.*/

#include "udf.h"

#define D_outer 0.07
#define temp_air 293.15
#define speed_air 3

/**************declaration of the functions***************************/
real dry_air_density(real temp);
real dry_air_specific_heat(real temp);
real dry_air_thermal_conductivity(real temp);
real dry_air_dynamic_viscosity(real temp);

/*thread is a pointer to the face's thread, and position is a numerical lbael for the variable
  being set within each loop*/
DEFINE_PROFILE(forced_convection_air_abs, thread, position)
{
    real mu_outer, lambda_outer, Cp_outer, rho_outer, mu_air, lambda_air, Cp_air, rho_air, v_air;
    /*transitional parameters*/
    real nu_outer, nu_air, alpha_outer, alpha_air, Re_outer, Pr_outer, Pr_air;
    /*coefficients of Zhukausas's correlation*/
    real m, n, C;
    real temp_outer;/*temperature of the outerer absorber tube*/
    real Nu_outer_air, h_outer_air;    /*Nusselt number to calculate forced heat transfer coefficient*/
    face_t f;
    begin_f_loop(f,thread)
    {
        temp_outer=F_T(f,thread);
        /*the process to obtain the property value of the air*/
        /*Via the linear fitting method, we can obtain the expression of the properties of the air
        varying with the temperature, temperature ranges from 20 Celsius to 400 Celsius*/
        mu_outer=dry_air_dynamic_viscosity(temp_outer);
        mu_air=dry_air_dynamic_viscosity(temp_air);
        lambda_outer=dry_air_thermal_conductivity(temp_outer);
        lambda_air=dry_air_thermal_conductivity(temp_air);
        Cp_outer=dry_air_specific_heat(temp_outer);
        Cp_air=dry_air_specific_heat(temp_air);
        rho_outer=dry_air_density(temp_outer);
        rho_air=dry_air_density(temp_air);

        nu_air=mu_air/rho_air;
        nu_outer=mu_outer/rho_outer;
        alpha_air=lambda_air/(Cp_air*rho_air);/* make sure that the unit of the parameters is international*/
        alpha_outer=lambda_outer/(Cp_outer*rho_outer);
        Re_outer=speed_air*D_outer/alpha_air;   /*the Reynold number of flowing air*/
        Pr_outer=nu_outer/alpha_outer;
        Pr_air=nu_air/alpha_air;

        /*if Re_outer is used outer of range, print warning information on the screen*/
        /**********waiting to complete********************/
            /*if Pr_air is used outer of range, print warning information on the screen*/
        /**********waiting to complete********************/
        /*coefficients for external forced convection Nusselt Number correlation(Zhukausas's correlation)*/
        if(Pr_air<=10)
            n=0.37;
        else
            n=0.36;

        if(Re_outer<40)
        {
            C=0.75;
            m=0.4;
        }
        else if(Re_outer>=40 && Re_outer<1000)
        {
            C=0.51;
            m=0.5;
        }
        else if(Re_outer>=1000 && Re_outer<2e5)
        {
            C=0.26;
            m=0.6;
        }
        else if(Re_outer>=2e5 && Re_outer<1e6)
        {
            C=0.076;
            m=0.7;
        }
        else
            printf("the Reynold number is out of the suitable range, the result may not be accurate!!\n";

        /*Zhukauskas's correlation for external forced convection flow normal to an isothermal cylinder */
        Nu_outer_air=C*pow(Re_outer,m)*pow(Pr_air,n)*pow(Pr_air/Pr_outer,1/4);
        F_PROFILE(f,thread,position)=Nu_outer_air*lambda_air/D_outer;
    }
    end_f_loop(f,thread)
}

/*declaration of the function calculating the dry air density*/
real dry_air_density(real temp)
{
    real rho;
    if(temp>=273.15 && temp<=673.15)
        rho=3.60759e-6*temp*temp-0.00532*temp+2.44735;
    else
        printf("the temperature is out of range, the result may not be accurate!!\n";
    return rho;
}

/*declaration of the function calculating the dry air specific heat*/
real dry_air_specific_heat(real temp)
{
    real Cp;
    if(temp>=273.15 && temp<=673.15)
        Cp=-8.23356e-10*pow(temp,3)+1.51078e-6*temp*temp-6.80959e-4*temp+1.09594;
    else
        printf("the temperature is out of range, the result may not be accurate!!\n";
    return Cp;
}

/*declaration of the function calculating the dry air thermal conductivity*/
real dry_air_thermal_conductivity(real temp)
{
    real lambda;
    if(temp>=273.15 && temp<=673.15)
        lambda=-2.74554e-6*temp*temp-0.00952*temp+0.03672;
    else
        printf("the temperature is out of range, the result may not be accurate!!\n";
    return lambda;
}

/*declaration of the function calculating the dry air dynamic viscosity*/
real dry_air_dynamic_viscosity(real temp)
{
    real mu;
    if(temp>=273.15 && temp<=673.15)
        mu=-2.0294e-5*temp*temp+0.05877*temp+2.72007;
    else
        printf("the temperature is out of range, the result may not be accurate!!\n";
    return mu;
}
我是一个粉刷匠
3楼2017-03-06 15:56:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

stanstanne

银虫 (正式写手)

没人回吗,好吧,自己顶,希望会UDF的大神可以给点建议

昨天找到一个相关话题,感兴趣的虫友可以看一下。

链接:http://muchong.com/html/201304/5739908.html
我是一个粉刷匠
2楼2017-03-06 14:58:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

461256004

新虫 (初入文坛)

4楼2017-03-09 11:11:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

第五茂芊

新虫 (初入文坛)

好东西,楼主只用一个钟头就解决了,我才初学fluent,感觉还是任重道远啊
5楼2017-03-14 15:52:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

MoonLee777

新虫 (正式写手)

6楼2017-04-17 02:56:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
7楼2017-05-19 15:03:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxh_hnhy

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by stanstanne at 2017-03-06 15:56:38
刚才成功编译换热系数的UDF,感谢http://muchong.com/html/201304/5739908.html上附的代码。

现在把自己写的代码放在下面,很长,希望对感兴趣的虫友有所帮助

/* UDF used to calculate the forced convectio ...

楼主,我是udf新手,想问一下你上面的函数声明这一块,声明完函数后,可以直接用,但是udf怎么识别这些函数的作用呢,为啥能得到这些值呢,还是说这几个函数udf头文件中本身就存在???谢谢楼主
8楼2017-10-27 09:05:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxh_hnhy

新虫 (初入文坛)

/**************declaration of the functions***************************/
real dry_air_density(real temp);
real dry_air_specific_heat(real temp);
real dry_air_thermal_conductivity(real temp);
real dry_air_dynamic_viscosity(real temp);
…………………………
…………………………
mu_outer=dry_air_dynamic_viscosity(temp_outer);
        mu_air=dry_air_dynamic_viscosity(temp_air);
        lambda_outer=dry_air_thermal_conductivity(temp_outer);
这些声明的函数可以直接用来取值吗,udf内部有这些函数吗,udf是怎么识别这些函数的?????求问
9楼2017-10-27 09:09:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxh_hnhy

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by MoonLee777 at 2017-04-17 02:56:04
楼主写得好

/**************declaration of the functions***************************/
real dry_air_density(real temp);
real dry_air_specific_heat(real temp);
real dry_air_thermal_conductivity(real temp);
real dry_air_dynamic_viscosity(real temp);
…………………………
…………………………
mu_outer=dry_air_dynamic_viscosity(temp_outer);
        mu_air=dry_air_dynamic_viscosity(temp_air);
        lambda_outer=dry_air_thermal_conductivity(temp_outer);
这些声明的函数可以直接用来取值吗,udf内部有这些函数吗,udf是怎么识别这些函数的?????求问
10楼2017-10-27 09:10:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 stanstanne 的主题更新
信息提示
请填处理意见