| 查看: 1209 | 回复: 2 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
二维水槽造波单机多核并行计算,udf该如何修改
|
||
|
问题1:我模拟了一个二维水槽,只加了一个消波的udf。串行的时候计算正常,改成并行后,计算提示Global courant number超过250。但在相同情况下把并行的时间步调小,也可以计算。我想确认一下,这问题是因为我的udf没有改成并行造成的计算误差较大呢?还是仅仅是参数设置问题? 问题2:如果是udf未改并行的问题,那么我的udf应该怎么修改呢?网上说是“在每段程序 最前头加上 #if !RP_HOST 最末尾加上#endif 即可”,具体应该怎么操作呢? 下面有计算提示的Global courant number超过250,以及消波程序,谢谢啦 #include "udf.h" #define PI 3.1415926 #define G 9.81 #define D 5 #define H 1 #define T 4 #define L 23 #define FL 90 //xiaobo// // x direction momentum // DEFINE_SOURCE(x_mom_source,c,t,dS,eqn) { real x[ND_ND]; real x_source; real y; real xishu; real time = RP_Get_Real("flow-time" ;y=x[1]; C_CENTROID(x,c,t); if(x[0]>=FL-L && x[0] <=FL) { if(y>=D-H && y <=D) { xishu=8*(x[0]-(FL-L))/L; x_source=-C_U(c,t)*998.2*xishu; dS[eqn]=-998.2*xishu; } else x_source=0; } else x_source=0; return x_source; } // y direction momentum // DEFINE_SOURCE(y_mom_source,c,t,dS,eqn) { real x[ND_ND]; real y_source; real y; real xishu; real time =RP_Get_Real("flow-time" ;y=x[1]; C_CENTROID(x,c,t); if(x[0]>=FL-L && x[0] <=FL) { if(y >= D-H && y <=D) { xishu=8*(x[0]-(FL-L))/L; y_source=-C_V(c,t)*998.2*xishu; dS[eqn]=-998.2*xishu; } else y_source=0; } else y_source=0; return y_source; } |
» 猜你喜欢
请问社科规划办官网上的“项目查询模块”与“项目申报模块”的账号密码一样吗?
已经有3人回复
用NBS溴化时溶剂除了CCl4外还有什么
已经有9人回复
40+中年人失业后,还能找到好工作吗?
已经有15人回复
二审4个多月了还是Awaiting Reviewer Scores
已经有5人回复
申请科研项目纯靠实力能成功吗?
已经有12人回复
极限拉扯,如何抉择
已经有15人回复
3楼2021-12-23 19:29:50
2楼2017-11-20 00:50:34










;
回复此楼