| 查看: 1653 | 回复: 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) } } |
» 猜你喜欢
上海工程技术大学【激光智能制造】课题组招收硕士
已经有6人回复
带资进组求博导收留
已经有11人回复
自荐读博
已经有5人回复
求个博导看看
已经有16人回复
上海工程技术大学张培磊教授团队招收博士生
已经有4人回复
求助院士们,这个如何合成呀
已经有4人回复
临港实验室与上科大联培博士招生1名
已经有9人回复
写了一篇“相变储能技术在冷库中应用”的论文,论文内容以实验为主,投什么期刊合适?
已经有6人回复
最近几年招的学生写论文不引自己组发的文章
已经有11人回复
中科院杭州医学所招收博士生一名(生物分析化学、药物递送)
已经有3人回复
11楼2013-01-22 12:58:32
|
以下是小妹修改的其中一个版本 #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







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