取一个或多个平行于壁面的面(Kim的图也是不同高度的,y^+=5.39和149.23),使用surfaces工具输出这个面上的速度,然后每个面计算速度的展向、流向空间相关函数就行了。
可以直接计算二维的相关。
也可以固定z坐标,一条线一条线地计算流向的相关函数,再做个平均。
学流体的小明
帖子
-
周期性边界明渠的两点相关性分析Ruu、Rvv、Rww如何计算? -
量纲不匹配@bcp 我搞错了,之前没看对你计算rField的公式。我以为是你rField的计算公式不对。
你把报错代码发一下。
debug,分别输出rho、U、rField的量纲看一看 -
量纲不匹配UEqn当中各项的量纲是 $[\mu][U]/L^2=M/(L^2T^2)$
rField
的量纲应该是$T^{-1}$才对,但看起来你写出来的并不是这样
你可以在定义场的时候显式地指定量纲volScalarField B ( IOobject ( "B", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedScalar(dimless, 0.0) );
-
interFoam + 周期边界条件的压力问题平均流速就是用瞬时的流场速度U进行三维空间上的积分。可以看看代码
https://develop.openfoam.com/Development/openfoam/blob/OpenFOAM-v2012/src/fvOptions/sources/derived/meanVelocityForce/meanVelocityForce.C和重力不挂勾的,重力产生的加速度是它自己的效果,记为A;这个体积源项本身会产生一个加速度,记为B。
A不变,B会一直变化以使得平均速度保持为你设定的那个值。 -
展向平均 -
关于CFD计算服务器linux系统配置,AMD CPU是否会存在不兼容问题我自己一般在本地服务器做计算,超算上传下载比较麻烦。
内存1TB算1000万网格有点浪费吧,李老师卖的服务器,内存256G,我也能算2700万的网格,8000万网格的也不会爆。大网格情况下,CPU限制了计算速度,内存是确保程序能运行下去的。还有1000万网格时需要开到64核以上计算吗?
可以往上开,计算速度应该会更快。可以先研究一下加速比再做决定。
-
toposet之后出现空集。。。感觉是topoSet选择网格,提取各种面的时候有些问题了,我没用过这方面的功能,不太了解。
你如果只是想把边界面提取出来的话,在blockMesh当中就可以设置吧。 -
toposet之后出现空集。。。你blockMesh文件convertToMeters 0.001;
实际就是把下面的坐标乘以0.001画网格,画出来的计算域是(0,0,0)到(2,0.5,0.05)。
而你toposet直接从(0,0,10)开始画box,当然找不到了。 -
interPhaseChangeDyMFoam动网格计算时,alpha.water大于1,然后发散我也遇到过类似的问题,是在气泡槽道流当中。
计算域是一个长方体,四个面是周期边界,上下是固壁面。必须使用压力参考点。有时候就会在压力参考点周围,alpha.water变得大于1,导致那里有alpha.water梯度,表面张力生效,整个流场的压力都出问题。就像是压力参考点那里出现了个alpha.water源,不断地往外冒大于1的alpha.water。
图片是alpha.waterMean = 1.05等值面,中心处是压力参考点。具体的条件似乎还和自适应有关系,后来不用自适应了,但是出现过这样的情况:压力参考点凭空附近冒出alpha.water=0的相。
另外可能和压力没算收敛有关?又或者是这个alpha.water变得大于1导致压力收敛困难?希望能给你些参考。
-
并行运算后,reconstructPar,错误 -
设置vectorCodedSource类型源项,源项量纲和程序量纲不匹配!学到了学到了
-
大佬们。我想请问一下为什么这个算例跑出来,小球这里没有速度啊,加了一个入口速度分段式分布,但是会导致小球这里没有速度吗@yangom 无滑移边界条件,下面就是固壁面,无滑移就是壁面上速度为0,那下表面就需要从入口处开始发展发展出一个边界层。在这个边界层中,沿壁面法向向外,速度当然是从0逐渐变化成外流速度的
你直接看也看不出来有没有速度,画几条曲线出来。
1 靠近近壁面某个高度上,沿流动方向的一条线,画这条线上沿流动方向的速度
2 选几个位置,沿垂直于壁面方向的一条线,画这条线上沿流动方向的速度 -
大佬们。我想请问一下为什么这个算例跑出来,小球这里没有速度啊,加了一个入口速度分段式分布,但是会导致小球这里没有速度吗小球这里没速度是和你速度边界条件的设置有关系,你应该是把下面那个边界设置成了noSlip。
需要更多的信息。 -
设置vectorCodedSource类型源项,源项量纲和程序量纲不匹配!加源项的时候,这个源项的表达式好像有点问题,比如下面添加vectorSemiImplicitSource的时候源项是( (299.4600 0 0) 0)而不是(299.4600 0 0)。原因是加入的源项表达式为:
$$
S=S_C+S_Pϕ_P
$$
标量源项的代码也是这么写的:injectionRateSuSp { variable_name (Sc Sp); }
momentumSource { type vectorSemiImplicitSource; active on; vectorSemiImplicitSourceCoeffs { selectionMode all; //volumeMode absolute; // specific volumeMode specific; injectionRateSuSp { U ( (299.4600 0 0) 0); //partial p / partial x } } }
两个参考:
https://caefn.com/openfoam/fvoptions-acousticdampingsource
https://xiaopingqiu.github.io/2016/03/20/fvOptions2/刚又找了一下之前的笔记,不是上面这个原因,因为你用的是vectorCodedSource。我之前也刚好写过scalarCodedSource,也发现量纲不对导致的问题。之前记录的笔记是:
有一个问题是感觉并不需要乘以cell的体积。官方给的文档里面是有乘以体积的,但这个网页就很迷惑,https://www.openfoam.com/documentation/guides/v2012/doc/guide-fvoptions-sources-coded.html ,上面的表达式是除以体积,下面的代码又是乘以体积了。找到一个人的注释 https://xiaopingqiu.github.io/2016/03/20/fvOptions2/// fvMatrix<Type> 类中对“+=”操作符进行了重载,所以,eqn与Su的相加,相当于eqn+Su*mesh.V(),要不然eqn与Su的量纲不一致。
eqn += Su + fvm::SuSp(Sp, psi);所以还是要乘以体积。
-
如何建立消波区域有一个在区域当中加源项以实现消波的模块
https://caefn.com/openfoam/fvoptions-acousticdampingsource -
OpenFOAM非定常三维计算如何实时输出一个面上的速度场?function object surfaces
实时输出就用writeControl timeStep; writeInterval 1;
-
关于使用v2206版本计算Uprime2mean 和urms有一个很奇怪的问题@SSSSK 这两个图横纵坐标分别是什么?看起来确实是从20s开始统计的话收敛很快,150s开始统计收敛就好慢了,而且150-250峰值也没到2.5以上。有参考的DNS数据吗?和DNS比较一下。
你是用的哪一种驱动槽道的方式?是meanVelocityForce的话,就把pressureGradient随时间变化的图像贴一下。 -
关于使用v2206版本计算Uprime2mean 和urms有一个很奇怪的问题你画一下
20s开始统计,t=21、22……30s 的UPrime2Mean;
和
100s开始统计,t=101、102……110s 的UPrime2Mean。 -
关于使用v2206版本计算Uprime2mean 和urms有一个很奇怪的问题@SSSSK
restartTime 20;
和
startTime 20;
在20s之后输出的UMean,是一样的。
湍流是否完全发展,还可以看摩擦雷诺数的时间历程;10、20、30……这样不同时刻的速度剖面。得综合判断。我感觉是不是从100s开始统计的时候,其实是把前面的时间步也考虑了,在平均下来就会很小
100s开始统计不会考虑前面时间步的。你想如果它能一瞬间把前面100s的数据都考虑进去的话,那就是前面100s内每个时间步的全流场数据都存着,没那么大的内存或者硬盘容量的。
研究一下源代码吧。有个大佬的笔记讲得挺好↓
https://xiaopingqiu.github.io/2015/04/12/fieldAverage/