Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    OpenFOAM中为何要这样定义雷诺应力模型?

    OpenFOAM
    2
    8
    4130
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • zym604
      zym604 last edited by

      我发现OpenFOAM2.4中把雷诺应力模型定义成了这样:
      0_1517916907141_6d4d04d5-04e5-48e5-b4fd-557c0c115f6b-image.png
      我不太理解为什么要这么写,以我的理解应该是这样:
      0_1517917166870_822a38ff-cdc3-40ef-8907-9bf02cc678b7-image.png
      请问有人能解开我的疑惑吗?

      1 Reply Last reply Reply Quote
      • zym604
        zym604 last edited by

        其中R代表雷诺应力,S代表源项

        1 Reply Last reply Reply Quote
        • W
          wwzhao 教授 last edited by

          哪个求解器?没找到这段代码。。。

          zym604 1 Reply Last reply Reply Quote
          • zym604
            zym604 @wwzhao last edited by

            @wwzhao LRR 求解器+pimpleFoam,我把两边的公式加起来得到的这个完整的公式。

            1 Reply Last reply Reply Quote
            • zym604
              zym604 last edited by 李东岳

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

              且默认couplingFactor=0.

                  //- Return the effective viscosity
                      virtual tmp<volScalarField> nuEff() const
                      {
                          return tmp<volScalarField>
                          (
                              new volScalarField("nuEff", nut() + nu())
                          );
              
              1 Reply Last reply Reply Quote
              • zym604
                zym604 last edited by 李东岳

                LRR

                tmp<fvVectorMatrix> LRR::divDevReff(volVectorField& U) const
                {
                    if (couplingFactor_.value() > 0.0)
                    {
                        return
                        (
                            fvc::div(R_ + couplingFactor_*nut_*fvc::grad(U), "div(R)")
                          + fvc::laplacian
                            (
                                 (1.0 - couplingFactor_)*nut_,
                                 U,
                                 "laplacian(nuEff,U)"
                            )
                          - fvm::laplacian(nuEff(), U)
                        );
                    }
                    else
                    {
                        return
                        (
                            fvc::div(R_)
                          + fvc::laplacian(nut_, U, "laplacian(nuEff,U)")
                          - fvm::laplacian(nuEff(), U)
                        );
                    }
                }
                
                1 Reply Last reply Reply Quote
                • W
                  wwzhao 教授 last edited by

                  这可能是基于数值稳定性的考虑,只有nueff这一项用的是fvm隐式离散,其他用的都是fvc显式离散

                  zym604 1 Reply Last reply Reply Quote
                  • zym604
                    zym604 @wwzhao last edited by

                    @wwzhao 谢谢。这个问题我现在已经搞清楚了,是为了增加矩阵的“对角占优”特性,提高收敛性。经过实验,假如修改成不加nu_t的公式,对于一些Co数较大的case就有可能计算发散。

                    1 Reply Last reply Reply Quote
                    • First post
                      Last post

                    CFD中文网 | 东岳流体 | 京ICP备15017992号-2
                    论坛登录问题反馈可联系 li.dy@dyfluid.com