Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. OpenFOAM中为何要这样定义雷诺应力模型?

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

已定时 已固定 已锁定 已移动 OpenFOAM
8 帖子 2 发布者 9.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • zym604Z 离线
    zym604Z 离线
    zym604
    写于 最后由 编辑
    #1

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

    1 条回复 最后回复
  • zym604Z 离线
    zym604Z 离线
    zym604
    写于 最后由 编辑
    #2

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

    1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    写于 最后由 编辑
    #3

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

    zym604Z 1 条回复 最后回复
  • zym604Z 离线
    zym604Z 离线
    zym604
    在 中回复了 wwzhao 最后由 编辑
    #4

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

    1 条回复 最后回复
  • zym604Z 离线
    zym604Z 离线
    zym604
    写于 最后由 李东岳 编辑
    #5
    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 条回复 最后回复
  • zym604Z 离线
    zym604Z 离线
    zym604
    写于 最后由 李东岳 编辑
    #6

    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 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    写于 最后由 编辑
    #7

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

    zym604Z 1 条回复 最后回复
  • zym604Z 离线
    zym604Z 离线
    zym604
    在 中回复了 wwzhao 最后由 编辑
    #8

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

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]