MPPICInterFoam中的bug?
-
在ESI的版本中,MPPICInterFoam中的pEqn,其对应双向耦合的连续相方程
fvScalarMatrix p_rghEqn ( fvm::laplacian(Dp, p_rgh) == fvc::ddt(alphac) + fvc::div(alphacf*phiHbyA) );
经测试其中的
fvc::ddt(alphac)
为0。 Jasak也表示:Thus, if you try to evaluate the ddt the way it is written, it will recognise that the field does not have the oldTime() level stored and will use the current value to initialise it. Basically, fvc::ddt(magSqr(U)) will always give you zero, which is wrong.
在
fvc::ddt(alphac)
为0的情况下将导致忽略相分数的影响,难道是个bug?用算例简单测试,将fvc::ddt(alphac)
去掉之后求解结果也没变化。 -
@linhan-ge 您好,您这个使用的IDE吗?
-
-
@linhan-ge 哦哦,明白了
-
一楼中提到的bug,fvc::ddt(alpha)的值取决于时间格式,将其换为backward就可以了
更新下:问题在于
alphac.oldTime()
。在
Euler
中,计算的是(alphac - alphac.oldTime())/delta T
Euler
不起作用的原因在于alphac.oldTime()
=0。backward
是可以解决问题。但是在backward
中调用的是三层时间步。即vf
、vf.oldTime()
和vf.oldTime().oldTime()
。起作用的是vf.oldTime().oldTime()
。alphac.oldTime()
还依然是0。但是,问题在于
alphac
,其他的场oldTime()
正确。 -
@linhan-ge 在 MPPICInterFoam中的bug? 中说:
Extended CFD-DEM for free-surface flow with multi-size granules.
谢谢
-
@白礼耕 Check the alpha.Eqn and p.Eqn:
fvScalarMatrix p_rghEqn ( fvm::laplacian(Dp, p_rgh) == fvc::ddt(alphac) + fvc::div(alphacf*phiHbyA) );
even
ddt(alphac)=0
, it considers only the continuous phase (water) becausealphac = 1 - alpha.air
. It makes sense if you do the following to address the effects of particles: 1) include the sink terms in alpha.Eqn, 2)alphac = 1 - alpha.air - alpha.particle
3) manage the momentum interface exchange terms in U.Eqn. In this way a two-way coupling can be implemented, but not quite easy. Currently the implementation is quite simple, but it only works for dilute particle flow (one-way coupling). -
@东岳 The expression in the paper (Fig. 2 in paper "Extended CFD–DEM for free-surface flow with multi-size granules", which is given as alphaf) is alphac = 1-alpha.particle which is different from what you provided (alphac = 1 - alpha.air - alpha.particle). I just wanted to clarify which one is in the code?
Thank you again!
-
@东岳 Currently, I am working on MPPICInterFoam. I thought alphac is the volume fraction of fluid ( not just water or air). If there is no particles in the system, alphac = alpha1 + alpha 2 = alpha.water + alpha.air=1. If with particles, alphac = 1-theta = 1- alpha.particles. The particles are accounted up. We can not just say alphac is alpha.water (which alphac = 1 - alpha.air - alpha.particle). Please fix it if I said wrong. Thank you.
-
@linhan-ge 我觉得也应该是这样,但我还没理解李老师说的,您理解了吗?