| 查看: 1199 | 回复: 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; } |
» 猜你喜欢
售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急
已经有5人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有7人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有6人回复
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有6人回复
现代”学阀”该如何界定
已经有14人回复
求合成方法
已经有8人回复
师弟论文见刊大半年才想起来申请专利,还能抢救一下吗?
已经有4人回复
有机合成以后会不会被AI改变?做科研的虫友怎么看
已经有8人回复
我的奶奶
已经有3人回复
3楼2021-12-23 19:29:50
2楼2017-11-20 00:50:34










;
回复此楼