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()
正确。