小白对于openfoam k-epsilon湍流模型程序编写的困惑



  • 大家好,我最近在阅读openfoam4.1中的k-epsilon湍流模型程序。。在读到epsilon方程和k方程时有些小困惑,以epsilon方程为例,对于扩散项和耗散项,程序中将其分为三项来写,如下所示:

    tmp<fvScalarMatrix> epsEqn
        (
            fvm::ddt(alpha, rho, epsilon_)
          + fvm::div(alphaRhoPhi, epsilon_)
          - fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_)
         ==
            C1_*alpha()*rho()*G*epsilon_()/k_()
          - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*alpha()*rho()*divU, epsilon_)
          - fvm::Sp(C2_*alpha()*rho()*epsilon_()/k_(), epsilon_)
          + epsilonSource()
          + fvOptions(alpha, rho, epsilon_)
        );
    

    中的这三项:

     C1_*alpha()*rho()*G*epsilon_()/k_()
          - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*alpha()*rho()*divU, epsilon_)
          - fvm::Sp(C2_*alpha()*rho()*epsilon_()/k_(), epsilon_)
    

    为什么这三项需要使用不同的差分格式?为什么第一项不需要fvm::,第二项使用fvm::SuSp而第三项却使用fvm::Sp?


  • 网格教授 OpenFOAM教授 管理员

    fvm表示隐性离散,不带fvm的表示显性离散。具体显性还是隐性和你的方程有关。第一项如果隐性离散的话,会使你的矩阵对角系数降低,因此显性离散。第二项由于不确定正负号因此使用fvm::SuSp自动调节显性/隐性离散,第三项因为为负号可以提高矩阵的对角占优因此使用fvm::Sp

    非常好的问题。



  • @李东岳 那显性离散的不需要加fvc::吗:surprised: ,经常看到有些量加有些量却不加:crying:


  • 网格教授 OpenFOAM教授 管理员

    如果你的函数不需要操作,比如就是-U,那就不需要加。如果你的函数需要进行张量操作,如果显性离散,就需要加fvc



  • @李东岳 谢谢东岳前辈!:cheeky: