已知某点坐标,获取该点的速度。单核可行,多核并行就会出现由于分块找不到cellID。
-
已知某点坐标,获取该点的速度。单核可行,多核并行就会出现由于分块找不到cellID的情况。代码如下:
point b (1,1,1);
label cellID = mesh.findCell(b);
vector intU = U[cellID];
怎么解决呐?可以用reduce函数?但是没看明白。或者有没有其它办法获得该点的速度值,使其在并行的情况下有效。
鞠躬感谢! -
并行计算时候,每个进程掌握的网格就固定那些。
举例b点只存在于processor x1,不在processor x2当中,processor x2自然无法获取b点的信息。
要想processor x2获取b点信息,可以用reduce函数,也就是进程之间通讯一下。
首先初始化intU为零向量,然后赋值,再reduce。point b (1,1,1); label cellID = mesh.findCell(b); vector intU(0,0,0); intU = U[cellID]; reduce(U,sumOp<vector>()); 具体代码你再看一下,我这个是思路,代码可能哪里不对。
2024年5月12日 09:59
1/2
2024年5月14日 02:28