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. devReff()通过devRhoReff()实现其功能 (rho =1)?(OF4.x)

devReff()通过devRhoReff()实现其功能 (rho =1)?(OF4.x)

已定时 已固定 已锁定 已移动 OpenFOAM
3 帖子 3 发布者 2.5k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Y 离线
    Y 离线
    Yongbo
    写于 最后由 编辑
    #1
    • IncompressibleTurbulenceModel.C 中的代码:
      首先给出devReff() 和devRhoReff()的代码,如下:
    template<class TransportModel>
    Foam::tmp<Foam::volSymmTensorField>
    Foam::IncompressibleTurbulenceModel<TransportModel>::devReff() const
    {
        return devRhoReff();
    }
    
    ...
    
    template<class TransportModel>
    Foam::tmp<Foam::volSymmTensorField>
    Foam::IncompressibleTurbulenceModel<TransportModel>::
    devRhoReff() const
    {
        NotImplemented;
    
        return devReff();
    }
    

    可以看到,devReff()调用了 devRhoReff()。然而在IncompressibleTurbulenceModel.C中,并没有找到这两个函数更进一步的细节

    • 接着,在linearViscousStress.C 中的的代码中,
      发现devRhoReff()的定义
    template<class BasicTurbulenceModel>
    Foam::tmp<Foam::volSymmTensorField>
    Foam::linearViscousStress<BasicTurbulenceModel>::devRhoReff() const
    {
        return tmp<volSymmTensorField>
        (
            new volSymmTensorField
            (
                IOobject
                (
                    IOobject::groupName("devRhoReff", this->U_.group()),
                    this->runTime_.timeName(),
                    this->mesh_,
                    IOobject::NO_READ,
                    IOobject::NO_WRITE
                ),
                (-(this->alpha_*this->rho_*this->nuEff()))
               *dev(twoSymm(fvc::grad(this->U_)))
            )
        );
    }
    
    • 先将问题总结如下:
      1)NotImplemented是什么意思?为什么不可压中devRhoReff()返回的是devReff()?
      是否可以理解为,不可压缩流里面的devReff()执行的是其它代码(linearViscousStress.C)中的devRhoReff()?
    template<class TransportModel>
    Foam::tmp<Foam::volSymmTensorField>
    Foam::IncompressibleTurbulenceModel<TransportModel>::
    devRhoReff() const
    {
        NotImplemented;
    
        return devReff();
    }
    

    2)若devReff() 实际上执行的是devRhoReff()(linearViscousStress.C)

    并且在CFDonline一个帖子里,链接文本,有人说devReff()实际上是devRhoReff()中rho为1时的情况
    ''it seems like it's best to simply search for "devRhoReff()", because "devReff()" is just when "rho" is simply 1.0.''。
    若是如此,这里面rho_=1是在哪里定义的,我一直没找到相应代码:136:

    望各位不吝赐教 :)!

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #2

    手头没有OpenFOAM。简单来说,notimplementsd是一个宏,返回到一个error函数。ρ=1是因为定义了geometricOneField。你顺着这个思路看看。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    写于 最后由 编辑
    #3

    我记得构造哪个class的时候就是默认了1

    1 条回复 最后回复
  • U upc_ngh 被引用 于这个主题

  • 登录

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