首页/文章/ 详情

干货 | OpenFOAM基于重叠网格的强迫振动仿真

1年前浏览2394

强迫振动

Forced Vibration


当一个钝体在均匀来流中进行往复运动,或者处于振荡流中时,其涡脱落的模式就会发生巨大的变化,升阻力系数曲线也随之而改变。在对圆柱绕流的研究中,一些科学家设法使圆柱在均匀来流中以某一频率以及幅值进行往复运动,来研究其产生的涡的形态变化。这种圆柱在周期性的外力作用下的振动称为强迫振动(forced vibration),或受迫振动。

强迫振动对钝体绕流的研究有巨大意义,一来帮助我们揭示“卡门涡街”内在的形成机理,二来对某些需要控制涡脱落的场合有重要的指导意义。一些研究涡激振动的学者们,也会以强迫振动为辅助研究方法,意在理解幅值与升力之间的潜在关系。


本文主要介绍如何在OpenFOAM-v2006中使用重叠网格进行强迫振动算例的设置。算例文件作者已上传到gitee中:

https://gitee.com/chen-jingle219/forced_vibration/tree/master  

 


为什么用重叠网格?

有使用动网格经验的小伙伴应该会对此深有体会:当物体运动幅度过大的时候,就会出现一边网格变窄、而另一边网格又变宽的情况,轻者影响精度和计算结果,重者则会使得整个计算发散。为了减轻(无法避免)这个问题的影响,使用者一般都会选择加大计算域范围、加大网格变形范围等,所带来的结果,往往就是网格量变得相当大,计算时间也会增加,带来不必要的计算负担。

重叠网格顾名思义,是关于两层及两层以上的网格的信息交换方法。通过相关的数值格式,将此层网格上的流场量插值到彼层去。最简单的应用,就是以其中一层网格为固定不动的背景网格,另一层为移动的以运动物体为中心的上层网格。从这个特点来考虑,重叠网格的优点是显而易见的:上层网格可以不受约束的在背景网格之上进行任意幅度的运动,而不用担心网格变形带来的影响——网格压根就不会变形。但事物总有其缺点:因为网格层之间的信息是通过一定精度的插值来交换的,所以方程就不守恒了。因此在一些小振幅、网格变化不大的场合,重叠网格反而不是最优解。需要根据情境来选对方法。


前处理:如何准备一个强迫振动算例?

  • 网格的准备

本算例用到两套网格——背景网格圆柱网格(上层网格)。比较简单的就是圆柱网格,只需要通过blockMesh生成圆柱的贴体网格即可(用其他如ICEM的软件也可)。网格如下所示:


如果对流场模拟质量有要求的话,背景网格的生成步骤将会比较繁琐。从blockMesh开始,生成均匀的直角网格:


这时每一个网格都是一致的,但对于圆柱尾流区来说,这样的网格并不能满足要求。所以,利用snappyHexMesh来进行多重网格的生成:  


但因为snappyHexmesh是会对第三个纬度进行优化的,所以会看到一个二维的算例在z方向也有了几层网格(下图左,注意到三条横线):  
     
     

如果不处理的话,网格量会是正常二维算例的3~4倍,而且计算的时候也会发散。这时,使用OpenFOAM的另一个指令extrudeMesh,取背景网格上下某一面进行extrude(压制),这样就会强行把多层的区域覆盖掉,只留一层z方向的网格,这在OpenFOAM里就是二维算例的网格了(上图右)。

最后,通过mergeMeshes指令,将上下两层网格合并到一起,字面意义上实现重叠:


 
  • constant/dynamicMeshDict设置

OpenFOAM对于往复运动有自带的库来实现。强迫振动使得圆柱在流场中以某一频率和幅值往返运动,其运动可由一个正弦函数来定义:

其中,A为振幅,f为振动频率(2πf为角频率)。在OpenFOAM里,对应的函数为oscillatingLinearMotion,需要设置的两个参数为amplitude(幅值)和omega(角频率)。注意amplitude为一个矢量,代表其可在xyz三个方向上进行运动。  

 
  • 0文件设置初始条件以及边界条件

因为两层网格合并的关系,所以两层网格对应的边界条件会在cylinderAndBackground/0里面一起设置。与常规圆柱绕流相比,多了一类overset边界条件(左为p,右为U):

     
     


注意:U文件中的圆柱壁面边界(walls)类型改为movingwallVelocity。由此,程序就会知道哪些边界是具有重叠网格边界性质的,然后就可以按照相关的规则进行插值,传输网格信息了。0文件里还包括pointDisplacement和zoneID文件,都是和重叠网格的设置有关,缺一不可。


 
  • system/topoSetDict设置

前处理的最后一步,就是告诉程序,哪一部分是会动的。这时将到topoSet这一功能,然后polyMesh中将会增加sets的文件夹,来存放标记的zone的cellid。  
     
     

 


运 行

合理设置时间长度、最小时间步、并行之后,运行OpenFOAM-v2006自带的重叠网格不可压求解器overPimpleDyMFoam,等待其计算完成。  



后处理-与文献结果的比对

与Meneghini[1]的文献结果进行对比,分别对较小幅值以及大幅值强迫振动进行模拟。从涡脱落模式、涡脱落频率、升阻力系数曲线以及流向扰动速度曲线的对比中,评价计算结果的好坏。  

■ 小振幅强迫振动

(1)涡脱落模式  

以下分别为Meneghini结果(上),与本算例结果(下)。

Meneghini结果


本算例结果

可以看到,涡脱落模式与文献的基本一致。

(2)y=0流向速度扰动曲线

流向速度扰动曲线与文献的基本一致,有些许误差,这与计算方法、数值格式、网格质量等等都有较大关系。  
 
(3)升阻力系数以及频率锁定分析  
     

     
频率比0.85      

     
     

     
频率比1.025      

     

     


升阻力系数稳定后由单一频率主导,出现频率锁定现象。两个算例落在“lock-in”区域,与Meneghini的结果也符合较好。

■ 大振幅强迫振动

(1)涡脱落模式

以下上图为Meneghini结果,下图为本算例结果。  

Meneghini结果  


本算例结果

涡脱落模式与文献的基本一致。  

(2)y=0流向速度扰动曲线

 
流向速度扰动曲线与文献的基本一致,有些许误差,这与计算方法、数值格式、网格质量等等都有较大关系。  

(3)升阻力系数以及频率锁定分析

以下左图为Meneghini结果,右图为本算例结果(A/D=0.65,f/fs=0.80)。

     

     
Meneghini结果      

     
     

     
本算例结果      

     

算例A/D=0.65,f/fs=0.80在稳定后,升阻力系数由两个频率共同主导,未发生锁定现象。如上图所示,该算例落在lock-in区外,与Meneghini结果符合较好。  



以上主要介绍了基于OpenFOAM-v2006重叠网格的强迫振动算例设置方法。算例结果与文献对比基本符合,说明重叠网格的用法基本正确,可以拓展应用到其它算例。


参考文献:

[1] Meneghini, J. R. , &  Bearman, P. W. . (1995). Numerical simulationof high amplitude oscillatory flow about a circular cylinder. Journal of Fluidsand Structures, 9(4), 435-455.  

来源:多相流在线
OpenFOAM振动多相流燃烧动网格湍流通用航空航天船舶轨道交通积鼎 CFD
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-23
最近编辑:1年前
积鼎科技
联系我们13162025768
获赞 108粉丝 104文章 295课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