吾生有涯 学海无涯
析模有界 知识无界

【OpenFOAM案例】 05 圆柱绕流

内容纲要

圆柱绕流问题是流体力学中的经典问题。本案例利用Fluent研究圆柱绕流现象。

1 目标

  • 本案例的主要目的为讲解瞬态流动问题仿真

  • 案例考虑雷诺数为100的圆柱绕流问题,采用层流求解

  • 案例计算完毕后可以观察到涡脱落现象

2 计算模型

计算模型尺寸如图所示。

尺寸如表所示。

Name Location Dimension
Cylinder D1 1m
inlet length D2 10m = 10D
outlet length D3 15m = 15D
width D4 20m = 20D

计算域中流体密度 1kg/m3,动力粘度为0.01 Pa.s,入口速度1 m/s。则雷诺数:

3 几何模型及网格

按前述的几何参数建立几何模型。

边界分别为inlet、outlet、top、bottom、cylinder。

4 转换网格

本案例依然使用icoFoam求解器。因此先从tutorial中拷贝一个icoFoam模板。我们这里用cavity当模板。

打开终端,输入命令:

cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity $FOAM_RUN cd $FOAM_RUN mv cavity cylinder

mv命令是给文件夹改名,我们这里将文件重命名为cylinder。

将前面生成的网格拷贝到$FOAM_RUN路径下,并将网格名称修改为cylinder.msh。

blueCFD下此路径为:D:blueCFD-Core-2016ofuser-of4runcylinder,我这里是将blueCFD安装在D盘根目录下了,如果是装在其他位置的话,需要做相应修改。

利用命令转换网格:

cd $FOAM_RUN/cylinder fluentMeshToFoam cylinder

转换成功出现如下图所示提示:

利用Tree命令查看此时cylinder文件夹下的组织形式为:

├── 0 │   ├── p │   └── U ├── constant │   ├── polyMesh │   │   ├── boundary │   │   ├── cellZones │   │   ├── faces │   │   ├── faceZones │   │   ├── neighbour │   │   ├── owner │   │   ├── points │   │   └── pointZones │   └── transportProperties ├── cylinder.msh └── system     ├── blockMeshDict     ├── controlDict     ├── fvSchemes     └── fvSolution  4 directories, 16 files

利用命令查看boundary文件内容:

nano constant/polyMesh/boundary

文件内容为:

FoamFile {     version     2.0;     format      ascii;
   class       polyBoundaryMesh;    location    "constant/polyMesh";    object      boundary; }
6(    INLET    {        type            patch;        nFaces          79;        startFace       22248;    }    OUTLET    {        type            patch;        nFaces          79;        startFace       22327;    }    TOP    {        type            wall;        inGroups        1(wall);        nFaces          139;        startFace       22406;    }    BOTTOM    {        type            wall;        inGroups        1(wall);        nFaces          139;        startFace       22545;    }    CYLINDER    {        type            wall;        inGroups        1(wall);        nFaces          28;        startFace       22684;    }    frontAndBackPlanes    {        type            empty;        inGroups        1(empty);        nFaces          22480;        startFace       22712;    } )

看到文件中除了我们自己命名的INLET、OUTLET、TOP、BOTTOM、CYLINDER外,还多出了一个frontAndBackPlanes,我们的网格是2D模型,而OF只能计算3D模型,因此自动给网格拉伸了一层厚度,多了个边界。后面要处理这个边界。

5 修改p文件和U文件

修改p文件为:

FoamFile {     version     2.0;     format      ascii;
   class       volScalarField;    object      p; } dimensions      [0 2 -2 0 0 0 0]; internalField   uniform 0; boundaryField {    INLET    {        type     zeroGradient;    }
   //出口压力为0//    OUTLET    {        type     fixedValue;        value    uniform 0;    }    TOP    {        type     zeroGradient;    }    BOTTOM    {        type     zeroGradient;    }      CYLINDER    {          type   zeroGradient;    }    frontAndBack    {        type     empty;    } }

出口边界静压为0

修改U文件为以下内容。

FoamFile {     version     2.0;     format      ascii;
   
class       volVectorField;    object      U; }

dimensions      [
0 1 -1 0 0 0 0]; internalField   uniform (0 0 0); boundaryField {
 
//入口速度为1m/s//    INLET    {        type      fixedValue;        value     uniform (1 0 0);    }    OUTLET    {        type      zeroGradient;    }
 
//顶部和底部均为无滑移壁面//    TOP    {        type      noSlip;    }    BOTTOM    {        type      noSlip;    }    CYLINDER    {        type      fixedValue;        value     uniform (0 0 0);    }
   
//侧面一定要设置为empty//    frontAndBack    {        type      empty;    }   }

入口速度为1m/s。

6 修改transportProperties文件

设置运动粘度0.01m2/s。

FoamFile {     version     2.0;     format      ascii;
   class       dictionary;    location    "constant";    object      transportProperties; }
// * * * * * * * * * * * * * * * * //
nu              [0 2 -1 0 0 0 0] 0.01;

注意这里设置的是运动粘度,看量纲。

7 设置controlDict文件

修改controlDict文件为:

FoamFile {     version     2.0;     format      ascii;
   class       dictionary;    location    "system";    object      controlDict; }
// * * * * * *  * * * * * * //
application     icoFoam; startFrom       startTime; startTime       0; stopAt          endTime;
//设置计算100s
endTime         100; deltaT          0.005; writeControl    timeStep; writeInterval   20; purgeWrite      0; writeFormat     ascii; writePrecision  6; writeCompression off; timeFormat      general; timePrecision   6; runTimeModifiable true;

8 开始计算

利用命令:

cd $FOAM_RUN/cylinder icoFoam

9 后处理

利用命令启动paraview进行后处理。

paraFoam

速度分布如图所示。

腾讯传视频太慢了,这里就懒得传了。案例文件及动画链接:链接:http://pan.baidu.com/s/1nuS1uIX 密码:a2qp

本篇文章来源于微信公众号: CFD之道

赞(1) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《【OpenFOAM案例】 05 圆柱绕流》
文章链接:https://www.topcfd.cn/1404/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册