-
我是直接根据上面提到的帖子修改的。在向 OpenFOAM 自带的 coalCombustion 库添加碰撞时,上述帖子中直接在
coalCloud.H
的定义中将typedef ReactingMultiphaseCloud<ReactingCloud<ThermoCloud<KinemaitcCloud<Cloud<coalParcel>>>>> coalCloud;
修改为
typedef ReactingMultiphaseCloud<ReactingCloud<ThermoCloud<CollidingCloud<KinemaitcCloud<Cloud<coalParcel>>>>>> coalCloud;
对颗粒的定义也采用了类似的方法。
我将该例子中的CollidingCloud
均改为MPPICCloud
,但是编译无法通过。错误出在 MPPICCloud.C 中td.updateAverages(*this);
这一行,编译器提示这里的updateAverages
找不到定义,应该是按上面方法修改coalCloud
和coalParcel
定义后,*this
所代表的具体定义跟函数里参数形式不一样导致的。我现在在想上面的思路是不是可行,如果说需要在
thermoparcel
中修改代码,加判断的话,是不是意味着我不应该采取上述的方法,而应自己将MPPICParcel
和thermoparcel
以及反应相关的部分重新写成一个新的颗粒类?非常感谢大家的回复,有必要的话我会想办法把编译错误贴出来。
-
@马乔 按照我的理解,OpenFOAM 中 lagrangian 库部分采用的基于原则设计(Policy-Based Class Design)的方法应该是通过可以选取不同策略类,组建满足不同需求的模型的。OpenFOAM 自带的
coalCombustion
和spray
库中均采用了这样的方法,即通过选取不同的parcel
和cloud
类,组建不同的模型。现在这样看来,这样的方法可能还是有限制的。如果需要对
parcel
和cloud
类进行修改的话,涉及到的内容就太多了,不知道最后能不能完成了。另外,多谢东岳老师对之前帖子格式的修改,以后回复时会多注意的。
-
欢迎大家关注一下我在cfd online的post!是关于mppicfoam。谢谢大家!
https://www.cfd-online.com/Forums/openfoam-solving/202203-simulate-particle-liquid-flow-converging-geometry-mppicfoam.html#post693365MPPIC 高效在用一个 solid stress 来模拟碰撞,因此不需要确定颗粒碰撞了,这一点省了很多时间,对于parcel 用一个点来跟踪多个颗粒,在DPM也有做,叫做coarsed grain DPM; 但是做parcel都需要一个子模型来模拟这个parcel的行为,我测试下来,对于一个 N 颗粒系统,如果一个parcel包含nParcel 个颗粒,那么 计算时间的比值大概是 T(single particle) / T(parcel) = (nParcel)^1/3 。
@hurricane007 您好,您现在还在用着DPMFoam吗?您说的DPM是Fluent里面的,还是DPMFoam呀?能交流下吗?谢谢
@散漫守望2016 您好,我想问一下,DPMFoam and CFDEM有什么区别呀?谢谢
@马乔 请教一下,如果DPMFoam中nParticle=1, 那和CFDEM的差别在哪里?如果DPMFoam中nParticle>1, 那和coarse-grained CFD-DEM的差别在哪里?谢谢!还有,cloud的用处在哪里呢?计算domain中所有的颗粒都属于同一个cloud是吗?您对MPPICFoam是不是也很了解,您有时间的时候能看一下我的问题吗?谢谢谢谢
https://www.cfd-online.com/Forums/openfoam-solving/202203-simulate-particle-liquid-flow-converging-geometry-mppicfoam.html#post693365粒子间作用力的处理,在这里,如果考虑OpenFOAM中的DPM模型(商软中的DPM不清楚是否也是这样),方程(???)中右边的力主要包含了曳力、虚拟质量力等非常主要的力。但是在DEM中,除了上述的力,还有旋转、摩擦、凝聚等,比较重要的颗粒碰撞也通过软球模型来处理(下图是google随便找的)
@东岳 请问,除了您提到的旋转,摩擦,凝聚,等这些力在DPMFoam中没有考虑外,DPMFoam 和 DEM还有其他区别吗?在DPMFoam中颗粒也是具有真实的size,而不是numerical point,是吗?
-
@MinZhang 收到邮件和微信。
请问,除了您提到的旋转,摩擦,凝聚,等这些力在DPMFoam中没有考虑外,DPMFoam 和 DEM还有其他区别吗?在DPMFoam中颗粒也是具有真实的size,而不是numerical point,是吗?
DPMFoam and CFDEM有什么区别呀?谢谢
这也是目前我关心的。如果考虑连续相和离散相的耦合,
DPMFoam
和CFDEM
的耦合是一样的,主要体现在速度方程和压力方程上:https://github.com/CFDEMproject/CFDEMcoupling-PUBLIC/blob/master/applications/solvers/cfdemSolverPiso/cfdemSolverPiso.C剩下的就是离散相的处理。目前
DPMFoam
植入了简单的碰撞模型。由于我没用过CFDEM
,但是从网页介绍来看,CFDEM
要稍微强一些,比如直接处理非球形颗粒(而不是修正曳力):https://www.cfdem.com/non-spherical-particles 双重网格支持: https://www.cfdem.com/highly-customizable-solvers 等。在DPMFoam中颗粒也是具有真实的size,而不是numerical point,是吗?
DPMFoam
也有体积。 -
@hurricane007 谢谢您的回复。那您现在用cdfem吗?
-
@minzhang 也不用,那个东西有点小众不太成熟,如果不是那个组的我其实感觉不太推荐用,DPMFoam相对好一些,不过也差不多,感觉很久没维护了的样子。MPPIC稍好 5.0更新的时候好像还更新了一下,但是我测试过速度也没快。最后结论居然是,DPM除非有大集群,不然就玩完小规模就好了,甚至PR-DPM 更好,类似算解析算例然后得出个模型给粗糙一些的模型用,用粗糙的模型,比如E-E 来算大规模的。。。 好像GPU 计算也是个坑,我老板说 NETL 也搞,不过发现GPU计算有随机错误。大概的经验就是这些,希望有帮助。
-
@hurricane007 DPM对每个离散的粒子(或者计算颗粒)求解基本的动力学方程,也只能算是介观尺度仿真,of中的DPMFoam稍稍借鉴了写DEM方面的理论,可以简单考虑颗粒尺度的碰撞/旋转等等,应用于大规模计算的主要限制因素就是计算速度(计算颗粒思想的提出对降低求解的自由度有一定的帮助,但感觉在实际应用过程中缺乏完善的设定标准),拉格朗日体系下求解的颗粒粒子与欧拉体系下的空间离散网格数量相比,求解量仍是相当大的,颗粒位置更新算法、碰撞检索效率都有待提升,MPPIC在碰撞计算方面,通过模型模化大大提升了稠密气固两相流的计算效率。大规模应用,高效、快速、稳定的算法亟待出现。
-
@hurricane007 谢谢您的回复。我用过一段时间的MPPICFoam,但是遇到了瓶颈。目前打算用cfdem。我们有超级计算机集群资源。