LES与RANS的结果不相同
-
@李东岳 早,是的,目前是单相流。
原来是这样算的,先等流场充分发展以后,然后再将parcel喷进去,2-way。
但是再0.2m以后,发现parcel的$U_r, U_{r,rms}, U_{z,rms}$ 和实验测量差别比较大。
在想换湍流模型以后,会不会有所提升。我看了大佬你的一些材料,
现在我就是瞎弄弄,然后将$C_k$从默认的0.09 现在改到0.75就得到类似下面的流场。
不知道这么改对不对,$C_k$ 就是$C_{sgs}$吧??LES { model Smagorinsky; turbulence on; printCoeffs on; delta cubeRootVol; cubeRootVolCoeffs { deltaCoeff 1; } Ce 1.048; Ck 0.75; //C_sgs = 0.2; }
我知道LES应该是瞬时速度,和$k-\varepsilon$的结果不能这么比,但是最起码应该类似把。
另外我在论坛搜的相关的帖子,里面总提到 http://www.dyfluid.com/LES.html 这个材料,但是我发现这个资源好像已经不可用了。@星星星星晴 就是单相流?你看下nut这个场,估计差别很大
另外为什么nut是这么个东西,震惊,感觉左边LES算的不太对劲啊
第一次用LES, 以为换一下湍流模型就啥也不用改了,见笑了。
另外网格密度我也没改,换LES需要加密么?
另外filter是$\Delta$ 但是这个 $\Delta$怎么确定的是cubeRootVol吧?但是of内置有好多种方法,每种方法大概是什么样,适用于某种情况呢呢,请求一些资料看看,求个现成的轮子。
谢谢 -
@李东岳
大佬 你看这个是k-e的结果,速度场, 壁面的网格很粗,我也不考虑壁面,所以之前哪个nut的场,特别怪异我也可以理解。
我这个模拟是不考虑primary breakup那个区的,直接拿喷头下25mm测量数据,流场,parcel的
所以我完全不知道能不能达到你给的那个图的效果,而且 jet 速度也不高。。
我有一点很困惑,k-e里面,进口瞬时速度是 $u = \bar{u} + u'$
但是LES呢?我找到of内置一个turbulentInlet,还是我那个进口速度field,然后给了 fluctuationScale (0.15 0.15 0.15)。然后现在jet就变成了有点海草舞的那种扭动一点的状态。。不知道对不对。。
另外有一点,能不能通过调节Turbulence里面的 $C_e, C_k$ 然后大致让 LES的结果和KE的匹配呢? -
@cccrrryyy 谢谢大佬的建议,所以我想这看看找找有没有介绍OF LES的现成的资料什么的,在网上找了一圈,大部分都是介绍LES是空间filter,然后RANS是时均,然后什么关于Delta的设置啊什么的,完全摸不到头脑。。还有看到很多Delta用Van什么的,不是用cubeRootVol的,
包括Smagorinsky还是KEqn啊,什么WALE什么的很少有具体解读。。我想问一下,我之前看到教材什么说LES肯定是Mesh-dependent的,而且根据理论来说,网格越小,约密集,这让解析的更多,Ko尺度嘛。 那现在的问题就来了,如何选择合适的网格尺寸?另外一点在于如果假如Particle的话,网格也不能太小,不然也会有很多其他的问题。。
这个尺度很难把握,另外直接用k-e的网格,换成LES,不考虑壁面,您觉得可以么? -
@李东岳 @李东岳
我这方面非常薄弱,我用的sprayFoam@李东岳 在 LES与RANS的结果不相同 中说:
你这个是瞬态RANS吧?fvSolution、fvScheme啥的都对么。
你可以在LES进口加扰动。如果进口周围都是墙的话,速度梯度比较大应该会发生不稳定行。
调节Ce、Ck可以,但是说不太通,现存的参数已经是前人调试过非常普适性的值,你调了之后,就不普适性了。
$C_k$ $C_e$ 如果我用of 默认的设置的话,就如同第一个帖子一样了,jet直接射出去了,完全和ke的结果不一样,但是无论用什么方法,都应该和实验结果差不多匹配的吧,至少ke弄得匹配了
下面是k-e的设置
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) Gauss linear; div(phid,p) Gauss linear; div(phi,K) Gauss linear; div(phi,k) Gauss linear; div(phi,epsilon) Gauss linear; div(U) Gauss linear; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; div(phi,Yi_h) Gauss upwind; } laplacianSchemes { default Gauss linear orthogonal; } interpolationSchemes { default linear; } snGradSchemes { default orthogonal; } // ************************************************************************* //
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 7 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { rho { solver PCG; preconditioner DIC; tolerance 1e-06; relTol 0; } rhoFinal { $rho; tolerance 1e-06; relTol 0; } "(U|k|epsilon)" { solver GAMG; tolerance 1e-6; relTol 0; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 64;//sqrt(cellnumber/cores) agglomerator faceAreaPair; mergeLevels 1; minIter 1; } p { solver GAMG; tolerance 1e-6; relTol 0; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 64;//sqrt(cellnumber/cores) agglomerator faceAreaPair; mergeLevels 1; minIter 1; } pFinal { $p; tolerance 1e-06; relTol 0; } "(U|k|epsilon)Final" { $U; tolerance 1e-06; relTol 0; } "(h|Yi|O2|N2|H2O)" { solver PBiCGStab; preconditioner DILU; tolerance 1e-6; relTol 0; } "(h|Yi|O2|N2|H2O)Final" { $Yi; relTol 0; } } PIMPLE { nOuterCorrectors 150; nCorrectors 1; nNonOrthogonalCorrectors 0; consistent yes; outerCorrectorResidualControl { "(U|k|epsilon)" { tolerance 1e-6; relTol 0; } } residualControl { U 1e-6; p 1e-6; "(k|epsilon|omega)" 1e-6; } } relaxationFactors { fields { p 0.3; } equations { epsilon 0.9; k 0.9; U 0.7; ".*" 0.7; } } // ************************************************************************* //
-
@星星星星晴 网格尺寸理论上是有一堆公式可以估算的,但大都针对基础的案例,平板流动啊啥的,对实操没啥用。最好的方式就是找类似的文献,别人用多少你就用多少
直接用k-e的网格感觉太粗了些,壁面不壁面的看你模拟的东西了。你这个没有传热,而且兴趣区域在中间不在外面,感觉壁面可能没啥影响。
RANS改到LES,需要考虑的有边界条件(特别是入口,可能需要添加认为的扰动)、时间格式、数值格式(迎风就不太好,中心差分会好一些)、网格等等。所以比较建议先找个标准的算例试一下。
另外说一点,RANS你用的k-e,这里的k是所有的湍动能。LES里面的k是ksgs,是亚格子湍动能,不一样。Smagorinsky的话其实没有直接求解这个ksgs,直接用代数方法给出来的,但也有直接求解ksgs的(叫kEqn还是啥的,就是ksgs有一个自己的输运方程)。