LBM: Palabos运动液滴合并

Posted by on 12/18/2011 in PalaBos/OLB, 学术案例 | 32 comments

液滴表面动力学研究及液滴合并分裂行为的研究是近两年来的研究热点,尤其近几年对液滴的撞击固体表面飞溅行为的研究热度极大,数篇文章发表在PRL。与此同时,对于液滴的合并分裂的研究在工业一直处于前沿位置。原因在于,理论研究尚未完全揭示液滴撞机固体表面飞溅机理,也未揭示液体雾化的机理。而这些都是现有工业应用中的重要研究内容:发动机油雾形成行为与撞机汽缸壁面的再次破裂行为,这些研究对于提高发动己的效率至关重要。在医学中,两相流体的研究对微流设备十分重要,尤其是基于微器件的疾病检测。

这里通过一个实例来展示基于LBM模拟两相流体。如下的视频仅给出两个液滴合并的LBM模拟。

 

所使用的方法参见:

  • T. Lee and C.-L. Lin, J Comp Phys 206 (2005), 16-47
  • T. Lee, Comp Math App 58 (2009), 987-994

液滴合并模拟:基于Palabos实现

 

    10,700 views

32 Comments

  1. 能分享这个算例的代码吗?

    • 完全可以分享的~你的研究方向说什么?留下你的email,我会将codes发给你!

  2. 谢谢徐辉博士!

  3. 徐博士,你好!我最近在做气液两相流动方面的研究,这个代码能和我分享一下吗?想学习一下。感谢!

      • 我会尽快将代码发送到你的信箱!

        • 徐博士你好,我现在博士的研究是多相流方向,内否把这段代码也发我一份,谢谢。

      • 已发至你的信箱,好运!

        • 代码已收到,非常感谢徐博士。这个网站,以及你们这个团队是我了解过的学术网站中最优秀的,祝这个网站越办越好。等自己有水平了,也找机会来贡献一点力量。哈

          • 谢谢!网站主要是为大家提供帮助!我们希望每一位愿意贡献力量的朋友都能够加入!希望网站对你的科研有用!

  4. 徐博士你好,最近在使用MP_LABS,在使液滴上升设计中,重力项的添加一直出现问题。导致液滴上升过程中仿真出现错误。徐博士能否指点一下。谢谢 修改后的部分源代码如下,请徐博士帮忙看一下。

    ! Direction 1
    geq = Eg1A + Eg1R*( ux + 1.5D0*ux*ux - Vsq )
    iFs = Eg1T*( (1.D0 + 2.D0*ux)*sFx - uy*sFy )
    g(ie,j,1,nxt) = g(i,j,1,now) + invTauRho*( geq - g(i,j,1,now) )
    & + iFs
    ! Direction 2
    geq = Eg1A + Eg1R*( uy + 1.5D0*uy*uy - Vsq )
    iFs = Eg1T*( (-ux)*sFx + (1.D0 + 2.D0*uy)*sFy )
    IF ( phi(i,jn) > 0 ) THEN
    g(i,jn,2,nxt) = g(i,j,2,now) + invTauRho*( geq - g(i,j,2,now) )
    & + iFs + gravity*0.25*phistar
    ELSE
    g(i,jn,2,nxt) = g(i,j,2,now) + invTauRho*( geq - g(i,j,2,now) )
    & + iFs
    END IF

    ! Direction 3
    geq = Eg1A + Eg1R*( (-ux) + 1.5D0*ux*ux - Vsq )
    iFs = Eg1T*( (2.D0*ux - 1.D0)*sFx - uy*sFy )
    g(iw,j,3,nxt) = g(i,j,3,now) + invTauRho*( geq - g(i,j,3,now) )
    & + iFs

    ! Direction 4
    geq = Eg1A + Eg1R*( (-uy) + 1.5D0*uy*uy - Vsq )
    iFs = Eg1T*( (-ux)*sFx + (2.D0*uy - 1)*sFy )
    IF ( phi(i,js) > 0 ) THEN
    g(i,js,4,nxt) = g(i,j,4,now) + invTauRho*( geq - g(i,j,4,now) )
    & + iFs - gravity*0.25*phistar
    ELSE
    g(i,js,4,nxt) = g(i,j,4,now) + invTauRho*( geq - g(i,j,4,now) )
    & + iFs
    END IF

    ! Direction 5
    Vg = ux + uy
    Vg2 = invCs_sq*Vg
    geq = Eg2A + Eg2R*( Vg + 1.5D0*Vg*Vg - Vsq )
    iFs = Eg2T*( ( (1.D0 - ux) + Vg2 )*sFx
    & + ( (1.D0 - uy) + Vg2 )*sFy )
    IF(phi(ie,jn) > 0) THEN
    g(ie,jn,5,nxt) = g(i,j,5,now)
    & + invTauRho*( geq - g(i,j,5,now) ) + iFs
    & + gravity*0.25*phistar*0.707
    ELSE
    g(ie,jn,5,nxt) = g(i,j,5,now)
    & + invTauRho*( geq - g(i,j,5,now) ) + iFs
    END IF

    ! Direction 6
    Vg = -ux + uy
    Vg2 = invCs_sq*Vg
    geq = Eg2A + Eg2R*( Vg + 1.5D0*Vg*Vg - Vsq )
    iFs = Eg2T*( ( (-1.D0 - ux) - Vg2 )*sFx
    & + ( (1.D0 - uy) + Vg2 )*sFy )
    IF(phi(iw,jn) > 0 ) THEN
    g(iw,jn,6,nxt) = g(i,j,6,now)
    & + invTauRho*( geq - g(i,j,6,now) ) + iFs
    & + gravity*0.25*phistar*0.707
    ELSE
    g(iw,jn,6,nxt) = g(i,j,6,now)
    & + invTauRho*( geq - g(i,j,6,now) ) + iFs
    END IF
    ! Direction 7
    Vg = -ux - uy
    Vg2 = invCs_sq*Vg
    geq = Eg2A + Eg2R*( Vg + 1.5D0*Vg*Vg - Vsq )
    iFs = Eg2T*( ( (-1.D0 - ux) - Vg2 )*sFx
    & + ( (-1.D0 - uy) - Vg2 )*sFy )
    IF(phi(iw,js) > 0) THEN
    g(iw,js,7,nxt) = g(i,j,7,now)
    & + invTauRho*( geq - g(i,j,7,now) ) + iFs
    & - gravity*0.25*phistar*0.707
    ELSE
    g(iw,js,7,nxt) = g(i,j,7,now)
    & + invTauRho*( geq - g(i,j,7,now) ) + iFs
    END IF

    ! Direction 8
    Vg = ux - uy
    Vg2 = invCs_sq*Vg
    geq = Eg2A + Eg2R*( Vg + 1.5D0*Vg*Vg - Vsq )
    iFs = Eg2T*( ( (1.D0 - ux) + Vg2 )*sFx
    & + ( (-1.D0 - uy) - Vg2 )*sFy )
    IF (phi(ie,js) > 0) THEN
    g(ie,js,8,nxt) = g(i,j,8,now)
    & + invTauRho*( geq - g(i,j,8,now) ) + iFs
    & - gravity*0.25*phistar*0.707
    ELSE
    g(ie,js,8,nxt) = g(i,j,8,now)
    & + invTauRho*( geq - g(i,j,8,now) ) + iFs
    END IF

    • 最近事情多,很抱歉这么晚回复你!把你的完整代码发给我,我才能测试!
      祝好!

  5. 徐辉博士你好,我想请教下您这个算例中用的是哪个多相流模型?液相和气相是相同组分吗?能否把代码分享下,谢谢。

    • 类似相场方法,请参考:
      T. Lee and C.-L. Lin, J Comp Phys 206 (2005), 16-47
      T. Lee, Comp Math App 58 (2009), 987-994
      代码已发!

      好运!

      • 你好 徐辉博士,我现在正在用RK多相流模型算液滴上升问题,遇到了一些瓶颈。
        能否发一份LEE模型算例的程序给我,谢谢了。

        • 已发,请查收!
          好运!

  6. 徐辉博士你好,
    我想请教一下在LEE模型中的streaming step中是否用的是perfect shift, 如果在streaming step中用的是perfect shift,那CFL就是1了,那样的话如果在intermolecular force term中用的是二阶离散格式,是不是会导致解的不稳定呢? 另外,在T. Lee and C.-L. Lin, J Comp Phys 206 (2005), 16-47的文章中,他用一个1-D的水平对流方程来验证用二阶mixed离散格式可以得到很好的效果。如果在解1-D的水平对流方程时,streaming step 用的是perfect shift,而在原项的处理时用的是二阶格式的话,貌似不能得到LEE的结果。希望您能解答我的疑惑。 谢谢。

  7. 老师:
    您好。
    我是一名研究多相流的研究生,在用palabos编译examples\codesByTopic\shanChenMultiPhase这个例子的时候,遇见了cannot allocate an object of abstract type ‘RandomInitializer'的错误,我查了一下应该是纯虚函数重新定义的问题,但是因为刚开始研究,不知道怎样修改,希望您能指教一下,万分感谢。另外,也希望您能将这篇文章中的分享给我,让我学习一下,谢谢。

  8. 徐辉博士你好!
    该实例的代码也请发我一份,我想学习下,谢谢!
    邮箱:1303980764@qq.com

    • 已发!

  9. 徐博士您好,这个算例很有意思,能给我发发代码吗?

    • 你可以尝试在Palabos的例子中类似的case(multiComponent3d)。

  10. 徐博士,您好!我最近正在学习开源的palabos软件想用它来实现并行计算的入门,看到您的这个网站后我眼前一亮。希望能够有你的这个算例的源代码,非常感谢!!!邮箱:caiwenhao_neu@163.com

  11. 徐博士,您好!我是西交的一名博士,研究方向热喷涂。最近做熔滴碰撞基板的计算,先做单个熔滴的,再做两个的,最后做大量的铺展过程。熔滴的直径尺寸在6-12um左右,碰撞速度在350m/s-500m/s之间,碰撞过程,随粒子半径增大有飞溅现象。我打算用LBM做,希望你能有一些关于熔滴或液滴碰撞基板的代码,供学习,非常感谢,不胜感激!!邮箱:weipei0529@163.com

  12. 徐博士你好~我现在正在研究LBM的两相流计算的问题,请问代码可以发我一份么,邮箱865052405@qq.com~谢谢~

  13. 徐博士您好,看到这个主页上的模拟结果十分高兴,可否分享一下该算例的代码,学生感激不尽,最近在研究多相流模型,有点头疼。

  14. 对了,徐博士,我的邮箱是 lixuhui@riam.kyushu-u.ac.jp,谢谢。

  15. 徐博士,您好!我现在用LBM研究液滴撞击方面的问题,这个运动液滴合并的算例代码能分享一份给我么?或者您有关于液滴撞击方面的LBM代码分享一下,仅供学习,感激不尽!邮箱:18811345262@163.com

Submit a Comment