@studentTan nCellsBetweenLevels 过渡层设置多一点,试下10层或20层
nCellsBetweenLevels 1;
@studentTan nCellsBetweenLevels 过渡层设置多一点,试下10层或20层
nCellsBetweenLevels 1;
snapControls
{
implicitFeatureSnap false;
explicitFeatureSnap true;
}
maxBoundarySkewness 10;
maxInternalSkewness 4;
minDeterminant 0.001;
minFaceWeight 0.02;
minVolRatio 0.01;
@齐彦鹏
滑移壁面,剪切应力设置为0
@coolhhh
#5 的方法2下面公式是指
x
和时间t
都相关。但槽道流的在展向和顺流向是均匀+时间平稳的
,所以最后的统计特性都与参考位置参考点位置x
和时间t
都无关,所以可以用空间和时间一起平均得到最终统计量,of自带的postChannel工具就是这么做的。u(x=x0, y=y0, z=z0, t)
,针对这条时间序列求时间相关函数公式如下截图,在MATLAB中对应函数是 xcorr
。这种方法要求序列足够长,并且点数足够多,才能算的准确。类似的,在某一固定时刻,沿着空间展向z的一条空间序列 u(x=x0, y=y0, z, t=t0)
,也一样可以用xcorr
求空间相关函数,计算结果要准确,就要求这条序列的展向宽度要足够大,且点数足够多,否则计算结果就会偏差大。 如果计算域纵向足够长,把每条展向空间相关函数做空间平均,得到的结果应该也会比较准确。想要更准确就要加上每个时刻的平均,就要输出每个时刻的数据,计算量太大了,用空间平均了,其实时间平均应该就不用了,结果差别不会太大。
(2)方法2,跟下面公式一样,计算两个序列的相关系数,对应MATLAB函数corrcoef
。已知展向上空间多个点A(x0, y0, zA, t)
、B(x0, y0, zB, t)
、C(x0, y0, zC, t)
的时间序列,就可以假设选定A为参考点,依次计算出 AB、AC的相关系数,然后就可以把连成展向空间相关系数曲线。这种方法就要设置展向监测点,测量出每个点的时程数据,相对来说时程数据比空间数据(受限于计算域大小)更长,计算结果应该会比较准确。还可以设置多个不同x向位置的测点,再对计算的空间相关系数曲线平均,结果会更准确。
@wangfei9088 感谢大佬
@wangfei9088 大佬,按照这种方式自定义湍流模型,会提示 Duplicate entry
的警告,直接忽略就可以吗?这个帖子提到不要有这种警告,就要复制很多文件,感觉挺麻烦
Duplicate entry laminar in runtime selection table incompressibleMomentumTransportModel
#0 /home/install/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam5error14safePrintStackERSo+0x32) [0x7f0a93735072]
系数B确实会随着雷诺数不同,有略微波动。《Kim J, Moin P, Moser R. Turbulence statistics in fully developed channel flow at low Reynolds number[J]. Journal of fluid mechanics, 1987,177:133-166.》文章中也提到了雷诺数比较低,B=5.5
《Moin P, Kim J. Numerical investigation of turbulent channel flow[J]. Journal of fluid mechanics, 1982,118:341-377.》中的结果 B=5.0
我对 https://turbulence.oden.utexas.edu/ 提供的 Channel Data (2015)
不同雷诺数湍流的 y+U+ 的对数律系数拟合了下,主要是对y+范围30-300这段进行拟合(考虑过高的y+段对拟合结果有挺大影响)。约翰霍普金斯数据库的 $Re_\tau=1000$和$Re_\tau=5200$也是来自于这个数据库。由于考虑拟合段不同,所以本次拟合结果的系数与约翰霍普金斯数据库提供的系数有点不同。
以下是拟合结果,可以看出DNS计算结果,只有$Re_\tau=180$满足系数$\kappa=0.4,\ -C=5.5$,其他雷诺数结果其实都有点偏差
@学流体的小明 感谢回复
https://turbulence.pha.jhu.edu/docs/README-CHANNEL5200.pdf
也就7#用实际计算的$u_\tau$计算的这个图,需要改变对数律的公式系数
根据《无痛苦NS方程笔记》,对数率公式是有个E系数,一般取9.8。《An introduction to computational fluid dynamics: the finite volume method》也是这种写法。
约翰霍普金斯湍流数据库$Re_\tau=1000$结果,包括上文对$Re_\tau=395$结果对数律对比,都是将E=1
来考虑。
https://turbulence.pha.jhu.edu/docs/README-CHANNEL.pdf
E=1
,而不用E=9.8
?@liujm 试了下确实没问题,mesh.C()[celli]
效果跟 mesh.C().primitiveField()[celli]
效果是一样的。
#include "fvCFD.H"
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
label celli = 0;
const vector cellCentre = mesh.C()[celli];
const vector cellCentre2 = mesh.C().primitiveField()[celli];
Info << "cellCentre = " << cellCentre << endl;
Info << "cellCentre2 = " << cellCentre2 << endl;
Info<< "End\n" << endl;
return 0;
}
OpenFOAM-v2206/tutorials/incompressible/pimpleFoam/LES/planeChannel/setups.orig/common/system/controlDict
,有一个计算Cf场的函数,可以参考下:
Cf
{
type coded;
libs (utilityFunctionObjects);
name Cf;
timeStart $/timeStart;
writeControl writeTime;
codeExecute
#{
auto* CfPtr =
mesh().getObjectPtr<volScalarField>("Cf");
if (!CfPtr)
{
Info<< "Create skin-friction coefficient field" << nl;
CfPtr = new volScalarField
(
IOobject
(
"Cf",
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh(),
dimless
);
regIOobject::store(CfPtr);
}
auto& Cf = *CfPtr;
Info<< "Computing skin-friction coefficient field\n" << endl;
const auto& tau =
mesh().lookupObject<volVectorField>("wallShearStress");
const dimensionedScalar Ubulk(dimVelocity, 17.55);
Cf = mag(tau.component(0))/(0.5*sqr(Ubulk));
#};
}
最近看《Holzmann T. Mathematics, numerics, derivations and OpenFOAM》,里边也提到大部分情况忽略k,对结果影响不大:
@东方白杨 我最近也在想这个问题,三维能谱为什么要球壳积分,这感觉与均匀各向同性湍流的对称性有关。如果是一般性的湍流,不确定计算三维能谱具有什么意义?
另外这篇文章中有提供代码下载,有一个计算3D能谱的代码,但只能算3个方向网格数量都相等的。
《Cai, Y., J. Wan and A. Kareem, A new divergence-free synthetic eddy method for generating homogeneous isotropic turbulence with a prescribed energy spectrum. Computers & Fluids, 2023: p. 105788.》
还有这篇文章,讨论的是如何计算非结构化网格的三维能谱
《Tsoutsanis, P., X. Nogueira and L. Fu, A short note on a 3D spectral analysis for turbulent flows on unstructured meshes. Journal of Computational Physics, 2022: p. 111804.》
OpenFOAM下面自带算例,也提供了一个计算能谱的函数 energySpectrum
OpenFOAM-v2206/tutorials/incompressible/pimpleFoam/LES/decayIsoTurb/system
@zju_klh
尝试在controlDict中增加一行看看,添加lib,其中XXX替换为编译模型库的名字
libs ("libXXX.so");