|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我想用UDF读取各个网格中心的坐标点,但是我用并行计算时(LINUX下8台并行),提取出来的文件大小只有单机运算时的1/8,感觉好像只有一台机器的数据输出出来了,谁遇到过这样的问题么?帮小妹看看吧,谢了^_^
#include "udf.h"
#define UDM_RH 0
#define N_REQ_UDM 0
DEFINE_ON_DEMAND(centroid)
{
Domain *domain=Get_Domain(1);
cell_t cell;
Thread *thread;
real x[ND_ND];
char filename[]="center.txt";
FILE *dfp; /*destination file pointer*/
Message("\n FILENAME:%s\n",filename);
dfp = fopen(filename, "w");
if(dfp == NULL)
{
Message("\n Warning: unable to open %s for reading\n", filename);
}
if(sg_udm<N_REQ_UDM)
Message("\nNot enough user defined memory allocated. %d required\n",
N_REQ_UDM);
else
{
thread_loop_c(thread,domain)
{
if (FLUID_THREAD_P(thread)&& NNULLP(THREAD_STORAGE(thread,SV_UDM_I)))
{
begin_c_loop(cell,thread)
{
C_CENTROID(x,cell,thread);
C_UDMI(cell,thread,UDM_RH)=0.0;
fprintf(dfp, "%.6f %+.6f %+.6f\n", x[0], x[1], x[2]);
}
end_c_loop(cell,thread)
}
fclose(dfp);
} |
|