DPMFoam和twoPhaseEulerFoam颗粒流化
-
各位大佬,求助有关颗粒流态化的两个求解器的对比。
先描述一下计算过程:二维流化床,10mmx1000mm,来流速度为0.4m/s,气相密度0.446kg/m3,粘性系数0.0000412Pa·s,颗粒相密度4000kg/m3,直径0.5mm,曳力模型采用WenYu。
遇到的问题是采用twoPhaseEulerFoam时颗粒是可以流化的,而采用DPMFoam时颗粒基本不动,如图所示。
初步怀疑是lagrangian方法的曳力求解有问题,但是仔细看了代码,又按照自己的逻辑写了一遍,DPMFoam求解颗粒还是不动。
请问各位大佬,有遇到这种问题的吗?有解决方案吗?非常感谢! -
@书生kao
不好意思 只是提个思路你看一下你的UTrans UCoeff啊什么的 都有没有值,简单试着看看缩小一下parcel的密度 看看到底是什么错了
drag用的 alphac alpha.air; 是不是没用到这个field什么的。。
-
@星星星星晴
提高气流速度、减小颗粒密度是可以实现流化的,但是和实验不一致了。
原本目的是在DPMFoam基础上增加气固反应过程,和实验结果进行对比,但是计算中发现改进的DPMFoam吹不动颗粒,这才回过头来考察DPMFoam本身的问题,发现确实是和双流体计算差别较大。仔细检查方程好像又没有什么问题,修改了曳力模型也没有效果。
有遇到相关问题的大佬吗,帮忙解答一下。 -
@书生kao 可能是因为你的计算域是二维的,二维情况下颗粒是圆柱,圆柱大小和你展向的长度(一层网格)有关系,可以减少展向的长度进行计算。或者可以算三维的,在展向有一定的厚度(多层网格)
-
DPMFoam计算二维有很大争议,你可以在这个方向上加一层网格,然后处理成symmetr边界。
可能是因为你的计算域是二维的,二维情况下颗粒是圆柱,圆柱大小和你展向的长度(一层网格)有关系,可以减少展向的长度进行计算
@zhouxu 嗯,我也一直在考虑DPMFoam计算二维的这个问题。这方面你们实测过这个影响因素?能做到跟展向无关的解么
-
@李东岳 没做过这方面的研究
-
@李东岳 @星星星星晴 @zhouxu
各位大佬,问题基本解决了,需要关闭kineticCloudProperties中的cellValueSourceCorrection选项。
我在之前气固反应模型添加过程中借鉴了reactingParcelFoam和coalChemistryFoam的内容,计算中开启了cellValueSourceCorrection选项,其计算过程为template<class ParcelType> template<class TrackCloudType> void Foam::KinematicParcel<ParcelType>::cellValueSourceCorrection ( TrackCloudType& cloud, trackingData& td, const scalar dt ) { td.Uc() += cloud.UTrans()[this->cell()]/massCell(td); }
我在网上找了一个解答链接文本https://bugs.openfoam.org/view.php?id=2199
2. Normally during the particle iteration the continuous phase properties are frozen and the momentum sources from particles are applied to the next fluid solution. If cellValueSourceCorrection is true, the continuous phase properties are modified already after each particle time-step to roughly take into account the coupling from the particles to the fluid. This can be sometimes beneficial, but it can also cause numerical problems as there is no under-relaxation applied.
供各位参考。 -
@书生kao 从来没有想到过这样的事情,因为我这边修改了dt的计算方式,按照理论上说我们的dt比较小,所以会把sourceterm最后计算