Cd计算不准的问题-LES-Re3900-三维圆柱绕流-pisoFoam
- 
							
							
							
							
@random_ran foam-extend/3.1,广州天河2,用了864核算的,10s左右才能更新一次时间步,deltaT=0.001,效率不是很高,我画的是矩形区域O型网格,网格数量5千多万。计算300s,需要50多天时间,资源消耗太多,看别人的文献DNS圆柱绕流Re=3900资源消耗并不是很大,不知问题出在哪里;我现在准备换成圆形区域网格计算 
- 
							
							
							
							
@李东岳 
 我是免费用户,那个网站很赞的地方是很多用户把模型都共享了。@bingningmeng45 
 Hi,多谢分享细节,这个计算套装很酷。感觉你的网格可能画得太细了。稍稍满足满足y+的要求就可以。 我也更倾向用圆形计算域。 另外可以试试 OpenFOAM-dev。 大规模的计算,过多的processor文件会让你头痛的。 另外分解计算域的方式,不同scheme的选择,不同求解器的选择,不同的硬件,不同的节点选择,... 太多东西可以影响计算时间。 目前,我看到有人专门研究这些的是这篇文献: 
 S. Keough,2014,"Optimising the Parallelisation of OpenFOAM Simulations"。但是计算量也不是很大,供你参考。 
- 
							
							
							
							
@random_ran 
 Mean streamwise velocity along the centreline of the cylinder这幅图怎么进行z轴(圆柱轴向方向)平均?还有对比其他的量也需要z轴平均。需要在算例怎么设置
- 
							
							
							
							
- 
							
							
							
							
@random_ran 你这个做法我不是很懂,能详细说明一下吗,谢谢 
- 
							
							
							
							
就是把ParaView中的操作脚本化。然后对生成的脚本做一些“胶水”处理。我这里用的Perl,你可以用自己熟悉的编程语言。 获得*.py 脚本的内容这样操作,在ParaView GUI 里面找到: Tools - Start Trace 进行你的图形操作,直到输出数据文件为止。然后 Stop Trace,就生成了 *.py 的脚本。 接下来对这个脚本文件处理就好。这个脚本文件中绝大部分都是一样的,只要你在感兴趣的地方稍作修改就好,比如储存地址,切片位置。 用Perl的目的就是少了做了几次“复制”“粘贴”。 最后生成一个“真正”的脚本,执行 pvpython *.py
- 
							
							
							
							
							
							
 我现在正在运行一个圆柱绕流Re=3900的算例,在处理一维波数谱图(1D wavenumber spectra)中遇到问题,不太清楚下图横纵坐标如何处理得到。 
 纵坐标是u'u'么?
 横坐标是波数k_z,如何得到的?大部分的文献说的很笼统,并不能很清楚知道他们的计算处理过程。
 我现在的做法是沿圆柱轴线z方向,截取一条线上的流向(x轴)速度波动,横纵坐标不太会处理,一直纠结在这。
- 
							
							
							
							
我从维基里面扣下来的一段话: "从随着时间而变的函数萃取出的一组数据,经过傅里叶变换,会得到一个频率谱;而从随着位置而变的函数萃取出的一组数据,经过傅里叶变换,会得到一个波数谱。" 相信对于速度在时间历程上进行快速傅里叶变换(FFT),应该很熟悉。时间域内(时间, 某个方向上的速度大小) --> (频率,某个方向上的速度大小); 对应的 位置域内(位置,某个方向上的速度)--> (波数,某个方向上的速度大小)。 [位置域内是我瞎造的], 不过量纲上是讲的过去。 时间FFT后 横轴变换成 s-1; 位置(横座标)FFT后变成 m-1 也就是波数的单位。 我的感觉是作者取了4条直线。 每条直线上搜集的是沿流向方向上的速度的波动值 (u'u') [对应雷诺应力],然后以 (纵座标,u'u') 做FFT。 但是为什么这样做呢? 
- 
							
							
							
							
@random_ran 你好,请教nut和nuTilda边界怎么设置 
- 
							
							
							
							
@random_ran @yhdthu 我对于那条蓝色的cd曲线还存在问题, 这个Cd是平均的整个Cylinder的表面。 这个是如何平局得到的呢? 
 我的理解是计算输出每一步的结果,从某个时刻开始,开始对瞬时值做时间平均,是这样的吗?
- 
							
							
							
							
- 
nut ($\nu_t$) 是湍流粘度; 
- 
nuTilda ($\overset{\sim}{\nu}$) 是 Spalart-Allmaras 模型中引入的一个量 
 对于 $\overset{\sim}{\nu}$: - 墙上: 0
- 进口处: 0 最好
 SA 模型认为 $\overset{\sim}{\nu}$ 小于 $\nu/10$的数值是可接受的。同样的情况适用于初始条件。 另外, 这个模型还强调了对 free-slip 边界条件的使用约束: Neumann (法向梯度为零)。 以上是参考: Spalart, P.R., & Allmaras, S.R. (1994). 
 A one-equation turbulence model for aerodynamic flows.
 La Recherche Aerospatiale, 1, 5-21.当然,最保险的方式是参考算例模型了。 @benqing 对的,Cd 是对每个时间步上的瞬时值进行时间上的平均来得到均值的。 注意,这个瞬时值已经是整个 Cylinder 表面的均值。 @东岳 投到一本书上,已经接受啦。 
- 
- 
							
							
							
							
这是我的毕业论文,纪念这个帖子盖到 100 楼。 虽然已经毕业,但依旧是 CFD 的小白。每次打开主页的时候,大把大把的专业名词都是我从来没接触到的。但我依旧会去探索 CFD, 探索 OF。 一路走来,学习 OF 的路上,真的是很感谢那些曾经帮助过我的人。 特别是这里,‘ cfd-china.com’,很喜欢这个论坛,简洁的界面,却不失复杂的功能,当然更重要的是, 还有藏龙卧虎的你们 : )。 感谢你们。 
- 
							
							
							
							
@random_ran 您好,最近看了一部分您的毕业论文,也在应用OpenFOAM的LES模型,看您在论文中提到计算过程中保证局部库朗数小于1 ,是指计算过程中的最大库朗数吗?  
 目前我的计算将最大库朗数调节到了0.3左右,可是这样的时间步长计算起来实在太慢了,请问LES模型的平均库朗数和最大库朗数大概应控制在什么范围内计算就相对比较稳定呢?
- 
							
							
							
							
@random_ran 嗯呢,我开始也算过最大库朗数1.3左右的,后来担心结果的稳定性,最近调小了,可是这计算效率实在太熬人了,在您的建议下我决定再将时间步长迈大一点,哈哈,等时间充裕可以研究一下时间步长的收敛性。 
 感谢回复!
- 
							
							
							
							
@random_ran 再次打扰了,我想做一下尾部三维的涡结构,可是为什么创建contour等值面时,contour by后面的选项只有压力P和nut,并没有后来vorticity命令计算出来的变量vorticity,vorticity只能以云图的形式出现,我需要怎样创建wake的结构呢? 
 
			

