拉格朗日粒子追踪死循环


  • 讲师

    各位老师好,我最近正在做雾化方法的仿真,自己修改了求解器,用的是欧拉-拉格朗日方法,当网格和粒子比在20以上时,运算没有任何问题,加密网格后,网格和粒子比最小为5,此时总是出现粒子追踪陷入死循环,不管是否开启coupled选项。现在使用的是OpenFoam5.x的拉格朗日粒子库,不知道最新的库是否有改进,请关注这方面的大佬给些意见



  • 我遇到过一次这样的情况,因为 euler time step 太大,然后导致在一个 Euler time step 中 lagrangian 的计算过多。
    尝试控制一下你的courant number
    不知道有没有帮助


  • 讲师

    找到原因了,是粒子入注的时候打到并行分块的交界面上了,很容易进入Cloud:move的死循环,正在思考怎么修改



  • @yfclark 据我了解 应该不是分块的问题,openfoam好像不会这样处理分块的问题,不过如果是壁面的话可能会出现这样的情况



  • @yfclark 是不是你的网格太密了?欧拉-拉格朗日法的基本假设就是粒子的质量远小于网格中欧拉相的质量。网格太密,物理意义上就不成立了。
    可以通过intermediate/clouds/Templates/KinematicCloud中的theta()函数查看液相和气相的体积比,只在屏幕上输出最大值就好。如果值大于1,那就可能有问题了。处在交界面上会自动判断归属于哪个网格或是直接删除,除非几乎所有parcel都很小并且处在交界面上,才会出问题,基本不可能——就算是这种情况,提示的也是除0的错误。所以,大概率是网格过密。是不是用了渐变网格?喷嘴附近的网格是不是比粒子初始直径还小?建议从这个角度入手解决。
    另一个思路是,调整parcelsPerSecond


  • 讲师

    @白礼耕 感谢回复,网格和粒子直径比确实小,最小比例为5,我会排查的,另外我最近也在尝试渐变网格,您使用过这样的网格算拉格朗日粒子追踪吗,我之前只在欧拉方法中用过,没有问题,不知道用在粒子追踪上算法能否处理,有什么需要注意的请指教



  • @yfclark 当然可以啦,什么网格都能算的。你是卡在了Added 1 new parcels这么?



  • @白礼耕 我记得theta() 是欧拉相或者拉格朗日相的分数?如果这个大于1应该就是越界了,理论上说DPM应该不至于超1,但是MPPIC容易超1是真的。还是我记错了这个是两者的比例?

    @yfclark拉格朗日粒子追踪死循环 中说:

    @白礼耕 感谢回复,网格和粒子直径比确实小,最小比例为5,

    然后网格粒子大小比是5应该问题不大的啊


  • 讲师

    最近发现一个问题可能导致粒子追踪死循环,之前我的patchInteractionModel被设置为None,粒子在边界上追踪陷入死循环,现在设置为localInteraction后不再出现该问题


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1