fluent 如何udf控制多入口逐个进气? 20

浏览:1444 回答:3

有2个进气口,如何控制入口1进气1s然后关闭,入口2进气1s然后关闭,然后循环作用。尝试学udf控制,但失败了(从效果图看还是两个口同时进气)。请教大神们如何编写udf或有什么招。

我的udf如下:

#include "udf.h"

DEFINE_PROFILE(inlet1_pressure, thread, position)

{

real t;

face_t f;

begin_f_loop(f, thread)

{

t=RP_Get_Real("flow-time");

if (0<t<=1 || 2<t<=3)

{

F_PROFILE(f,thread,position) = 300000;

}

else 

{

F_PROFILE(f,thread,position) = 0;

}

}

end_f_loop(f,thread)

}

DEFINE_PROFILE(inlet2_pressure, thread, position)

{

real t;

face_t f;

begin_f_loop(f, thread)

{

t=RP_Get_Real("flow-time");

if (1<t<=2 || 3<t<=4)

{

F_PROFILE(f,thread,position) = 300000;

}

else 

{

F_PROFILE(f,thread,position) = 0;

}

}

end_f_loop(f,thread)

}


邀请回答 我来回答

全部回答

(2)
默认 最新
eleven666

程序if语句错了,写成如下格式就行

begin_f_loop(f, thread)

{

if (t>0&&t<=0.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>2&&t<=2.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>4&&t<=4.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>6&&t<=6.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>8&&t<=8.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>10&&t<=10.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>12&&t<=12.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>14&&t<=14.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>16&&t<=16.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else if (t>18&&t<=18.5 )

{

F_PROFILE(f,thread,position) = 400000;

}

else 

{

F_PROFILE(f,thread,position) = 0;

}

}

end_f_loop(f,thread)


2020年2月24日
已采纳 评论 点赞
随波逐流
教你两个简单的方法:一是利用动网格的event方法,可以改变入口边界条件类型,关闭就将其改为wall即可;二是用expression表达式中的时间判断语句
2020年2月20日
评论 1 点赞

没解决?试试专家一对一服务

换一批