圆柱绕流问题是流体力学中的经典问题。本案例利用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之道
评论前必须登录!
注册