一個流體域里包含了一個多孔域,編了一個udf,想要多孔域?qū)崿F(xiàn)類似格柵的效果,隔一段阻力系數(shù)大,孔隙率接近0,空氣很難通過,隔一段阻力系數(shù)小,孔隙率接近1,空氣順利通過。
采用ergun公式算的阻力系數(shù), 體積當量直徑采用的是 6倍體積比表面積
采用的physical velocity 算的。
然后計算之后發(fā)現(xiàn)多孔域的速度壓力云圖,速度矢量圖都沒有體現(xiàn)出阻力系數(shù)大,阻力系數(shù)小的區(qū)別,但是卻有壓力降,似乎fluent自動給多孔域平均了各種阻力系數(shù)。
附上我的UDF:(有的時候孔隙率的設置能用UDF定義的,有的時候就float報錯) 請大神指正,金幣可以全部奉上。
#include "udf.h"
DEFINE_PROFILE(porosity,t,i)
{
real xc[ND_ND];
cell_t c;
begin_c_loop(c,t)
{
if (xc[0]>-44.1164 && xc[0]<-39.1164&&xc[0]>-54.1164 && xc[0]<-49.1164&&xc[0]>-64.1164 && xc[0]<-59.1164&&xc[0]>-74.1164 && xc[0]<-69.1164&&xc[0]>-84.1164 && xc[0]<-79.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=1;
}
else if (xc[0]>-39.1164 && xc[0]<-34.1164&&xc[0]>-49.1164 && xc[0]<-44.1164&&xc[0]>-59.1164 && xc[0]<-54.1164&&xc[0]>-69.1164 && xc[0]<-64.1164&&xc[0]>-79.1164 && xc[0]<-74.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=0;
}
}
end_c_loop(c,t)
}
DEFINE_PROFILE(v_resistance,t,i)
{
real xc[ND_ND];
cell_t c;
begin_c_loop(c,t)
{
if (xc[0]>-44.1164 && xc[0]<-39.1164&&xc[0]>-54.1164 && xc[0]<-49.1164&&xc[0]>-64.1164 && xc[0]<-59.1164&&xc[0]>-74.1164 && xc[0]<-69.1164&&xc[0]>-84.1164 && xc[0]<-79.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=0;
}
else if (xc[0]>-39.1164 && xc[0]<-34.1164&&xc[0]>-49.1164 && xc[0]<-44.1164&&xc[0]>-59.1164 && xc[0]<-54.1164&&xc[0]>-69.1164 && xc[0]<-64.1164&&xc[0]>-79.1164 && xc[0]<-74.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=664781714.9993;
}
}
end_c_loop(c,t)
}
DEFINE_PROFILE(v_resist1,t,i)
{
real xc[ND_ND];
cell_t c;
begin_c_loop(c,t)
{
if (xc[0]>-44.1164 && xc[0]<-39.1164&&xc[0]>-54.1164 && xc[0]<-49.1164&&xc[0]>-64.1164 && xc[0]<-59.1164&&xc[0]>-74.1164 && xc[0]<-69.1164&&xc[0]>-84.1164 && xc[0]<-79.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=0;
}
else if (xc[0]>-39.1164 && xc[0]<-34.1164&&xc[0]>-49.1164 && xc[0]<-44.1164&&xc[0]>-59.1164 && xc[0]<-54.1164&&xc[0]>-69.1164 && xc[0]<-64.1164&&xc[0]>-79.1164 && xc[0]<-74.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=664781714999.3;
}
}
end_c_loop(c,t)
}
DEFINE_PROFILE(i_resistance,t,i)
{
real xc[ND_ND];
cell_t c;
begin_c_loop(c,t)
{
if (xc[0]>-44.1164 && xc[0]<-39.1164&&xc[0]>-54.1164 && xc[0]<-49.1164&&xc[0]>-64.1164 && xc[0]<-59.1164&&xc[0]>-74.1164 && xc[0]<-69.1164&&xc[0]>-84.1164 && xc[0]<-79.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=0;
}
else if (xc[0]>-39.1164 && xc[0]<-34.1164&&xc[0]>-49.1164 && xc[0]<-44.1164&&xc[0]>-59.1164 && xc[0]<-54.1164&&xc[0]>-69.1164 && xc[0]<-64.1164&&xc[0]>-79.1164 && xc[0]<-74.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=7368209.3023;
}
}
end_c_loop(c,t)
}
DEFINE_PROFILE(i_resist1,t,i)
{
real xc[ND_ND];
cell_t c;
begin_c_loop(c,t)
{
if (xc[0]>-44.1164 && xc[0]<-39.1164&&xc[0]>-54.1164 && xc[0]<-49.1164&&xc[0]>-64.1164 && xc[0]<-59.1164&&xc[0]>-74.1164 && xc[0]<-69.1164&&xc[0]>-84.1164 && xc[0]<-79.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=0;
}
else if (xc[0]>-39.1164 && xc[0]<-34.1164&&xc[0]>-49.1164 && xc[0]<-44.1164&&xc[0]>-59.1164 && xc[0]<-54.1164&&xc[0]>-69.1164 && xc[0]<-64.1164&&xc[0]>-79.1164 && xc[0]<-74.1164&&xc[1]>=-0.20 && xc[1]<=1.95&&xc[2]>=-3.575 &&xc[2]<=-3.4)
{
F_PROFILE(c,t,i)=7368209302.3;
}
}
end_c_loop(c,t)
} |