问题:

圆柱绕流问题,模拟仿真有两个圆柱、一个源的流体变化情况。

解决步骤:

1.使用Gmsh画出网格,并保存cylindertwo.msh

2.以Cavity为基础创建新的Case:Cylindertwo,先将0,constant,system三个文件夹复制进Cylindertwo,将constant文件夹中的transportProperties文件复制出来,删除constant文件夹。

3.由于采用源码安装,使用以下代码启动OpenFoam.

source ~/OpenFOAM/OpenFOAM-v3.0+/etc/bashrc
run

运行以下代码生成网格:

gmshToFoam

4.改写P,U和boundary文件,具体如何改写参见代码.

5.生产网格,进行计算,命令如下:

checkMesh
renumberMesh -overwrite
icoFoam

6.使用paraFoam命令查看效果.

paraFoam

画网格:

画出的网格效果如下:

Fg.1 mesh前三维图

Fg.2 mesh后三维图

代码:

cylindertwo.geo

// Gmsh project created on Wed Jun 29 11:30:24 2016
Nx = 41;Rx = 1.00;
Ny = 41;Ry = 1.00;
Nb = 41;Rb = 1.00;
Nc = 41;Rc = 1.00; Point(1) = {-10,-10,0,1.0};
Point(2) = {10,-10,0,1.0};
Point(3) = {40,-10,0,1.0};
Point(4) = {-10,10,0,1.0};
Point(5) = {10,10,0,1.0};
Point(6) = {40,10,0,1.0}; //cylinder1 points
Point(7) = {-0.35355339,-0.35355339,0,1.0};
Point(8) = {0.35355339,-0.35355339,0,1.0};
Point(9) = {-0.35355339,0.35355339,0,1.0};
Point(10) = {0.35355339,0.35355339,0,1.0};
Point(11) = {0,0,0,1.0}; //cylinder2 points
Point(12) = {-0.35355339+30,-0.35355339,0,1.0};
Point(13) = {0.35355339+30,-0.35355339,0,1.0};
Point(14) = {-0.35355339+30,0.35355339,0,1.0};
Point(15) = {0.35355339+30,0.35355339,0,1.0};
Point(16) = {0+30,0,0,1.0}; Point(17) = {20,10,0,1.0};
Point(18) = {20,-10,0,1.0}; //x lines
Line(1) = {4, 5};Transfinite Line {1} = Nx Using Progression Rx;
Line(2) = {5, 17};Transfinite Line {2} = Nx Using Progression Rx;
Line(3) = {17, 6};Transfinite Line {3} = Nx Using Progression Rx;
Line(4) = {1, 2};Transfinite Line {4} = Nx Using Progression Rx;
Line(5) = {2, 18};Transfinite Line {5} = Nx Using Progression Rx;
Line(6) = {18, 3};Transfinite Line {6} = Nx Using Progression Rx;
//y lines
Line(7) = {4, 1};Transfinite Line {7} = Ny Using Bump Ry;
Line(8) = {5, 2};Transfinite Line {8} = Ny Using Bump Ry;
Line(9) = {17, 18};Transfinite Line {9} = Ny Using Bump Ry;
Line(10) = {6, 3};Transfinite Line {10} = Ny Using Bump Ry;
//cicle lines of one
Circle(11) = {9, 11, 10};Transfinite Line {11} = Nc Using Progression Rc;
Circle(12) = {10, 11, 8};Transfinite Line {12} = Nc Using Progression Rc;
Circle(13) = {8, 11, 7};Transfinite Line {13} = Nc Using Progression Rc;
Circle(14) = {7, 11, 9};Transfinite Line {14} = Nc Using Progression Rc;
//cicle lines of two
Circle(15) = {14, 16, 15};Transfinite Line {15} = Nc Using Progression Rc;
Circle(16) = {15, 16, 13};Transfinite Line {16} = Nc Using Progression Rc;
Circle(17) = {13, 16, 12};Transfinite Line {17} = Nc Using Progression Rc;
Circle(18) = {12, 16, 14};Transfinite Line {18} = Nc Using Progression Rc;
//block lines
Line(19) = {4, 9};Transfinite Line {19} = Nb Using Progression Rb;
Line(20) = {5, 10};Transfinite Line {20} = Nb Using Progression Rb;
Line(21) = {2, 8};Transfinite Line {21} = Nb Using Progression Rb;
Line(22) = {1, 7};Transfinite Line {22} = Nb Using Progression Rb;
Line(23) = {17, 14};Transfinite Line {23} = Nb Using Progression Rb;
Line(24) = {6, 15};Transfinite Line {24} = Nb Using Progression Rb;
Line(25) = {3, 13};Transfinite Line {25} = Nb Using Progression Rb;
Line(26) = {18, 12};Transfinite Line {26} = Nb Using Progression Rb; //surfaces
Line Loop(27) = {1, 20, -11, -19};
Plane Surface(28) = {27};
Line Loop(29) = {7, 22, 14, -19};
Plane Surface(30) = {29};
Line Loop(31) = {4, 21, 13, -22};
Plane Surface(32) = {31};
Line Loop(33) = {8, 21, -12, -20};
Plane Surface(34) = {33};
Line Loop(35) = {2, 9, -5, -8};
Plane Surface(36) = {35};
Line Loop(37) = {3, 24, -15, -23};
Plane Surface(38) = {37};
Line Loop(39) = {9, 26, 18, -23};
Plane Surface(40) = {39};
Line Loop(41) = {6, 25, 17, -26};
Plane Surface(42) = {41};
Line Loop(43) = {10, 25, -16, -24};
Plane Surface(44) = {43};
Transfinite Surface {28};
Transfinite Surface {30};
Transfinite Surface {32};
Transfinite Surface {34};
Transfinite Surface {36};
Transfinite Surface {38};
Transfinite Surface {40};
Transfinite Surface {42};
Transfinite Surface {44};
Recombine Surface {28};
Recombine Surface {30};
Recombine Surface {32};
Recombine Surface {34};
Recombine Surface {36};
Recombine Surface {38};
Recombine Surface {40};
Recombine Surface {42};
Recombine Surface {44}; Extrude {0, 0, 2} {
Surface{28, 30, 32, 34, 36, 40, 38, 44, 42};
Layers{1};
Recombine;
} Physical Surface("inlet") = {75};//inlet
Physical Surface("outlet") = {207};//outlet
Physical Surface("top") = {53, 141, 185};//top
Physical Surface("bottom") = {97, 149, 229};//bottom
Physical Surface("cylinderWalls_1") = {61, 83, 105, 127};//cylinderWalls_1
Physical Surface("cylinderWalls_2") = {193, 171, 237, 215};//cylinderWalls_2
Physical Surface("frontAndBack") = {66, 88, 110, 132, 154, 176, 198, 220, 242, 30, 32, 28, 34, 36, 40, 42, 44, 38};
//frontAndBack
Physical Volume("internal") = {1,2,3,4,5,6,7,8,9};//internal

