interPhaseChangeFoam求解器中的一些疑问?
-
参考文献Numerical Modelling of Evaporation and Condensation Phenomena-Numerische Modellierung von Verdampfungs-und Kondensationsph änomenen
可知相方称为:
Q1:查看求解器代码,发现并没有求解等号右侧第一项,为什么没了?
另外,在推导相方程的时候,得出了混合速度的散度为:
其中混合速度定义为:
在连续方程中散度为
Q2:这两个速度散度指的是一个意思么?为什么数学推导无法互通?
Q3:在求解相方程的时候,为什么要定义alpha10,alpha100,这是什么用意?为什么要这么求解呢?(代码如下)
volScalarField alpha10("alpha10", alpha1);for (int aCorr=0; aCorr<nAlphaCorr; aCorr++) { tmp<surfaceScalarField> talphaPhiCorr ( fvc::flux ( phi, alpha1, alphaScheme ) + fvc::flux ( -fvc::flux(-phir, alpha2, alpharScheme), alpha1, alpharScheme ) ); if (MULESCorr) { talphaPhiCorr.ref() -= talphaPhi(); volScalarField alpha100("alpha100", alpha10); alpha10 = alpha1; MULES::correct ( geometricOneField(), alpha1, talphaPhi(), talphaPhiCorr.ref(), vDotvmcAlphal, ( divU*(alpha10 - alpha100) - vDotvmcAlphal*alpha10 )(), 1, 0 ); // Under-relax the correction for all but the 1st corrector if (aCorr == 0) { talphaPhi.ref() += talphaPhiCorr(); } else { alpha1 = 0.5*alpha1 + 0.5*alpha10; talphaPhi.ref() += 0.5*talphaPhiCorr(); } } else { MULES::explicitSolve ( geometricOneField(), alpha1, phi, talphaPhiCorr.ref(), vDotvmcAlphal, (divU*alpha1 + vDotcAlphal)(), 1, 0 ); talphaPhi = talphaPhiCorr; } alpha2 = 1.0 - alpha1; }
-
目前对Q1和Q2的认识如下:
Q1:因为假设两相密度均为不可压,所以为0
Q2:相方程中的U(相体积分数加权平均)定义和连续方程的U(相体积分数和密度分数加权平均)定义不同
但是Q3还是看不太懂,求指教~
-
Q3只有在
MULESCorr
才执行alpha10,alpha100
,因此你需要看看MULES
里面的correct
和常规求解函数的区别。我还没看过correct
函数:sunglasses: -
@cfd-china 谢谢,我找了一篇论文,研究一下MULES的套路
-
还是搞不懂MULES为何要这样迭代,哪位来讲解一下
-
@yhdthu 哪篇论文
-
@yhdthu
对于openfoam中的求解器MULES近似于一个普适性的求解器,起源于Flux-correct apgorithm. 我建议看有关FCT算法的相关文献。MULES的思路类似于TVD格式。FCT算法的作者在90年代发文章说FCT要早于TVD算法。看这个帖子 CFD中的“通量修正”算法,隐姓埋名40年中图片中的英文论文。我最近也在写关于MULES的文章,原本打算1月份投出去,不过看起来够呛了。可能要延后半年投出去。
-
请问为什么会有两个质量源项和两个体积源项?
-
Q1 Q2
consider the difference of compressible and incompressible flow, which means that rho_l and rho_v a variable or not,
it would result in the change in the equations -
@yhdthu 主要是为了保证有界,cfd online上面有相关讨论,你可以看看。
-
-
interPhaseChangeFoam这个案例如何运行,我是先用blockMesh划分网格,然后interPhaseChangeFoam求解器求解,但是结果好像不对
-
openfoam自带案例interPhaseChangeFoam求解器下的cavitatingBullet,该图为我跑完0.05s后的水相分布,和0s时没啥变化,请问我哪里错了吗?