Cd计算不准的问题-LES-Re3900-三维圆柱绕流-pisoFoam
-
inlet 到圆柱中心距离是10倍的圆柱直径,outlet到圆柱中心是20D, 上下两个面距离是20D。
之前在FLUENT上用同一套网格做过3900的例子,Cd均值为1.1,WALE是LES的子网格。
别的子网格还没有尝试,我会尝试用别的子网格。
现在500万的网格正在尝试用更严格的收敛准则,10的负7次方对于所有变量。
-
@random_ran 圆柱长度用piD应该好点,你看看你算出入口的p是不是大?如果大就是入口和出口之间存在的压差对结果造成了影响,如果大就要对入口到圆柱之间的距离加大,或者适当调整一下网格。还有你看看你的courant number,我感觉这个不要太大,同样网格下,不同的courant number结果也会有不同。
-
@random_ran 不行,你就在试一试换一种网格画法,调整一下你的网格。
-
对于这个网格,个人感觉是能接受的。主要原因是用同样的网格用FLUENT跑出了1.1的Cd。
到目前为止,我其实还有很多地方不太明白。特别是边界条件的设置,离散格式的选取。
对于边界条件:
OF非常不友好。要在0文件中设置5个子文件。每一个子文件中k,p,U,nut 以及nuTilda 对每一个边界都要从头到尾设置。 这套边界条件的设置,特别是k,nut和nuTilda是基于教程里的摩托车算例。但是对于他们的物理意义理解就不如p和U那么明朗。比如k文件中的0.24取值:在inlet是fixedValue,在outlet是inletOut边界条件。 还比如nut和nuTilda文件的设置。我不清楚这些参数会对Cd有什么样的影响。另外对于cyclic 边界条件,我尝试过的是上,下,前 和后面,四个边界条件同时改成cylic,会不会是只用使用前后两个面cyclic,另外两个面用wall+zeroGradient?
对于时间的离散,我用的是一阶精度的backEuler,这个对比FLUENT有所不一样,FLUENT会主动提示你时间离散选用二阶以上精度。问题可能出在这么?
另外还有一个比较极端的想法,既然FLUENT能算出1.1,OF用同样的设置不行吗? 问题在于FLUENT的LES子网格我使用的WALE,OF的子网格有很多,难道说应该把主要精力放在LES的子网格上吗?
-
首先,祝大家新年快乐! 对一个月前的问题继续进行补充。
用了 dynamicKEq 的子网格,得到的阻力和升力系数如下:
计算还在继续,虽然现在只算了几个周期。Cd的均值在0.99左右,这个值和文献报道的数据非常接近了,但问题也很明显:居然出现了负的阻力系数。之前的模拟虽然Cd稍微偏高,但是阻力系数没有出现负值,甚至都没有下过1.00。网格是用的同一套,y+在1以下,Courant 最大值在整个过程中在0.2以下。
Lysenko, D. A. et al.(2012)同样用OpenFOAM进行了LES模拟三维圆柱绕流,其中他对比了两个子网格的不同,传统的SMAG以及dynamic k-equation(TKE)。论文中的Cd,Cl 历史如下:
。他们的TKE模型计算得到的Cd的r.m.s 值很小,和我的试算反差很大。查看fvSolution文件后,我怀疑是残差标准的设置可能会影响数值计算结果,所以会想办法提高标准后看结果怎么样。
另外一个比较头疼的问题是尾流的速度曲线:文献中出现的这根曲线,横轴是计算域中轴线(原点在圆柱中心);纵轴是进口速度方向上的速度大小,通常是非常平滑的,如下图:
而我的计算结果,请注意是黑色虚线那条:
虽然大体上类似,但是波动却非常明显,不知道这是什么原因造成的。我的采样点是从Cl的历史中,发现振荡稳定后,取了10个周期。 而上篇文献则取了150多个周期,这个问题的来源吗?或许大家有更好的见解?
-
换了计算域的形态,居然就能吻合得很好了。
Cd 均值 1.03; St 0.21; Cl_rms 0.20; 30个周期96核,只用了12个小时;
可是为什么之前矩形计算域,算出偏高的数值?
难道雷诺数一样,不同的流体性质,也会对计算结果产生影响? -
@random_ran 你这次只改了流场吗?你之前矩形的流畅有没有把过度的地方改一改,看看结果有影响吗?相同雷诺数,不同的流畅性质应该不会产生影响。
-
Hi yhdthu:
我的这个case没有重点关注涡量的绝对大小。主要考察的是平均Cd, Strouhal 数,recirculation的长度。 voriticiy 只是用三维等值面做了一下wake的结构。 不知道你的case 重点考察的对象是什么? 如果你能提供的一下你的涡量考察的座标,我可以把我的数据提供给你。
对于蓝色的线的Cd 我是把每个一个时间步长的Cd都输出来。这个Cd是平均的整个Cylinder的表面。 然后把每个时间点的Cd 对时间用matlab plot一下就是那张图了。
-
@random_ran
好的,谢谢你
第一个应该是用的DES模型计算的吧,我看帖子最上面的Cd随时间变化幅度很小,但是后面哪个用了动力模式做的Cd图波动很大,虽然均值基本上是和实验对得上的我的目的是想做空化模拟,但事前要先将湍流结构捕捉的较好才可以,目前二维试算用的是动力模式,Cd波动也很大,我不是每个时间步输出的结果,平均起来效果不是很好,可能是样本点太少了
可否将Cp曲线也po出来呢?还有其时间平均的定义,希望能做个参考,非常感谢
BTW,如果可以的话,加个微信好友,可以随时交流~358253794
-
最开始确实是DES。
dynamicKEqution
的一大特点就是波动性,我第一次看到这个湍流模型运行出来的Cd历史的时候也被惊讶到了。可以参考:Lysenko, Dmitry A., Ivar S. Ertesvåg, and Kjell Erik Rian. “Large-Eddy Simulation of the Flow over a Circular Cylinder at Reynolds Number 3900 Using the Openfoam Toolbox.” Flow, Turbulence and Combustion 89.4 (2012): 491–518. Web.
如果湍流结果是一个前置条件的话,特别是你的雷诺数上千以后,2D的模拟总会计算出一个较高的Cd结果。 我不知道你是怎么计算Cd,O.F. 自己有专门计算Cd的object:
FoamFile { version 2.0; format ascii; class dictionary; object forceCoeffsIncompressible; }
你可以按自己的需求调整输出频率。另外,文献中对采样点的多少也是各有各的看法。有的人(Franke 2002)采样150个周期(shedding period), 有的人(Kravchenko and Moin 2000)说采样10几个周期的结果和自己的实验结果很吻合,而更多的周期则会出现偏差。个人建议30~50个周期。
我这里有最开始那个DES的Cp图,传统的plot方法。后面的因为考察的方向不同,没有用传统的方式画,对你也没有参考价值。Lysenko 2012 年那篇里有Cp的plot,你可以参考他的。
Cp的做法,我是用ParaView 后处理得到的。先在OF设置好:在一个周期内,输出,比如20个点 (包含p,U场)。计算完成后在圆柱的中截面截取出压力值用来计算Cp (这个Cp是截面Cp值),这和Cd (整个圆柱)的算法是有区别的。得到了一个个的输出的时间点的Cp值之后,再对所有的采样的周期,比如30个周期,求出平均值。
ps 论坛的回复没有办法插入图片,如果你有需要我那个Cp,可以发我的邮箱.
个人习惯:不用微信以及一切即时通信软件。这是并行计算的哲学告诉我的:尽量减少cpu之间的通信以提升效率。 :joking: