|
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左右。 |
|