DPMFoam、MPPICFoam以及CFDEM怎么选择?
-
最近想搞一个收缩管中的液固颗粒流动,想用欧拉-拉格朗日来模拟,看到openfoam中有DPMFoam和MPPICFoam可以使用,但是我看文献中很多都是OPENFOAM+LIGGGHTS+CFDEM耦合来模拟。请问他们各自的优势在哪里?如何选择适合自己的模拟方法?
-
Liggghts是一个源自知名分子动力学软件lammps的DEM软件,CFDEM是一个第三方实现的接口,用于实现OpenFOAM和Liggghts的耦合。这应该算是最经典的CFD-DEM方法,和商软里的Fluent-EDEM耦合差不多。但是似乎现在已经停止开发了,对OpenFOAM的支持停留在OpenFOAM 5。
DPMFoam大概算是对DEM的简化,给出了一个Parcel的概念,每个Parcel可以包含N个particle,在计算过程中,计算每对相近Parcel之间的接触并修正速度。具体的碰撞模型好像挺多,我不是特别熟悉。但是由于OpenFOAM的MPI并行框架很难对颗粒做负载平衡,而且本身自带的颗粒搜索算法效率似乎也挺低下的,所以对稠密颗粒流的计算效率不是很好。
MPPICFoam是对DPMFoam的简化(事实上你从源码可以看到,MPPICFoam的代码是直接包含DPMFoam的,只是两者的Parcel不同),在MP-PIC方法的求解过程中,不会对每对Parcel的接触进行判断,而是把拉格朗日颗粒映射进所在的Cell,然后根据每个Cell里所有颗粒的速度/浓度来修正颗粒碰撞后的速度。MP-PIC模型里,粒子的接触模型大概细分为三类,Packing(计算颗粒稠密区的堆积压力梯度),Damping(计算颗粒之间产生的碰撞), Return-to-isotropy(计算颗粒碰撞产生的随机散射)。
因此从计算精度上讲 CFDEM >= DPMFoam > MPPCFoam
从计算效率上讲 MPPICFoam > DPMFoam > CFDEM (没用过CFDEM,属于猜测)具体使用的时候还是要看需求。
- 比如你算的是稀相的颗粒流,那完全可以关闭颗粒间的碰撞,这个时候DPMFoam和MPPICFoam的结果应该是一致的。
- 比如你不关注颗粒间的精细的碰撞行为,那么可能MPPICFoam会更合适。
- 比如你关注物料的堆积,那就可能要用DPMFoam或者CFDEM了
-
@田畔的风 我记得几年前我玩过CFDEM,的确DPMFoam慢,最重要的是那个东西安装挺费劲,语法也和OF不一样。
MPPIC属于1.5欧拉了……
7/13