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. 关于y+的困惑以及请教如何写在controlDict中从而输出,谢谢!

关于y+的困惑以及请教如何写在controlDict中从而输出,谢谢!

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

    最近开始做点y+的研究,看了一些帖子,还是有些困惑,发在这里请教下大家:y+与速度有关,那么在湍流中速度大小是发生变化的,那么y+也是随着时间变化的,如果要看y+全程的变化,那么就要每个时间步输出来看其值大小吗?
    为了达到上述目的,在controlDict中增加以下语句:

    functions
    {
       yplus
       {
             type      yplus;
    	 libs       ("libfieldFunctionObjects.so");
             
            region    ???
       }
    }
    

    这样写估计不对,因为有error提示。所以这里请教下该如何写,以及region,比如想得到水槽底部中线上的y+,那么是 start (0.0 0.05 0.0) end(1.0 0.05 0.0),该如何写呢?
    有类似的参考也可以po下链接,不胜感谢!!!

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #2
    functions
    {
        test
        {
            functionObjectLibs ( "libutilityFunctionObjects.so" );
            enabled         true;
            type            coded;
            redirectType    printMinU;
            writeControl    timeStep;
            writeInterval   1;
    
            codeInclude
            #{
                #include "turbulentTransportModel.H"
            #};
    
            codeOptions
            #{
                -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
                -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
                -I$(LIB_SRC)/transportModels \
                -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
            #};
    
            codeExecute
            #{
                label patchID = mesh().boundaryMesh().findPatchID("fixedWalls");
                const Foam::incompressible::turbulenceModel& turbModel =
                    mesh().thisDb().lookupObject<Foam::incompressible::turbulenceModel>("turbulenceProperties");
    
                const scalarField& y = turbModel.y()[patchID];
    
                Info << "y= " << y << endl;
            #};
        }
    }
    

    https://www.cfd-online.com/Forums/openfoam-programming-development/158126-codeinclude-coded-function-controldict-yplus.html

    上述代码在OpenFOAM-7下可以运行,但结果好像y+是定值,你继续debug下看看哪里有问题

    codeOptions:
    捕获.JPG

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

    S 2 条回复 最后回复
  • S 离线
    S 离线
    Sloan
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 好的好的,谢谢老师!我再研究下,做出来了回来分享

    1 条回复 最后回复
  • S 离线
    S 离线
    Sloan
    在 中回复了 李东岳 最后由 编辑
    #4

    @东岳 老师好!谢谢您之前的回复,看了那个帖子,我用的WSL系统,就没有深入了。后来试了下在controlDict中添加如下代码,在OpenFOAM 7里可用,可以输出时间步里命名的wall上的yPlus值:

    functions
    {
           yplus
          {
             type                   yPlus;	 
             functionObjectLibs      ("libutilityFunctionObjects.so");
             outputControl           outputTime;
             enabled                 true;
           }
    }
    

    接下来要做的就是把贴近wall的网格加密来降低yPlus值, 不会知道还有更好的方法吗,谢谢!
    有时候在controlDict中添加的语句,知道是那么几句,但是有时候会有细微的差别,比如DESModelRegions,不知道哪里有比较全面的讲这些的吗?但估计很少吧,因为每个版本之间都会有些不同,感觉如果不是很general的东西,可能就少了。再次感谢!

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

    感谢分享
    一般情况下,类似这种的写错了会报错,目前没有比较全面的介绍,工作量太大很难做

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

    S 1 条回复 最后回复
  • S 离线
    S 离线
    Sloan
    在 中回复了 李东岳 最后由 编辑
    #6

    @东岳 谢谢老师建议! 回头再遇到类似的问题, 我多看看报错, 这样子更有针对性

    1 条回复 最后回复

  • 登录

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