P

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v3.0+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField
{
frontAndBack
{
type empty;
}
top
{
type zeroGradient;
}
cylinderWalls_1
{
type zeroGradient;
}
inlet
{
type zeroGradient;
}
bottom
{
type zeroGradient;
}
cylinderWalls_2
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
} // ************************************************************************* //

U

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v3.0+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField
{
frontAndBack
{
type empty;
}
top
{
type slip;
}
cylinderWalls_1
{
type fixedValue;
value uniform (0 0 0);
}
inlet
{
type fixedValue;
value uniform (1 0 0);
}
bottom
{
type slip;
}
cylinderWalls_2
{
type fixedValue;
value uniform (0 0 0);
}
outlet
{
type zeroGradient;
}
} // ************************************************************************* //

Boundary

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v3.0+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 7
(
frontAndBack
{
type empty;
inGroups 1(empty);
nFaces 28800;
startFace 28480;
}
top
{
type patch;
physicalType patch;
nFaces 120;
startFace 57280;
}
cylinderWalls_1
{
type patch;
physicalType patch;
nFaces 160;
startFace 57400;
}
inlet
{
type patch;
physicalType patch;
nFaces 40;
startFace 57560;
}
bottom
{
type patch;
physicalType patch;
nFaces 120;
startFace 57600;
}
cylinderWalls_2
{
type patch;
physicalType patch;
nFaces 160;
startFace 57720;
}
outlet
{
type patch;
physicalType patch;
nFaces 40;
startFace 57880;
}
) // ************************************************************************* //

controlDict

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v3.0+ |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application icoFoam; startFrom startTime; startTime 0; stopAt endTime; endTime 100; deltaT 0.005; writeControl timeStep; writeInterval 20; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; // ************************************************************************* //

结果展示:

Fg3 T = 0

Fg4 T = 40

Fg8 T = 200

Fg11 T = 600

Fg13 T = 725

