fluent多孔介质阻力系数是位置的函数,但不管阻力系数大还是小,速度压力都没明显区别
浏览:71128
一个流体域里包含了一个多孔域,编了一个udf,想要多孔域实现类似格栅的效果,隔一段阻力系数大,孔隙率接近0,空气很难通过,隔一段阻力系数小,孔隙率接近1,空气顺利通过。
采用ergun公式算的阻力系数,
体积当量直径采用的是 6倍体积比表面积
采用的physical velocity 算的。
然后计算之后发现多孔域的速度压力云图,速度矢量图都没有体现出阻力系数大,阻力系数小的区别,但是却有压力降,似乎fluent自动给多孔域平均了各种阻力系数。
附上我的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)
}
采用ergun公式算的阻力系数,

采用的physical velocity 算的。
然后计算之后发现多孔域的速度压力云图,速度矢量图都没有体现出阻力系数大,阻力系数小的区别,但是却有压力降,似乎fluent自动给多孔域平均了各种阻力系数。
附上我的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)
}