DPMFoam求解器颗粒计算有颗粒跑出计算域外!


  • 离散相副教授

    不能这样扩大啊,因为你的颗粒粒径扩大1000倍,但是流体粘度,颗粒物性这些没有改变,那么计算出来的颗粒最小流化风速就和原来不一样了,同样的风速也许就吹不起来扩大1000倍的颗粒了。所以,我们做scale-up,也就是放大时候,要遵循一定的规律的。比如你可以先把这个几何模型放大2倍,甚至4倍,其他保持不变;下一步几何模型不变,颗粒粒径放大2倍或者4倍,不要一下子上千倍,容易出问题。
    此外,manual injection是采用初始颗粒堆积分方式,你计算的是什么背景?流化床吗?颗粒跑出边界是跑出哪个边界,顶部的边界吗?你可以上传一下图片,或者你的设置,这样大家会比较清楚。rebound边界跟Fluent等软件设置一样,亦即颗粒和壁面有粘附、反弹以及穿透三种作用。
    DPMFOAM是处理密相气固流动,我认为处理颗粒粒径的下限到50um左右,因为再小的颗粒需要考虑更多的力了,比如静电力等;没有上限的,可以非常大,因为颗粒处理用软球模型,但是注意网格尺寸要随时保证大概是颗粒粒径的3-5倍。
    如果对于基础知识掌握不够,那么可以看CFD中国CFDEM部分有个论文推荐,把那几篇论文好好看看,了解一下CFD-DEM的背景知识。



  • @散漫守望2016 首先,谢谢您的耐心解答!抱歉文件上传不了。颗粒跑出的边界是frontAndBack(对称边界条件),颗粒确实在所设定的风速下吹不起来,但是软球碰撞模型会在颗粒的发射边界处计算出颗粒的初始速度。我原来计算的背景是空气中颗粒污染物的扩散,计算域12平方公里!设定的粒径微米级以下,用DPMFoam求解器并行计算。结果查看的时候发现某一步结果中有一颗粒跑出它的发射边界而处在计算域外(patchname为街道,为壁面边界,与颗粒作用方式为stick),一直想调查颗粒为什么会通过此边界跑出计算域,故作了以上设定,并未考虑其真实的应用背景,只是想通过这样一种简化设定来重现并重点解决颗粒跑出计算域的情况,分析之后仍是没有思路。

    下面我将模型再次简化,计算域仍为扩大1000倍,不考虑颗粒所受曳力以及重力作用(particleForces全部屏蔽掉)0_1498614559062_1.PNG

    并且入口边界空气速度设定为固定值0,
    0_1498614653374_2.PNG

    时间步长2e-3s,保存间隔0.01s,
    0_1498614746753_3.PNG

    计算结果paraview中查看,1.36s后的结果闪退,命令行终端提示如下图所示:0_1498613961585_捕获.PNG
    根据提示作出更改并计算均不起作用。

    查看结果文件,发现跑出计算域的颗粒(设为1号颗粒)在跑出前的两个时间步内均与另外一个颗粒(2号颗粒)以及frontAndBack边界(对称边界)发生接触。

    是否在程序中颗粒碰撞过程的计算优先于patchInteraction(stick、escape、rebound三种)的判定计算,颗粒由碰撞计算速度、位移更新位置导致颗粒跑出计算域,然后PatchInteraction失效???????



  • @散漫守望2016 DPMFoam用于稀相流时是否可以通过调整相应的曳力模型,关闭软球、硬球碰撞模型,控制粒径范围(颗粒体积分数小到不会明显影响连续相的状态)来考虑?靠考虑粒径减小时颗粒可能存在的更多的受力,单纯从DPMFoam计算程序来讲,颗粒的网格体积分数有下限吗?比如类似1e-37这样确定的值????您提出的颗粒粒径50um下限是如何考虑的?


  • 离散相副教授

    其实我感觉你的这个使用稀相来处理更好一点,因为扩散时候一般不考虑颗粒之间的碰撞。DPMFoam是考虑空隙率的密相求解器,你虽然关掉了曳力以及软球,硬球模型,但是空隙率这一项还是会出现在连续性和动量方程里面的。体积分数没有下限,我说的粒径50微米是考虑到这个求解器是用来求解流化床等密相问题的。如果把它改成稀相的求解器,也就是只有颗粒和流体之间有相互作用力,那么颗粒粒径再小很多也没关系的。OpenFOAM千人群里面有一个昵称是“Champion”的,qq号是:252978797,邮箱:chpjz0391@vip.qq.com的澳大利亚同学和你做的挺像的,他是做通风的,细小颗粒在大管道内通过,会在边角富集。他使用的是稀相求解器,好像根据ParcelFoam改的。你可以和他交流一下。


  • 离散相副教授

    http://www.cfd-china.com/topic/81/sprayfoam-只喷固体该如何设置
    可以看一下这个帖子,就是稀相的。此外,你的时间步是不是设置的有点过大?



  • @散漫守望2016 谢谢您的解答以及提供的新的思路。时间步长改小之后确实好很多,颗粒不再跑出计算域,可能和边界上定义的trackToFace函数有关(此函数对跑出计算域的颗粒的位置进行修正,使之靠近边界而非远离)



  • @散漫守望2016 明白了,颗粒软球碰撞对时间步长要求很高,粒径越小,时间步长越小。



  • @散漫守望2016 不过颗粒逃离计算域后的位置修正问题比较复杂。


  • 网格教授 OpenFOAM教授 管理员

    颗粒跑出计算域外

    讨论一下这个现象

    实际非常简单,参考3.1离散相模型之拉格朗日模型(介尺度模型),拉格朗日那面不需要网格,获得速度后,更新位置信息即可。加入你的颗粒速度持续是1m/s,网格大小是10m,在10s后,颗粒肯定要跑出计算域之外。CFD里面处理的时候,在颗粒跑出计算域之后(颗粒轨迹交叉到边界面),要么逃逸,要么黏连,要么弹回去。

    拉格朗日算法要比求解NS方程简单的多,嘿嘿



  • @东岳DPMFoam求解器颗粒计算有颗粒跑出计算域外! 中说:

    粒速度持续

    假如设定反弹,颗粒轨迹与壁面有交叉,但还是跑出了计算域,正如之前碰到的情况,还是算法本身不够完善,openfoam5.0以经把颗粒追踪那一部分的算法完全更新了,颗粒追踪不会失效了