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



  • 最近开始做点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下链接,不胜感谢!!!



  • 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



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



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

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

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



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



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


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2