LES与RANS的结果不相同
-
@李东岳
大佬 你看这个是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有一个自己的输运方程)。
-
@cccrrryyy
多谢大佬的解释,上面那个视频已经是三个方向添加15%的的turbulence了,原本ke里面就是一个user define的测量速度,然后LES进口也没有k的影响,我就觉得加个turb试试看,回头做个fieldaverage然后和测量比一下就好。所以我就在纠结 $C_k C_e$ 是不是就自己瞎选选就行,反正只要符合实验结果都可以啊。我是这么理解的我没有传热,没有壁面。其实课题主要研究的是 kinematic 的方向和其他的关系不大。
时间格式,数值格式我回头查一下,因为我看了一下tut的设置,到时候跟着改改。
标准算力?cavity?pitzdaily?也和jet没关系啊,我回头在翻翻吧。我现在用的就是kEqn求的$k_{sgs}$,没用smagorinsky。现在就有个问题,不知道大佬能不能帮忙解个惑。
在kEqn里面有下面这个方程,我可不可以理解为这个东西算的是$\varepsilon_{sgs}$?因为我也需要这个$\varepsilon_{sgs}$。
长话短说,我们用的particle turbulence dispersion model是根据$k-\varepsilon$的,所以有一项是需要知道这俩值的,现在考虑到转到LES的话,简单粗暴的将$k$ 和$\varepsilon$ 转为sgs的。
道理都是一个道理,parcel见到的瞬时流场速度。 RANS的话就是全model,LES的话就是真实+sgs呗。您觉得靠谱么?template<class BasicMomentumTransportModel> tmp<volScalarField> kEqn<BasicMomentumTransportModel>::epsilon() const { return volScalarField::New ( IOobject::groupName("epsilon", this->alphaRhoPhi_.group()), this->Ce_*k()*sqrt(k())/this->delta() ); }
-
@星星星星晴 首先,那个视频是LES么?如果是的话,那很明显你的网格太粗了。按道理来说jet出来的地方,由于速度和周边环境的速度不一致,外缘在离出口很近的地方就应该开始有涡出来。你的网格量,RANS和LES都是一样的?
其次,Ck,Ce这些系数,是可以调的,而且LES里面这些系数只要不是太离谱,可能差异不会特别大。所以重点仍然是,找个类似的文献用人家用的就行,总比完全没有依据好。
最后,你提到的sgs下的耗散率,我个人是没见过这么定义的。这一项光看ksgs的输运方程,是表征ksgs的耗散率,但能不能和RANS里面的k-e模型的e对应起来,感觉需要严格的公式推导才可以。
-
@cccrrryyy 感谢您的回复。
@cccrrryyy 在 LES与RANS的结果不相同 中说:
@星星星星晴 首先,那个视频是LES么?如果是的话,那很明显你的网格太粗了。按道理来说jet出来的地方,由于速度和周边环境的速度不一致,外缘在离出口很近的地方就应该开始有涡出来。你的网格量,RANS和LES都是一样的?
是的,我没有修改网格,只修改了湍流模型,作为第一次尝试。
确实,我这个还没有涡。
我整个进口是开放的,不是东岳大佬说的有壁面的情况。
整个进口的边界条件是turbulentinlet,然后每个cell都根据实验测的结果分配了值。然后fluctuations是0.15 三个方向。其次,Ck,Ce这些系数,是可以调的,而且LES里面这些系数只要不是太离谱,可能差异不会特别大。所以重点仍然是,找个类似的文献用人家用的就行,总比完全没有依据好。
这个我得回头翻一下。
最后,你提到的sgs下的耗散率,我个人是没见过这么定义的。这一项光看ksgs的输运方程,是表征ksgs的耗散率,但能不能和RANS里面的k-e模型的e对应起来,感觉需要严格的公式推导才可以。
KE 里面的epsilon是需要解方程的。
这部分我也得回头查一下, 最起码看看OF内置的 -
@cccrrryyy 看起来大概应该弄成什么样。总要在脑子中有个大概的picture然后才有方向啊
@百善孝为先0626 Comparison of RANS and LES Turbulence Models against Constant Volume Diesel Experiments S. Som*1, P.K. Senecal2, and E. Pomraning2