MPPICFoam 算例解析

MPPICFoam 是一个欧拉-拉格朗日耦合的求解器,MPPIC是 Multi-Phase, Particle-In-Cell 的缩写,属于拉格朗日法,用来描述颗粒的运动,可视为简化版的离散单元法(DEM)。采用该方法的求解器还有 MPPICInterFoam, 可解析两个欧拉相的界面,也就是在 interFoam 的基础上,用 MPPIC 法模拟颗粒运动。

MPPICFoam 包含四个算例 column、cyclone、Goldschmidt 和 injectionChannel,本文逐一展示。

MPPICFoam 算例的根目录与其他求解器的一致,包含 0、constant 和 system 三个基本文件夹,需要重点关注的是 constant 文件夹中有 kinematicCloudProperties 文件,这个文件定义了有关拉格朗日求解器的方方面面,包括颗粒注入的方式、初试状态、受力等等。有些算例还有 kinematicCloudPositions 文件,用于手工指定颗粒位置。

column 算例是颗粒自重沉降过程,颗粒数量为 750,尺寸为 0.3 mm,密度为 2526 kg/m^3;连续相为空气。模拟结果如视频所示。

MPPICFoam求解颗粒自重下落过程

cyclone 算例模拟了一个旋风分离器,原理是利用离心力和拖曳力,让大颗粒先沉降,小颗粒后沉降,分离不同粒径的颗粒,视频展示了颗粒运动过程,颜色代表颗粒粒径,可见进入分离器的颗粒是混合均匀的,沉降后,大颗粒在下部,小颗粒在上部。

MPPICFoam 求解旋风分离器中不同粒径颗粒的分离过程

Goldschmidt 是一个流化床的算例,计算结果如视频所示。这是一个系列算例,OpenFOAM 有不同方法的算例。这个算例也是一个基准算例,有很多相关的实验和验证。

MPPICFoam 求解 Goldschmidt 流化床

injectionChannel 算例有两个颗粒入口,对称的两股颗粒流在渠道中碰撞、汇合、分散至整个渠道。计算结果如视频所示。

好了,四个算例介绍完了,欢迎在评论区留言提问。

常恭

作者: 常恭

略懂 OpenFOAM

《MPPICFoam 算例解析》有10个想法

      1. 还有一个小问题,运算完之后foamToVTK -fields ‘(lagrangian)’,但d和rho是scalars的形式,没有载入到标量场,如果直接用paraFoam是可以载入的,请问这个用ToVTK怎么解决? 谢谢!

  1. “column 算例是颗粒自重沉降过程,颗粒数量为 750…”

    好像颗粒数不是750,是2873。 kinematicCloudProperties 文件里的 nParticle 参数可能不是初始化后的真正颗粒数,似乎跟 kinematicCloudPositions 读入的坐标数有关。同样的,GoldSchmidt 算力中 kinematicCloudProperties 文件的 nParticle 虽然指定了 1,但最后是 24500 个颗粒。

    就像是在程序后期的执行中,下面的这段读入数据被具体的颗粒坐标数 overrule 了。

    ——
    else if (parcelBasisType == “fixed”)
    {
    parcelBasis_ = pbFixed;

    Info<< " Choosing nParticle to be a fixed value, massTotal "
    << "variable now does not determine anything."
    <coeffDict().template lookup(“nParticle”);
    }

      1. nParticle 是每个 parcel 代表的实际颗粒数,这里应该是用到了类似 DSMC 方法中的代表颗粒,实际运算的时候应该是按 parcel 来循环、碰撞、平均的,column 算例中一共注入了 2873个 parcel,每一个 parcel 代表的是 750个颗粒。

发表评论