|
发表于 2017-4-20 16:21:32
|
显示全部楼层
l楼主你好,不知道你还在不在用这个论坛,我最近也遇到了和你一样的问题,大概就是关于颗粒碰到壁面,若温度大于150即被捕获,返回abort并输出被捕获颗粒的坐标。否则返回active。UDF如下
#include "udf.h"
#include "dpm.h"
#include "stdio.h"
FILE *fp;
DEFINE_DPM_BC(JIEZHA,p,t,f,f_normal,dim)
{
if (P_T(p)>150)
{
fp=fopen("e://out.txt","a+";
fprintf(fp,"%g %g %g\n",P_POS(p)[0],P_POS(p)[1],P_POS(p)[2]);
fclose(fp);
return PATH_ABORT;
}
else
return PATH_ACTIVE;
}
然而,我发现输出到txt的颗粒数远远大于插入的颗粒数,(插入10000个颗粒,输出几十万的颗粒)。我发现每一个时间步中的每一次迭代都会输出颗粒坐标,也就是说,那些trap的颗粒还在被追踪并在下一次迭代继续输出,请问楼主是如何解决的呢,请不吝赐教
|
|