qiansteffens 发表于 2017-4-20 16:26:01

关于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了颗粒轨迹不是已经自动移除了吗,难道还要手动添加颗粒轨迹的移除吗。请大神不吝赐教

qiansteffens 发表于 2017-4-24 19:25:53

自挽

zjxhit 发表于 2017-4-28 17:00:53

你那个150单位是不是摄氏度啊?

巢老根 发表于 2018-8-11 15:36:10

这个UDF是从哪里加载的呢,是设置壁面边界条件处吗?期待楼主解答

xuyingyxy 发表于 2024-1-26 19:55:28

您好,请问您的问题解决了吗
页: [1]
查看完整版本: 关于DPM颗粒追踪问题