关于DPM颗粒追踪问题
本人目前写了一个UDF,大概就是关于颗粒碰到壁面,若温度大于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),P_POS(p),P_POS(p));
fclose(fp);
return PATH_Abort;
}
else
return PATH_ACTIVE;
}
然而,我发现输出到txt的颗粒数远远大于插入的颗粒数,(插入10000个颗粒,输出几十万的颗粒)。仔细查看后,发现每一个时间步中的每一次迭代都有颗粒坐标的输出,也就是说,那些已经被终止的颗粒还是在被继续追踪,我怀疑是不是没有在UDF中加入移除颗粒轨迹这一步,导致重复输出颗粒坐标。然而,返回path_abort的意思不就是trap吗,既然trap了颗粒轨迹不是已经自动移除了吗,难道还要手动添加颗粒轨迹的移除吗。请大神不吝赐教
自挽
你那个150单位是不是摄氏度啊?
这个UDF是从哪里加载的呢,是设置壁面边界条件处吗?期待楼主解答 您好,请问您的问题解决了吗
页:
[1]