reactingTwoPhaseEulerFoam添加空化模型,发生相变时焓方程或者迭代求温度发散



  • 相方程和压力方程的源相均是类似interPhaseChangeFoam的源相添加方式添加,能量方程是按照质量传递乘以相应的焓,但是在求解过程中,一旦发生相变,焓方程或者迭代求温度就会发散。(我并没有按照本求解器原有的蒸发模型添加,因为相变原理不同)要以什么样的数值方式处理才能解决这个问题呢?有经验的专家能给些建议吗?@东岳
    代码如下:

    E1Eqn =
                (
                    E1Eqn
                 ==
                   *heatTransfer[phase1.name()]
                  +(fluid.mDotAlphal()[0]*limitedAlpha2+fluid.mDotAlphal()[1]*limitedAlpha1)*phase2.thermo().he()
                  + alpha1*rho1*(U1&g)
                  + fvOptions(alpha1, rho1, phase1.thermo().he())
                );
    
                E1Eqn->relax();
                fvOptions.constrain(E1Eqn.ref());
                E1Eqn->solve();
    
            }
        }
    
        {
            tmp<fvScalarMatrix> E2Eqn(phase2.heEqn());
    
            if (E2Eqn.valid())
            {
                E2Eqn =
                (
                    E2Eqn
                 ==
                   *heatTransfer[phase2.name()]
                  -fvm::Sp((fluid.mDotAlphal()[0]*limitedAlpha2+fluid.mDotAlphal()[1]*limitedAlpha1)*2, phase2.thermo().he())
                  +(fluid.mDotAlphal()[0]*limitedAlpha2+fluid.mDotAlphal()[1]*limitedAlpha1) * phase1.thermo().he()
                  + alpha2*rho2*(U2&g)
                  + fvOptions(alpha2, rho2, phase2.thermo().he())
                );
    
                E2Eqn->relax();elax();
    

Log in to reply