24小时热门版块排行榜    

查看: 3552  |  回复: 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

专家顾问 (正式写手)

请注意下parcel 与particle 的概念  我估计可能你的每个parcel 里面 particle 很多。
2楼2017-04-20 17:49:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

苦逼锅炉工

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by xingfuww at 2017-04-20 17:49:36
请注意下parcel 与particle 的概念  我估计可能你的每个parcel 里面 particle 很多。

大神,所以说用这种方法输出的是每个particle的坐标,而fluent中显示的是parcel的数量吗?
3楼2017-04-24 19:31:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hezhao

铜虫 (小有名气)

4楼2017-04-26 05:50:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

苦逼锅炉工

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by hezhao at 2017-04-26 05:50:18
试试输出颗粒的id

请问输出颗粒id有什么不同之处吗,我感觉输出颗粒id还是会有重复问题
5楼2017-04-27 22:01:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 苦逼锅炉工 的主题更新
信息提示
请填处理意见