OpenFOAM中MRF的代码


  • 教授

    MRF方法,理论上应该是在相对参考系中求解绝对速度,按照OpenFOAM wiki:http://openfoamwiki.net/index.php/See_the_MRF_development 的思路,其公式应该是:0_1510037016871_MRF.PNG , 对应的OpenFOAM代码为:

    tmp<fvVectorMatrix> tUEqn
    (
        fvm::ddt(U) + fvm::div(phi, U)
      + MRF.DDt(U)
      + turbulence->divDevReff(U)
     ==
        fvOptions(U)
    );
    

    代码实现中,MRF.DDt(U)即为omega^ UI,注意此处是显式处理,作为动量方程的源项,而通过连续性方程组建压力泊松方程时,phiHbyA只考虑了相对通量omege^r,即MRF.makeRelative(phiHbyA);;但并没有考虑omega^ UI这个源项,有人注意过这段代码实现吗?是不是这里的方程错了?


  • 教授

    @dzw05 但也有可能是求HbyA时将omega^UI作为源项考虑进去了,这段代码还没有看懂,有大神指点一二吗?


  • 管理员

    我最近看了下,

    替代文字

    上面这个方程应该是稳态算法的方程。里面MRF.DDt(U)用于处理$\Omega\times\bfU_I$。

    96bfbd01-3d8c-469a-a303-a79d75b4d80c-image.png

    但是上面这个方程不是OpenFOAM植入的方程。在瞬态情况下应该是下面这个:
    $$
    \frac{\p \bfU_I}{\p t}+\nabla\cdot(\bfU_I\bfU_R)+\Omega\times\bfU_I=...
    $$
    下面的瞬态代码分别对应:

    tmp<fvVectorMatrix> tUEqn
    (
        fvm::ddt(U) //第1项
      + fvm::div(phi, U) //第2项
      + MRF.DDt(U) //第3项
      + turbulence->divDevReff(U)
     ==
        fvOptions(U)
    );
    

    :chitang:


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1