interPhaseChangeFoam求解器中的一些疑问?



  • 参考文献Numerical Modelling of Evaporation and Condensation Phenomena-Numerische Modellierung von Verdampfungs-und Kondensationsph änomenen

    可知相方称为:
    0_1483952575897_相方程.jpeg

    Q1:查看求解器代码,发现并没有求解等号右侧第一项,为什么没了?

    另外,在推导相方程的时候,得出了混合速度的散度为:
    0_1483952656318_1.jpeg
    其中混合速度定义为:
    0_1483952652191_WechatIMG283.jpeg
    在连续方程中散度为
    0_1483952647699_WechatIMG282.jpeg

    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上面有相关讨论,你可以看看。




登录后回复
 

与 CFD 中国 的连接断开,我们正在尝试重连,请耐心等待