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

离散相模型中颗粒的编号

[复制链接]
发表于 2011-6-8 23:17:31 | 显示全部楼层 |阅读模式

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

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

x
我想给每个颗粒编个号,代码如下:
DEFINE_DPM_INJECTION_INIT(init_particle,I)
{       
        Particle *p;
        loop(p,I->p_init)
        {
                for(ii=0;ii<ND_ND;ii++)
                {
                        p->user[ii]=0.;
                        /*P_POS(p)[ii]=P_INIT_POS(p)[ii];*/
               
                }
                p->user[6]=particle_id;
                particle_id++;
                Message("particle_id=%d\n",p->user[6]);
        }
}
这个代码得到的p->user[6]的值为什么是0?有没有其他跟好的办法?谢谢!
发表于 2011-6-9 10:14:14 | 显示全部楼层
fluent内部有编号的,你访问那个编号不就行了吗。
 楼主| 发表于 2011-6-9 11:43:17 | 显示全部楼层

回复 2# xrs333 的帖子

感谢版主的回复,我知道fluent有编号,是不是part_id,是int类型的,是不是表示的编号只在-32768到32768内,这样的话我觉得颗粒太少。另外,链表Particle内没有part_id,只在Tracking_Particle中有定义,我想在begin_particle_cell_loop里面用(比如p->part_id==p0->part_id),p为Particle,p0为Tracking_Particle,能这么用吗?谢谢!
发表于 2011-6-9 12:21:53 | 显示全部楼层
具体如何在内部表示的我不知道,但是应该不止那个数,因为fluent追踪的颗粒数好像没有上限,至少我做的case中几十万很常见。
 楼主| 发表于 2011-6-9 13:57:18 | 显示全部楼层

回复 4# xrs333 的帖子

fluent内部的编号是对每一次入射颗粒进行编号的,这样在整个的计算中每个颗粒的编号不唯一,我要求编号唯一,用来判断两个不同颗粒之间的距离,版主有什么其它的建议吗?我上面的代码能得到p->user[6]的值,但为什么在其它宏中不能引用它的值?谢谢!
发表于 2011-6-9 17:07:36 | 显示全部楼层
肯定是唯一的,不可能不唯一。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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