OpenFOAM&Gmsh&CFD圆柱绕流(两个圆柱)的更多相关文章

  1. OpenFOAM——圆柱绕流对流换热

    本算例来自<ANSYS FLUENT技术基础与工程应用:流动传热与环境污染控制领域> TOP和DOWN为对称边界(symmetry),入口速度为0.01m/s,入口温度为300K,圆柱温度 ...

  2. ICEM-extrude功能画圆柱绕流网格【转载】

    转载自:http://blog.csdn.net/lgw19910426/article/details/26401517 首先画网格大体顺序为点-->线-->面-->单元体. 第一 ...

  3. ICEM—两孔圆柱

    ​原视频下载地址: https://pan.baidu.com/s/1eSJ7ciQ 密码: 1gj3

  4. 原生WebGL场景中绘制多个圆锥圆柱

    前几天解决了原生WebGL开发中的一个问题,就是在一个场景中绘制多个几何网格特征不同的模型,比如本文所做的绘制多个圆锥和圆柱在同一个场景中,今天抽空把解决的办法记录下来,同时也附上代码.首先声明,圆柱 ...

  5. 【CFD之道】2017年原创文章汇总

    1 Fluent案例(21篇) [Fluent案例]01 空气流经障碍物 [Fluent案例]02:Tesla阀 [Fluent案例]03:RAE2822翼型外流场计算 [Fluent案例]04:多孔 ...

  6. 【CFD之道】2018年原创文章汇总

    以下是公众号CFD之道2018年的全部原创文章,共计210篇. 1 Fluent验证案例[60篇] Fluent验证案例02:通过均匀热通量管道层流流动 Fluent验证案例03:管道中湍流流动压降计 ...

  7. OpenFOAM当中监测力和阻力系数

    首先准备好我们自己的平常算例文件,本次我们以圆柱绕流的算例来说明用法 我们找到constant文件夹 打开其中的transportProperties文件 我们将其中的: nu             ...

  8. 【小白的CFD之旅】24 稳态和瞬态

    小白最近在练习案例的时候,对稳态和瞬态的问题,产生了一些疑问.譬如说,为什么有的案例用稳态,而有的案例用瞬态?有时候相同的案例既可以用稳态也可以用瞬态,而有的案例却只能用瞬态计算?小白决定找小牛师兄问 ...

  9. OpenFOAM设置监测点(探针)

    首先准备好我们自己的平常算例文件,本次我们以圆柱绕流的算例来说明用法 然后我们在/opt/openfoam4/etc/caseDicts/postProcessing/probes文件夹下找到prob ...

随机推荐

  1. kd树和knn算法的c语言实现

    基于kd树的knn的实现原理可以参考文末的链接,都是一些好文章. 这里参考了别人的代码.用c语言写的包括kd树的构建与查找k近邻的程序. code: #include<stdio.h> # ...

  2. x01.TestViewContent: 插件测试

    开发神器 SharpDevelop 的插件系统,很有学习的必要. 1.首先在 github 上下载源代码,确保编译运行无误. 2.在 AddIns/Misc 下添加 SharpDevelop 插件项目 ...

  3. 排序算法----基数排序(RadixSort(L,max))单链表版本

    转载http://blog.csdn.net/Shayabean_/article/details/44885917博客 先说说基数排序的思想: 基数排序是非比较型的排序算法,其原理是将整数按位数切割 ...

  4. web前端(实习生)之“百度二面”

    2016.3.18,星期五.我经历了我的第一次面试. 在面完一面之后,面试官说“我对你的考核到这里结束了,我去看一下公司是决定现在就安排二面还是只有再做安排,你先在这里等一下.”我当时就蒙圈了:一是在 ...

  5. HDU 1564 Play a game(巴什博弈)

    New Year is Coming! ailyanlu is very happy today! and he is playing a chessboard game with 8600. The ...

  6. fail树

    前置技能:AC自动机 假设我们有了一个AC自动机,然后在上面进行字符串匹配. 上面是一个有四个字符串的AC自动机(abcde.aacdf.cdf.cde),虚线是fail指针,实线是转移. 这是上一次 ...

  7. Markdown的使用---现学现用

    Markdown 是一种轻量级的标记语言,它的的优点很多,在这就不重复说了,最吸引人的应该是它清新简洁的界面,并且语法简单易学.最为常用的语法不会很多,用多了便自然而然的记住了. 可选工具 网上说如果 ...

  8. git 修改最后一次提交的用户名 或者 commit的内容

    修改git最后一次提交的命令 $ git commit --amend 修改git最后一次提交用户名的相关命令 git config user.name 'wangz' git config user ...

  9. C#扩展方法

    扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法就相当于一个马甲,给一个现有类套上,就可以为这个类添加其他方法了. 马甲必须定义为stati ...

  10. Linux 基础操作

    根据关键字查找文件信息: cat <文件名> | grep <关键字>查询文件信息 显示100行: tail -100f easyhome.all.log |grep &quo ...