24小时热门版块排行榜    

查看: 3551  |  回复: 4

苦逼锅炉工

新虫 (初入文坛)

[求助] 关于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)[0],P_POS(p)[1],P_POS(p)[2]);
          fclose(fp);
      return PATH_Abort;
        }
        else
          return PATH_ACTIVE;
}

然而,我发现输出到txt的颗粒数远远大于插入的颗粒数,(插入10000个颗粒,输出几十万的颗粒)。我怀疑是不是没有在UDF中加入移除颗粒轨迹这一步,导致后续的迭代过程中被捕获的颗粒还在被追踪,导致重复输出颗粒坐标。然而,返回path_abort的意思不就是trap吗,既然trap了颗粒轨迹不是已经自动移除了吗,难道还要手动添加颗粒轨迹的移除吗。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xingfuww

专家顾问 (正式写手)

苦逼锅炉工

新虫 (初入文坛)

hezhao

铜虫 (小有名气)

苦逼锅炉工

新虫 (初入文坛)

相关版块跳转 我要订阅楼主 苦逼锅炉工 的主题更新
信息提示
请填处理意见