24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1779  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhoufu1989

银虫 (小有名气)

[求助] fluent udf compile失败

才接触udf不久的新人,希望各位前辈指点迷津!!
模型如图示:,要对红色的圆柱壁面添加热流。
http://bcs.duapp.com/emuchnet/20 ... _1369793765_108.png,热流随角度的关系如图所示,采用分段多项式拟合。
由于我采用的是直角坐标,所以上面拟合的关系式,要将角度(圆柱面半径25mm)转换成x、y坐标,编写的udf如下:
#include "udf.h"
#define A 57.295709
#define R 25.000
DEFINE_PROFILE(heat_flux,thread,index)
{
        real x[ND_ND];
        real a,b,temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8;
        face_t f;
        begin_f_loop(f,thread)
        {
                F_CENTROID(x,f,thread);
                a=x[0];
                b=x[1];
                if(a>=0&b>=0)
                {
                        temp1=A*asin(b/R);
                        F_PROFILE(f,thread,index)=773.08579+6.5979*temp1-0.01532*temp1*temp1-0.00467*temp1*temp1*temp1+0.000033032*temp1*temp1*temp1*temp1;
                }
                else if(b>0&-16.8897<=a<0)
                {
                        temp2=180-A*asin(b/R);
                        F_PROFILE(f,thread,index)=1310690.000-37867.31033*temp2+353.99224*temp2*temp2-1.0564*temp2*temp2*temp2;
                }
                else if(b>0&-24.0908<=a<-16.8897)
                {
                        temp3=180-A*asin(b/R);
                        F_PROFILE(f,thread,index)=485341.70814-7575.60803*temp3+43.67718*temp3*temp3-0.08533*temp3*temp3*temp3;
                }
                else if(b>=0&-25.0<=a<-24.0908)
                {
                        temp4=180-A*asin(b/R);
                        F_PROFILE(f,thread,index)=-21122000.000+492125.95098*temp4-4243.96404*temp4*temp4+16.09596*temp4*temp4*temp4-0.02267*temp4*temp4*temp4*temp4;
                }
                else if(b>=0&-23.7081<=a<-25.0)
                {
                        temp5=180-A*asin(b/R);
                        F_PROFILE(f,thread,index)=-21122000.000+492125.95098*temp5-4243.96404*temp5*temp5+16.09596*temp5*temp5*temp5-0.02267*temp5*temp5*temp5*temp5;
                }
                else if(b<0&-23.7081<a<=-16.5655)
                {
                        temp6=180-A*asin(b/R);
                        F_PROFILE(f,thread,index)=164115.58656-971.46727*temp6-0.07801*temp6*temp6+0.0094*temp6*temp6*temp6;
                }
                else if(b<0&-16.5655<a<=0)
                {
                        temp7=180-A*asin(b/R);
                        F_PROFILE(f,thread,index)=-15203500.000+187415.08644*temp7-761.84536*temp7*temp7+1.0232*temp7*temp7*temp7;
                }
                else
                {
                        temp8=360+A*asin(b/R);
                        F_PROFILE(f,thread,index)=337883.03869-4342.70635*temp8+20.62194*temp8*temp8-0.04289*temp8*temp8*temp8+0.000033032*temp8*temp8*temp8*temp8;
                }
        }
        end_f_loop(f,thread)
}
interpret不报错,但是算了一下,最后热流没加上去。
compile出现如下错误:
已复制         1 个文件。
(system "copy D:\software\fluent\fluent\Fluent.Inc\fluent6.3.26\src\makefile_nt.udf libudf\ntx86\3d\makefile"
已复制         1 个文件。
(chdir "libudf"()
(chdir "ntx86\3d"()

Done.
"f:/gambit/sample"

Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。

Error Object: ()

谢谢大家了!!
fluent udf compile失败
模型图.png


fluent udf compile失败-1
b.png
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

早起的鸟儿有虫吃……
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

★ ★
xiegangmai: 金币+2, 谢谢参与! 2013-06-02 11:07:17
zhoufu1989: 回帖置顶 2013-06-02 19:31:50
关系写法有问题,C语言和数学表达是不一样的,在你的程序中,举例来说:
else if(b>0&-16.8897<=a<0)  这句,先不管意义,正确语法应该为:
else if(b>0&&-16.8897<=a&&a<0)
   程序中像这样的错误不在少数。
6楼2013-05-31 17:05:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

zhoufu1989

银虫 (小有名气)

原先只用一个temp的,但是后来提醒有覆盖,所以用了8个temp变量的
早起的鸟儿有虫吃……
2楼2013-05-29 10:34:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Scorpio007

木虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 谢谢参与! 2013-06-03 21:15:48
如果确定正确的udf是可以编译的,那么else if(b>=0&-23.7081<=a<-25.0)a的范围有问题,改一下试试……

» 本帖已获得的红花(最新10朵)

……
3楼2013-05-29 21:53:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhoufu1989

银虫 (小有名气)

送红花一朵
引用回帖:
3楼: Originally posted by Scorpio007 at 2013-05-29 21:53:49
如果确定正确的udf是可以编译的,那么else if(b>=0&-23.7081<=a<-25.0)a的范围有问题,改一下试试……

我用ansys fluent能够加载热流了,现在出现新的问题了,热流加的不对,出现了负值,与我期望的不一样。这是怎么回事?希望您能帮帮我
早起的鸟儿有虫吃……
4楼2013-05-31 16:19:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见