| 查看: 2203 | 回复: 15 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
500金币,帮忙找错,UDF并行
|
|||
|
单机下能正常使用,单机多核并行报错: 单机UDF如下 /*UDF功能:从出口取出颗粒质量流量给到入口*/ #include "udf.h" #include "mem.h" #include "sg.h" #include "sg_mphase.h" #include "flow.h" #include "metric.h" #define UDF_FILENAME "hxout_s_flux.dat"/*每次开始新的算例要修改名字否则会接着原来的文件写入数据*/ real last_ts1=-1; DEFINE_PROFILE(inlet_1,t,index) { Domain *domain; Thread *t_s,*t_mix; face_t f; double flux,flux_tot,veloc; real ro_s; real A[ND_ND]; real area; real current_time; current_time=RP_Get_Real("flow-time" ;/*取得当前的计算时间*/if(last_ts1!=current_time) { last_ts1=current_time; domain=Get_Domain(1);/*1:混合相,2:主相,3:第二相*/ t_mix=Lookup_Thread(domain,5);/*5:出口边界ID*/ t_s=THREAD_SUB_THREAD(t_mix,1);/*0:主相,1:第二相,以此类推*/ begin_f_loop(f,t_mix) { flux=F_FLUX(f,t_s); flux_tot+=flux; } end_f_loop(f,t_mix) begin_f_loop(f,t) { ro_s=F_R(f,t); F_AREA(A,f,t); area+=NV_MAG(A); } end_f_loop(f,t) veloc=flux_tot/ro_s/area/0.3/2.0; begin_f_loop(f,t) { F_PROFILE(f,t,index)=veloc; } end_f_loop(f,t) } } |
» 收录本帖的淘帖专辑推荐
弹药库 |
» 猜你喜欢
各位大神,目前国内有哪些比较好用的逆合成软件?
已经有14人回复
国社科系统bug了,是不是要放榜了?
已经有10人回复
现代”学阀”该如何界定
已经有9人回复
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有4人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有3人回复
上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告
已经有11人回复
申博发邮件
已经有11人回复
我的奶奶
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Fluent中编写UDF之后无法初始化。。。
已经有5人回复
【活动】关于papershow活动最终奖项颁发的投票
已经有4人回复
fangdian
木虫 (正式写手)
- 应助: 201 (大学生)
- 金币: 2836.4
- 散金: 64
- 红花: 33
- 帖子: 818
- 在线: 206.9小时
- 虫号: 1926821
- 注册: 2012-08-06
- 专业: 多相流热物理学
9楼2013-01-21 10:04:06
|
以下是小妹修改的其中一个版本 #include "udf.h" #include "mem.h" #include "sg.h" #include "sg_mphase.h" #include "flow.h" #include "metric.h" #define UDF_FILENAME "hxout_s_flux4.0.dat" real last_ts1=-1; real veloc; DEFINE_PROFILE(outlet_pressure,t,index) { real flux; #if !RP_HOST face_t f; Thread *t_s; #endif #if !RP_HOST t_s=THREAD_SUB_THREAD(t,1);/*0:主相,1:第二相,以此类推*/ begin_f_loop(f,t) { F_PROFILE(f,t,index)=-4000.0; flux+=F_FLUX(f,t_s); } end_f_loop(f,t) #endif #if RP_NODE flux=PRF_GRSUM1(flux); #endif #if RP_NODE flux=PRF_GRSUM1(flux); #endif node_to_host_real_1(flux); veloc=flux/2678.0/0.004145/0.3/2.0; } DEFINE_PROFILE(inlet,thread_in,index) { face_t inlet_face; #if !RP_HOST real time=RP_Get_Real("flow-time" ; begin_f_loop(inlet_face,thread_in) { F_PROFILE(inlet_face,thread_in,index)=veloc; } end_f_loop(inlet_face,thread_in) #endif /*printf("%f\n",inlet_yi); */ } |
2楼2013-01-19 19:24:47
3楼2013-01-19 19:25:55
4楼2013-01-19 19:26:50










;/*取得当前的计算时间*/
回复此楼