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. yPlus在openfoam代码里面的实现

yPlus在openfoam代码里面的实现

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

    大家好,

    我想在openfoam里面植入y+的公式。
    我看到在nutLowReWallFunciton.C里面有关于yPlus的定义:

    tmp<scalarField> nutLowReWallFunctionFvPatchScalarField::yPlus() const
    {
        const label patchi = patch().index();
        const turbulenceModel& turbModel = db().lookupObject<turbulenceModel>
        (
            IOobject::groupName
            (
                turbulenceModel::propertiesName,
                internalField().group()
            )
        );
        const scalarField& y = turbModel.y()[patchi];
        const tmp<scalarField> tnuw = turbModel.nu(patchi);
        const scalarField& nuw = tnuw();
        const fvPatchVectorField& Uw = turbModel.U().boundaryField()[patchi];
    
        return y*sqrt(nuw*mag(Uw.snGrad()))/nuw;
    }
    

    我目前在改湍流模型,里面需要用到yPlus,所以就想着引用这里面yPlus()的定义到自己的代码里,但编译一直会报错。
    不知道正确的操作应该是怎么样的?谢谢。

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

    这个思路是正确的。你这段代码来自在类里面,你在程序里面做的时候,需要把必要的成员都定义一下。比如

    const turbulenceModel& turbModel = db().lookupObject<turbulenceModel>
        (
            IOobject::groupName
            (
                turbulenceModel::propertiesName,
                internalField().group()
            )
        );
    

    里面的turbulenceModel就需要定义一下,加点代码。以此类推。

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 老师您可以再提示下吗?
    错误里面汇总就是:

    there are no arguments to ‘patch’ that depend on a template parameter, so a declaration of ‘patch’ 或‘internalField’或‘db’ must be available
    

    不好意思代码功底有点差:zoule:

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #4
    there are no arguments to ‘patch’ that depend on a template parameter, so a declaration of ‘patch’ 或‘internalField’或‘db’ must be available
    

    错误提示patch没有生命,你需要声明一下。你需要系统学一下。一时半会估计整不出来

    我想在openfoam里面植入y+的公式。

    你直接计算yPlus不就可以了?

    postProcess -func yPlus
    

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #5

    @东岳 我想在湍流模型中植入fMu,公式是:
    FMU.png
    里面有y+,所以想引用yPlus
    用后处理工具算出来的y+是定值吧,直接简化成定值带进去吗?

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

    @Calf-Z-DNS 在 yPlus在openfoam代码里面的实现 中说:

    fMu

    这个是体场?

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #7

    @东岳 是的,体标量场

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

    y+在体场的计算公式你那有么

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #9

    @东岳 代码里面公式在nutLowReWallFunciton.C的yPlus()体现
    计算公式就是:y+.png

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

    $\tau_w$是壁面剪切力,只有在壁面才有值

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #11

    @东岳 那从一个壁面函数的代码里面引用yplus到湍流模型的代码里不知道怎么操作

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #12

    @Calf-Z-DNS

    那从一个壁面函数的代码里面引用yplus到湍流模型的代码里不知道怎么操作

    代码倒不是问题。我觉得构成问题的,是如何在非壁面处求yPlus,目前我还没找到相应的公式,有公式就不难处理

    不知道有没有人见到过如何在非壁面处求yPlus的数学公式?

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

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

    湍流模型中的yPlus一般是算wall边界网格高度的,你这种可能需要用 wallDistData 来计算,具体可以参考 vanDriestDelta 的源码。

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 wwzhao 最后由 编辑
    #14

    @wwzhao 谢谢!我看了vanDriestDelta.C,里面好像是计算yStar?不知道要怎么参考

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #15

    @Calf-Z-DNS

    van Driest 也是施加 damping function,跟你这个比较类似,van Driest damping function 的定义可以参考这里。

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

    最近算了几个验证壁面函书的LES,可能加van Driest会更准。有空把这个算立整理整理发上来

    捕获.JPG

    另外得知:

    @东岳 在 yPlus在openfoam代码里面的实现 中说:

    如何在非壁面处求yPlus的数学公式?

    自我回答,跟常规方法一样。程序里:

    #include "wallDist.H"
    
    int main()
    {
        volScalarField Dist(wallDist::New(mesh).y());
        dimensionedScalar uTau("uTau", dimVelocity, 1.003);
        volScalarField yPlus(Dist*uTau/turbulence->nu());
    }
    

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

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #17

    @东岳 谢谢老师!这里面的uTau为何直接取1.003呢?不需要植入它的公式吗?

    1 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    写于 最后由 编辑
    #18

    如果要植入MK湍流模型的话,里面有一项47d6d46e-cba6-433f-89c2-6c135a81e936-图片.png
    其中y+我按照了东岳老师提供的方法,那就是如下图:
    42c137f7-26e2-4923-9c61-23be23c53c16-图片.png
    编译成功,但按这个湍流模型跑的结果不对。

    uTau为何设成1.003呢?如果要植入uTau的公式,那tauw这个如何得到呢?源代码里面相关的有tauw跟wallshearstress,但是不知道怎么引用。还望赐教。

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 Calf.Z-DNS 最后由 编辑
    #19

    @Calf-Z-DNS 我那个是我自己写哒,计算出来之后是1.0003,具体我有点忘了下周回办公室给你看看

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

    C 2 条回复 最后回复
  • C 离线
    C 离线
    Calf.Z-DNS
    在 中回复了 李东岳 最后由 编辑
    #20

    @东岳 好的谢谢!

    1 条回复 最后回复

  • 登录

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