blockMesh-四分之一同心圆柱体网格

2021-03-03  本文已影响0人  charryzzz

最近需要仿真一个带有coflow的气固两相流射流火焰,其中气相采用DNS,如果进行完整计算域的CFD,网格量在千万级别,对初期的代码测试非常不友好,所以计划采用一个四分之一同心圆柱体加两个对称边界条件代替。Google了一下发现并没有现成的网格划分方案,就自己动手写了一个blockMeshDict,今天和大家分享一下。工作虽然难度不大,但是如果能帮到一些CFDer,还是可以节省不少时间。


网格划分方案.png

网格划分采用非常典型的圆柱网格划分方法,主射流入口(0-2-6-0)包括三个block,伴流(2-3-5-6)包括两个block,两个对称边界(13-3-0-10)和(10-0-5-15),侧边出口(13-3-5-15)。这里需要注意,因为圆弧的存在,edge必须用arc来定义,不然圆柱体就变三棱柱了。

arc的定义方法是三点确定一条圆弧,即

arc pointA pointB (x_pointC y_pointC z_pointC)

下面是具体的blockMeshDict文件

/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  v1912                                 |
|   \\  /    A nd           | Website:  www.openfoam.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

scale 0.001; //mm

vertices
(
  (0 0 0)   // vertex number 0
  (4 0 0)   // vertex number 1
  (10 0 0)  // vertex number 2
  (40 0 0)  // vertex number 3
  (28.284271247462 28.284271247462 0)   // vertex number 4
  (0 40 0)  // vertex number 5
  (0 10 0)  // vertex number 6
  (0 4 0)   // vertex number 7
  (3 3 0)   // vertex number 8
  (7.071067811865 7.071067811865 0) // vertex number 9

  (0 0 60)  // vertex number 0
  (4 0 60)  // vertex number 1
  (10 0 60) // vertex number 2
  (40 0 60) // vertex number 3
  (28.284271247462 28.284271247462 60)  // vertex number 4
  (0 40 60) // vertex number 5
  (0 10 60) // vertex number 6
  (0 4 60)  // vertex number 7
  (3 3 60)  // vertex number 8
  (7.071067811865 7.071067811865 60)    // vertex number 9
);

edges
(
  arc 2 9 (8.660254037844 5 0)
  arc 9 6 (5 8.660254037844 0)
  arc 4 5 (20 34.641016151378 0)
  arc 3 4 (34.641016151378 20 0)

  arc 12 19 (8.660254037844 5 60)
  arc 19 16 (5 8.660254037844 60)
  arc 14 15 (20 34.641016151378 60)
  arc 13 14 (34.641016151378 20 60)
);

blocks
(
// coarse mesh 0.4mm
  hex (0 1 8 7 10 11 18 17) (10 10 150) simpleGrading (1 1 1) // block 0
  hex (1 2 9 8 11 12 19 18) (15 10 150) simpleGrading (1 1 1) // block 1
  hex (8 9 6 7 18 19 16 17) (15 10 150) simpleGrading (1 1 1) // block 2
  hex (2 3 4 9 12 13 14 19) (50 10 150) simpleGrading (3 1 1) // block 3
  hex (9 4 5 6 19 14 15 16) (50 10 150) simpleGrading (3 1 1) // block 4
);


boundary
(
  Particleinlet
  {
    type patch;
    faces
    (
     (0 1 8 7)
     (1 2 9 8)
     (8 9 6 7)
    );
  }

 Symmetry1
  {
    type symmetryPlane;
    faces
    (
     (0 10 11 1)
     (1 11 12 2)
     (2 12 13 3)
    );
  }

  Symmetry2
  {
    type symmetryPlane;
    faces
    (
     (10 0 7 17)
     (17 7 6 16)
     (16 6 5 15)
    );
  }
   
  Coflowinlet
  {
    type patch;
    faces
    (
     (2 3 4 9)
     (9 4 5 6)
    );
  }

  TopOutlet
  {
    type patch;
    faces
    (
     (10 11 18 17)
     (11 12 19 18)
     (18 19 16 17)
     (12 13 14 19)
     (19 14 15 16)
    );
  }

  SideOutlet
  {
    type patch;
    faces
    (
     (13 3 4 14)
     (14 4 5 15)
    );
  }
  
);

mergePatchPairs
(
);

// ************************************************************************* //

以下是成品图片


Mesh

现在的网格分辨率大概是0.4mm,远远达不到DNS的标准,但是网格数量已经有21万,计算起来还是比较吃力的。小编正在考虑用楔形切片网格加wedge性边界在保证网格精度的情况下,进一步减小网格量

上一篇下一篇

猜你喜欢

热点阅读