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

UDF在windows中编译成功,而在linux下编译失败,怀疑是编译器的问题

[复制链接]
发表于 2013-3-16 22:40:50 | 显示全部楼层 |阅读模式
5金钱
自己编写了一个UDF,用来改变导热率。在windows中编译和解释都成功了。在

linux中进行解释能成功,而编译没有成功(虽然编译之后并没有提示出错,

但是并没有改变掉材料的热导率),怀疑是gcc编译器的问题(以前加载过其

它一些UDF,也编译成功了)。
现将程序贴出如下,恳请各位大侠帮帮忙,看

看哪个是编译出错的地方:
/*在容器顶部,按照一定规律分布着一群棒状驱动机构,每个棒状驱动机构

之间的x与y距离,是0.3041125的倍数*/
#include "udf.h"
int round(real f)
{if((int)f+0.5>f)
   return (int)f;
else return (int)f+1;
}
#define pitch (0.3041125)
DEFINE_PROPERTY(thetmalconduct,c,t)
{
    real DAO,x[ND_ND];    /*DAO为导热率*/
    real i,k,Ts,m;
    C_CENTROID(x,c,t);
        Ts=C_T(c,t)-273.15;
    i=(round(x[0]/pitch))*pitch;
    k=(round(x[2]/pitch))*pitch;/*i、k是确定的驱动机构的中心位置*/
        m=pow(x[0]-i,2.)+pow(x[2]-k,2.);
    if(x[1]<=3.4006)
    {
        if(sqrt(m)<=0.0375)
            DAO=0.561;
                else
           DAO=14.5+1.5*0.01*Ts;

    }
    else if(3.4006<x[1]&&x[1]<=4.2049)
    {
        if(sqrt(m)<=0.06)  
            DAO=0.635;
                else
           DAO=14.5+1.5*0.01*Ts;
    }
    else if(4.2049<x[1]&&x[1]<=6.2428)
    {
        if(sqrt(m)<=0.0215)  
            DAO=0.675;
                else
           DAO=14.5+1.5*0.01*Ts;
    }
    else
        DAO=14.5+1.5*0.01*Ts;
    return DAO;
}
但是在fluent中查看时,发现驱动机构的导热率都为15左右。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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