找回密码
 注册
查看: 1586|回复: 5

关于DPM颗粒追踪问题

[复制链接]
发表于 2017-4-20 16:26:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本人目前写了一个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了颗粒轨迹不是已经自动移除了吗,难道还要手动添加颗粒轨迹的移除吗。请大神不吝赐教
 楼主| 发表于 2017-4-24 19:25:53 | 显示全部楼层
自挽
发表于 2017-4-28 17:00:53 | 显示全部楼层
你那个150单位是不是摄氏度啊?
发表于 2018-8-11 15:36:10 | 显示全部楼层
这个UDF是从哪里加载的呢,是设置壁面边界条件处吗?期待楼主解答
发表于 2024-1-26 19:55:28 | 显示全部楼层
您好,请问您的问题解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表