CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

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

    OpenFOAM
    1
    1
    625
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      zwl 最后由 编辑

      相方程和压力方程的源相均是类似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();
      
      1 条回复 最后回复 回复 引用
      • First post
        Last post