24小时热门版块排行榜    

查看: 2099  |  回复: 12

wzhhgd3210

银虫 (小有名气)

[求助] UDS及其后处理求助!已有2人参与

楼主刚开始接触CFD,现在模拟室内空调通风,需要利用每个节点上已计算出的温度和风速计算求解该点的PMV值并输出云图(该值可以看做室内温度和风速的函数),看到paper上都说用UDF做,我在网上找了一个开源的修改了一下,可以interpret但是迭代计算就会报错Fluent received fatal signal(ACCESS_VIOLATION)。

代码如下:
#include "udf.h"
enum
{
        pmv
};
DEFINE_ADJUST(pmv_myudf,domain)
{
Thread *t;
cell_t c;
thread_loop_c(t,domain)
{
         begin_c_loop(c,t)
{
double t_myudf=C_T(c,t)-273.15;
double speed_u_myudf=C_U(c,t);
double speed_v_myudf=C_V(c,t);
double speed_w_myudf=C_W(c,t);
double mh2o_myudf=C_YI(c,t,0);      
double clo=0.55;
double icl_myudf=0.08525;   
double fcl_myudf;  
double tcl_myudf;   
double tcl1_myudf;
double tcl2_myudf;   
double temperary1_myudf;
double temperary2_myudf;
double hc_myudf;
double tr_myudf=t_myudf;              
double M_myudf=58.0;              
double W_myudf=0.0;
double p_myudf=101325;
double pa_myudf;
double a_myudf;
double b_myudf;
double c_myudf;
double d_myudf;
double e_myudf;
double f_myudf;         
double L_myudf;
double speed_myudf=sqrt(pow(speed_u_myudf,2.0)+pow(speed_v_myudf,2.0)+pow(speed_w_myudf,2.0));                 
pa_myudf=29*mh2o_myudf/(18+11*mh2o_myudf)*p_myudf;
if (icl_myudf<0.078)
   fcl_myudf=1.00+1.290*icl_myudf;
else
   fcl_myudf=1.05+0.645*icl_myudf;                                      
tcl1_myudf=40;
hc_myudf=1;
tcl2_myudf=35.7-0.025*(M_myudf-W_myudf)-icl_myudf*(0.0000000396*fcl_myudf*(pow((tcl1_myudf+273),4)-pow((tr_myudf+273),4))+fcl_myudf*hc_myudf*(tcl1_myudf-t_myudf));
while (tcl1_myudf-tcl2_myudf>0.000001)
{
  tcl1_myudf=tcl2_myudf;
  temperary1_myudf=2.38*pow((tcl1_myudf-t_myudf),0.25);
  temperary2_myudf=12.1*pow(speed_myudf,0.5);
     if (temperary1_myudf<temperary2_myudf)
     hc_myudf=temperary2_myudf;
     else
     hc_myudf=temperary1_myudf;                                 
   tcl2_myudf=35.7-0.025*(M_myudf-W_myudf)-icl_myudf*(0.0000000396*fcl_myudf*(pow((tcl1_myudf+273),4)-pow((tr_myudf+273),4))+fcl_myudf*hc_myudf*(tcl1_myudf-t_myudf));
   }
tcl_myudf=tcl2_myudf;                    
a_myudf=0.0000000396*fcl_myudf*(pow((tcl_myudf+273),4.0)-pow((tr_myudf+273),4.0));
b_myudf=fcl_myudf*hc_myudf*(tcl_myudf-t_myudf);
c_myudf=0.00305*(5733-6.99*(M_myudf-W_myudf)-pa_myudf);
d_myudf=0.42*(M_myudf-W_myudf-58.15);
e_myudf=0.000017*M_myudf*(5867-pa_myudf);
f_myudf=0.0014*M_myudf*(34-t_myudf);            
L_myudf=M_myudf-W_myudf-(a_myudf+b_myudf+c_myudf+d_myudf+e_myudf+f_myudf);
C_UDSI(c,t,pmv)=(0.303*exp(-0.036*M_myudf)+0.028)*L_myudf;
}
end_c_loop(c,t)
}
}

请各位大侠帮忙看一下问题在哪,另外楼主是小白,还想请教一下UDS的具体操作:先interpret代码,然后在Funtion Hooks里的Adjust选项里选中我的UDF激活,再把User-Difined Scalars里面Number添加1,设置边界条件迭代。这样的操作就可以了么?还是说Memory那里也要改?先谢谢各位大侠了~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

匿名

用户注销 (正式写手)

nhnt

铜虫 (小有名气)

普通回帖

匿名

用户注销 (正式写手)

nhnt

铜虫 (小有名气)

wangyan2387

捐助贵宾 (小有名气)

wangyan2387

捐助贵宾 (小有名气)

得得315

禁虫 (正式写手)

静静长大123

新虫 (小有名气)

MoonLee777

新虫 (正式写手)

相关版块跳转 我要订阅楼主 wzhhgd3210 的主题更新
信息提示
请填处理意见