首页/文章/ 详情

初识OpenFOAM动网格

10月前浏览3066
一般情况下,CFD计算中在固定计算域内不涉及刚体运动时都是使用静网格,即模拟过程中一直使用同一套网格,计算过程中网格没有发生任何变形,这类网格称为静网格。动网格顾名思义就是在模拟计算的过程中网格会发生变化,从而实现计算域内的固体运动、计算域边界的移动或自适应网格加密等功能。  

图1 圆柱震荡及其动网格

OpenFOAM中的动网格类型很多,且动网格功能与OpenFOAM中所有其它物理模型都兼容,动网格的使用不影响湍流模型、多相流模型、燃烧模型等其它物理模型的使用。

Part 1

动网格简介

在动网格中,积分形式的控制方程如下:  
 

 

与通用的控制方程区别主要体现在以下两方面

1

控制方程中的体积dV是时间的函数,用来表示网格的形状在计算过程中是随时间变化的。由于网格体积是随时间变化的,当单个时间步内网格体积变化过大会引起网格质量问题,影响计算效果。因此在使用动网格时,要选择合适的时间步防止两次迭代间网格体积变化过大。 

2

在对流项中除了流体的速度,还新增了网格的速度ug,用来表示固体运动等方式带来的网格运动速度。 

图2 劣质动网格

(注意:重叠网格的理论不属于此范围,重叠网格是多套网格在同一块区域使用,不同网格间通过插值进行数据共享。)  
 
具体在代码中,求解器会通过mesh.update函数调用动网格库来计算和更新网格的新位置,如下图:  

图3 mesh.update函数

Part 2

动网格的使用方法

在OpenFOAM中通过在算例的constant目录下存放dynamicMeshDict字典调用动网格功能,当求解器检测到constant/dynamicMeshDict字典文件的存在时会自动调用动网格模块。

在低版本的OpenFOAM(例如OpenFOAM7以前的老版本)中,还需要使用名字中带DyM的求解器来使用动网格功能,例如使用两相流求解器interFoam在调用动网格功能时要改用interDyMFoam求解器。目前新版本的OpenFOAM中网格功能与其他物理模块独立开来,不存在也不再需要名字中带DyM的求解器了。  
如下图所示,在constant/dynamicMeshDict字典文件中,关键字dynamicFvMesh用来指定动网格的类型,其后紧接该网格类型的参数设置。可选的动网格类型包括solidBodyMotionFvMesh、dynamicMotionSolverFvMesh、dynamicRefineFvMesh 等等,不同类型动网格需要设置不同的参数。  

图4 动网格类型

在画好网格、配置好constant/dynamicMeshDict字典文件后,部分动网格类型还需要在0文件夹下对边界条件做出相应的设置。例如采用基于mesh displacement的动网格求解器需要在0文件夹下添加pointDisplacement字典;采用基于mesh velocity的动网格求解器需要在0文件夹下添加pointMotionU字典等。

Part 3

常见动网格设置

  • 滑移网格

滑移网格常用来计算旋转机械,例如泵、螺旋桨和电风扇等等,几何附近的贴体网格会随着固体转动,远场的网格则保持静止,效果如下图:

图5 滑移网格

在使用滑移网格时,需要在constant/dynamicMeshDict字典文件中需要指定动网格类型为dynamicFvMesh,同时在参数设置中给定旋转域、旋转中心、旋转轴和旋转角速度等等,此外还需要对0文件夹下的边界条件做出相应的设置。

  • 自适应网格

自适应网格是依据加密准则自动加密和稀疏网格,重点捕捉我们关注的梯度场,多用于单向流中捕捉涡结构或多相流中捕捉两相界面,此外还可以捕捉压力梯度、温度梯度和速度梯度等变量突变较大的地方。下图展示的是用自适应网格捕捉溃坝过程中的两相界面,水面抵达之处网格自动加密捕捉流动细节,水面流过之后网格自动稀疏为背景网格。在OpenFOAM中,网格自适应加密需要在背景网格上进行,网格稀疏的过程不会对背景网格进行稀疏。

图6 溃坝及其自适应网格加密

图7 自适应网格计算溃坝效果

为实现自适应网格的功能,需要在constant/dynamicMeshDict字典文件中指定动网格类型为dynamicRefineFvMesh。  
  • 重叠网格

重叠网格常用于模拟单个或多个物体的六自由度复杂运动或流固耦合问题。在该方法中,对不同的固体和计算域分别划分网格,形成的多套网格可以在空间内重叠,重叠区域通过合适的插值方法进行联结和共享。各套网格既可以是结构化网格也可以是非结构化网格,只要OpenFOAM支持该网格格式即可,不同的网格在不同的case目录下生成,之后通过mergeMeshes工具整合到主算例目录中,且主算例目录包含background背景网格。之后指定重叠网格的patches和zones就能进行计算了。

图8 重叠网格示意图

图9 重叠网格计算效果

目前,主流版本的OpenFOAM中没有重叠网格技术(www.openfoam.org),仅在ESI版本的OpenFOAM中发行(www.openfoam.com)。按照官方的说法,虽然重叠网格能解决普通网格做不到的复杂运动,但其复杂的理论方法  会导致新的数值耗散,且多套网格间的插值方法是不守恒的。

来源:多相流在线
MotionSolveOpenFOAM碰撞多相流燃烧动网格旋转机械通用航空航天船舶水利理论积鼎 CFD
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-23
最近编辑:10月前
积鼎科技
联系我们13162025768
获赞 97粉丝 81文章 241课程 0
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