Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 颗粒的全局ID输出问题?

颗粒的全局ID输出问题?

已定时 已固定 已锁定 已移动 OpenFOAM
6 帖子 3 发布者 4.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhangxc0223
    写于 最后由 编辑
    #1

    因为用的是并行计算,颗粒的ID被输出到origProcId文件(计算颗粒的processor)和origId文件(颗粒在当前processor中的ID)。 比如我有4000个颗粒用4个processors计算,我的origProcId值是0-3,origId可能是0-999。这种情况下需要两个文件中的origProcId和origId值完全对应,才能找到指定的颗粒,对于大量颗粒时间步多的情况来说,效率有点低。

    所以想请问一下各位老师们,怎么让openfoam运行的时候就输出一个全局的颗粒ID?按上述例子能得到一个颗粒的ID文件是0-3999,而不是4个0-999文件。

    我注意到particle.H文件中有一段是:

            //- Cumulative particle counter - used to provode unique ID
            static label particleCount_;
    
            //- Fraction of distance to tet centre to move a particle to
            // 'rescue' it from a tracking problem
            static const scalar trackingCorrectionTol;
    
            //- Fraction of the cell volume to use in determining tolerance values
            //  for the denominator and numerator of lambda
            static const scalar lambdaDistanceToleranceCoeff;
    
            //- Minimum stepFraction tolerance
            static const scalar minStepFractionTol;
    

    这个particleCount是不是我要的unique particle ID?请问怎么修改能使其输出?

    先谢谢各位老师们了:xinxin:

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘雄国
    写于 最后由 编辑
    #2

    //- Cumulative particle counter - used to provode unique ID
    static label particleCount_;
    应该不是

    你可以修改基础particle类,让它生产粒子源时附带一个"字符码",particle在multi processors区域传输的时候把这个字符码也带上。就可以区别开来了。

    Z 1 条回复 最后回复
  • Z 离线
    Z 离线
    zhangxc0223
    在 中回复了 刘雄国 最后由 编辑
    #3

    @刘雄国 非常感谢你的回复,请问你说的这个字符码,是在particle.C里修改之后,再用creatField输出的意思嘛?

    1 条回复 最后回复
  • F 离线
    F 离线
    fubianhanshu
    写于 最后由 编辑
    #4

    楼主你这个问题解决了吗?

    Z 1 条回复 最后回复
  • Z 离线
    Z 离线
    zhangxc0223
    在 中回复了 fubianhanshu 最后由 编辑
    #5

    @fubianhanshu 并没有在openfoam中解决,不过可以在后处理中根据ID和processor来找到相应的颗粒,我现在就是这样做的

    F 1 条回复 最后回复
  • F 离线
    F 离线
    fubianhanshu
    在 中回复了 zhangxc0223 最后由 编辑
    #6

    @zhangxc0223 我不清楚你怎么做的,不过我刚发现可以在paraview中可以显示粒子ID,随着时间步推移,好像每个粒子的ID号是不变的,这样就可以通过后处理输出某个固定ID的各个时间步的信息了,可以交流下

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]