关于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; #}; } }
上述代码在OpenFOAM-7下可以运行,但结果好像y+是定值,你继续debug下看看哪里有问题
codeOptions:
-
@东岳 老师好!谢谢您之前的回复,看了那个帖子,我用的WSL系统,就没有深入了。后来试了下在controlDict中添加如下代码,在OpenFOAM 7里可用,可以输出时间步里命名的wall上的yPlus值:
functions { yplus { type yPlus; functionObjectLibs ("libutilityFunctionObjects.so"); outputControl outputTime; enabled true; } }
接下来要做的就是把贴近wall的网格加密来降低yPlus值, 不会知道还有更好的方法吗,谢谢!
有时候在controlDict中添加的语句,知道是那么几句,但是有时候会有细微的差别,比如DESModelRegions,不知道哪里有比较全面的讲这些的吗?但估计很少吧,因为每个版本之间都会有些不同,感觉如果不是很general的东西,可能就少了。再次感谢!