24小时热门版块排行榜    

查看: 2084  |  回复: 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 名 )

匿名

用户注销 (正式写手)

本帖仅楼主可见
2楼2015-01-03 11:40:53
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

nhnt

铜虫 (小有名气)

引用回帖:
3楼: Originally posted by soriyoshi at 2015-01-03 14:26:15
刚刚鼓捣出了一种解决方法,为了方便以后看到此贴的有疑问的人,暂时记在这里。可以用DEFINE_ADJUST,不过是用C_UDMI,然后在define-user define memory 里面把数量加成1,计算完以后再contour里面自然有一个udm, ...

我也要做关于PMV的udf,可是刚接触,我按照这个代码和你的方法,迭代的时候还是有错误,能不能给个详细的操作啊?
5楼2015-06-27 16:20:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

匿名

用户注销 (正式写手)

本帖仅楼主可见
3楼2015-01-03 14:26:15
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

nhnt

铜虫 (小有名气)

楼主向你求助下啊,我按照你说的方法,还是会出现错误提示,能不能给说下详细的过程?
4楼2015-06-26 11:10:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyan2387

捐助贵宾 (小有名气)

引用回帖:
3楼: Originally posted by soriyoshi at 2015-01-03 14:26:15
刚刚鼓捣出了一种解决方法,为了方便以后看到此贴的有疑问的人,暂时记在这里。可以用DEFINE_ADJUST,不过是用C_UDMI,然后在define-user define memory 里面把数量加成1,计算完以后再contour里面自然有一个udm, ...

亲 可否分享一下你的PMV的 UDF呢 我也是想做热环境舒适性 想做PMV的云图
Wuha
6楼2016-08-31 17:12:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyan2387

捐助贵宾 (小有名气)

引用回帖:
3楼: Originally posted by soriyoshi at 2015-01-03 14:26:15
刚刚鼓捣出了一种解决方法,为了方便以后看到此贴的有疑问的人,暂时记在这里。可以用DEFINE_ADJUST,不过是用C_UDMI,然后在define-user define memory 里面把数量加成1,计算完以后再contour里面自然有一个udm, ...

亲 我的UDF编写的时候 在循环迭代的地方 总是提示参量多  可否分享一下您的代码 谢谢啦
Wuha
7楼2016-08-31 17:12:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

得得315

禁虫 (正式写手)

本帖内容被屏蔽

8楼2016-09-09 16:50:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

静静长大123

新虫 (小有名气)

引用回帖:
3楼: Originally posted by soriyoshi at 2015-01-03 14:26:15
刚刚鼓捣出了一种解决方法,为了方便以后看到此贴的有疑问的人,暂时记在这里。可以用DEFINE_ADJUST,不过是用C_UDMI,然后在define-user define memory 里面把数量加成1,计算完以后再contour里面自然有一个udm, ...

求楼主写一下具体的设置的项目和参数,写好了UDF但是就是算不出来,很着急啊
9楼2017-07-04 15:34:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

MoonLee777

新虫 (正式写手)

好像是udm要保存、不然每迭代一次上一次就消失了

发自小木虫IOS客户端
10楼2017-07-06 00:10:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wzhhgd3210 的主题更新
信息提示
请填处理意见