foam-extend-4.0 pisoFoam 计算二维圆柱绕流
-
各位大佬!我目前进行二维圆柱绕流的计算,Re=1e4和5e4。圆柱直径D=0.1m,介质是水(nu=1e-6),计算域和生成网格(STARCCM生成并导入)如图所示:
湍流模型为 RAS kOmegaSST,边界条件参考Chalmers大学教程设置:
计算结果如下:最大库朗数为0.27,最大壁面y+<0.3,阻力系数误差<1%,St误差约为30%。St计算公式为:fD/U,f由升力时历曲线fft得到。
fvSolution
solvers { p { solver PCG; preconditioner DIC; tolerance 1e-05; relTol 0.01; } pFinal { solver PCG; preconditioner DIC; tolerance 1e-07; relTol 0; } U { solver BiCGStab; preconditioner DILU; tolerance 1e-08; relTol 0; } k { solver BiCGStab; preconditioner DILU; tolerance 1e-08; relTol 0; } omega { solver BiCGStab; preconditioner DILU; tolerance 1e-08; relTol 0; } } PISO { momentumPredictor yes; nCorrectors 3; nNonOrthogonalCorrectors 2; pRefCell 0; pRefValue 0; }
fvSchemes:
ddtSchemes { default CrankNicolson 0.7; } gradSchemes { // default cellLimited Gauss linear 0; // grad(U) cellLimited Gauss linear 0.333; default leastSquares; } divSchemes { default none; div(phi,U) Gauss linearUpwind grad(U); div(phi,k) Gauss linearUpwind default; div(phi,omega) Gauss linearUpwind default; div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear limited 1; } interpolationSchemes { default linear; } snGradSchemes { default limited 1; }
跪求老师指点迷津,如何提高St计算精度。
-
@Gunther ,我有个问题,我看到你在另一个帖子里发了类似的信息,误差是一致的,但是你贴的fvScheme和fvSolution有很大区别,可以说一下你用的是哪个吗?还是说,两个你都试过,但是结果差别很小?
我也在做圆柱绕流的模拟,网格是用ICEM生成的结构网格,中央O型分割的那种,各种论文中很常见的形式。但我的问题是,在亚临界区(2e4)我做出来的Cd高得离谱,大概比Wieselsberger的数据高50%。反而在临界区和超临界区看上去还好,虽然那个断崖还是对不太上。然后我试了一下的三维的模拟,然后数据一下子正常了;但三维的计算资源消耗太厉害了,而且在临界区和超临界区没什么优势。所以想问一下,你的计算设置是什么样的。
另外,关于St,St用的那个f,和升力的f不是一回事吧?我记得是有个两倍的关系,虽然你那个值考虑倍数关系后还是不对。我的阻力差的很多,反而St大差不差,0.2多一点,不到0.21,还算可以。
此外,还有个问题,圆柱绕流对网格很敏感,不确定你这种网格会有多大影响。
-
@cresendo 您好!我监测了y+,目前y+满足小于1的条件。
以下是我查到的对于nut边界条件的设置。之前也将壁面nut设为0,但是我记忆中这样就无法使用yPlusRAS操作得到壁面y+了。
nutLowReWallFunction seems to be only a placeholder for a fixedValue zero for nut, but holds some inherited information like yPlus calculation and coefficients/constants from nutWallFunction. -
@tidedrinker 您好!先回复关于St计算的事。如图所示。我这里面的f是升力的波动频率,如果是阻力的 波动频率为2f。
其次,非常感谢您分享您的研究经历,我看到很多学者和论文提到了圆柱绕流高雷诺数的三维效应,高雷诺数下二维相较于三维就是有问题。我也是因为计算资源的事情一直执着二维计算。但结合您的经验来看,高雷诺数下的三维计算不可避免。
Modelling turbulent flow past a circular cylinder by RANS, URANS, LES and DES至于我fvSchemes的设置,两个帖子都是我的设置,计算结果影响不大。并且有些unbounded的二阶格式会导致结果震荡。
-
更新一下,参考了这个大神的帖子:Cd计算不准的问题-LES-Re3900-三维圆柱绕流-pisoFoam and 分享:OpenFOAM不同离散格式的简单研究
修改了离散格式,全改为了二阶精度并进行非正交修正。并且重新绘制了网格。
结果目前不是很理想,仍在修改。同时我计算了二维和三维的圆柱绕流(Re=3900),发现计算维度对计算结果影响较大,二维计算得到的阻力系数和斯特罗哈数都相较三维结果和试验值均偏大。
但受限于计算资源,希望各位高雷诺数二维圆柱绕流计算结果较好的大佬分享一下经验,救救孩子,先行拜谢!
-
@Gunther 三维效应这个东西,我模拟的时候在1e4到1e5的时候比较明显;1e5之后,进入临界区了二维模拟就可以提供还算可以的结果了,临界区的那个骤降-回升的趋势也大致可以做出来,虽然具体数值有差异;更小的1e3量级的我还没试过,不确定什么情况。
我咨询过其他人,有人用StarCCM模拟二维圆柱绕流,1e4到5e4能得到大差不差的阻力系数。我这无论如何都做不出来,各种求解参数,边界层参数都改过,最近的还差1/3,就很离谱。
然后我就怀疑是网格类型的问题,用ICEM生成的,无论是矩形计算域还是圆形计算域,都不行;ICEM生成的非结构网格,过渡很僵硬,算起来会报错;如果减少中央O形区域的直径,会有强烈的不规则的振荡。我想试试二维的多面体网格和笛卡尔网格,但是Fluent Meshing、Ansys mesh和ICEM都不支持,可以用棱柱体,但操作起来很麻烦。后来发现StarCCM可以做三维转二维,我也确实实现了。但是,新的问题是,ccmToFoam不支持转二维网格,通过fluent进行中转也走不通,plt格式也好,cgns也好,对二维的支持都有问题。所以想问一下你,你的CCM网格是怎么转成OpenFOAM网格的?
-
@tidedrinker 你用ccmToFoam转换3D网格过去后,extrude成2D的呢?
-
@tidedrinker 非常感谢您分享您的经验!
我这个算例拿starccm跑过(二维网格,没有z轴厚度)结果并不理想,我也十分苦恼。关于starccm网格导入openfoam,我个人的经验是先有starccm导出.ccm格式的三维网格,之后用ccm26ToFoam *.ccm操作就可以将三维网格导入openfoam了,值得注意的是,openfoam没有纯二维,都是通过设置empty边界条件实现二维的模拟,需要注意的是z方向网格数为1,这里会用到extrudeMesh的操作,具体内容见田东老师的视频
希望能够帮到你!