CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Meshing & Mesh Conversion

[blockMesh] checkMesh for a Hollow Cylinder

Register Blogs Community New Posts Updated Threads Search

Like Tree2Likes
  • 1 Post By zfaraday
  • 1 Post By Kevin.H

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 12, 2014, 17:03
Default checkMesh for a Hollow Cylinder
  #1
Member
 
Join Date: Nov 2014
Posts: 88
Rep Power: 11
hwsv07 is on a distinguished road
ok I am rather new to CFD and to OF as well. So please kindly be patient and forgiving.

I am now attempting a simple flow analysis to get myself started. And I have a problem understand where I have checkMesh errors.

The case is a simple hollow cylinder. I need to create a mesh to represent the hollow cylinder. I used blockMesh to do this.

Each block must be 8 vertices ; i have a hollow part ; so I need to have to have at least 2 blocks. When I was doing this, I used 4 blocks. These 4 blocks were
in the form of 4 quadrants starting anticlock from 3 o'clock (see figure cfdonline.jpg).

I defined each of the 4 blocks starting from the inner point outwards.

Since it is a enclosed cylinder, I have merge the facing pairs of each quadrant using mergePatchPairs in blockMeshDict. And this I what I have previewed using paraview. Looks ok.


However, checkMesh tells me I have negative volume and I do not understand since the preview in paraview looks ok. cyl.jpg


That being said, running the solver also does not work, as it crashed out immediately. I assume it is the problem with the mesh.

Here is the checkMesh message.

Code:
Mesh stats
    points:           968
    internal points:  0
    faces:            1680
    internal faces:   720
    cells:            400
    faces per cell:   6
    boundary patches: 5
    point zones:      1
    face zones:       3
    cell zones:       0

Overall number of cells of each type:
    hexahedra:     400
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:     0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
   *Number of regions: 4
    The mesh has multiple regions which are not connected by any face.
  <<Writing region information to "0/cellToRegion"
  <<Writing region 0 with 100 cells to cellSet region0
  <<Writing region 1 with 100 cells to cellSet region1
  <<Writing region 2 with 100 cells to cellSet region2
  <<Writing region 3 with 100 cells to cellSet region3

Checking patch topology for multiply connected surfaces...
    Patch               Faces    Points   Surface topology                  
    inlet               400      484      ok (non-closed singly connected)  
    outlet              400      484      ok (non-closed singly connected)  
    sideProfile         80       176      ok (non-closed singly connected)  
    masterpatch         40       88       ok (non-closed singly connected)  
    slavepatch          40       88       ok (non-closed singly connected)  

Checking geometry...
    Overall domain bounding box (0 0 0) (12 12 10)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (3.8204e-17 -4.44232e-18 2.22119e-18) OK.
 ***High aspect ratio cells found, Max aspect ratio: 6.04165e+200, number of cells 200
  <<Writing 200 cells with high aspect ratio to set highAspectRatioCells
    Minimum face area = 0.146461. Maximum face area = 9.41509.  Face area magnitudes OK.
 ***Zero or negative cell volume detected.  Minimum negative volume: -3.18931, Number of negative volume cells: 200
  <<Writing 200 zero volume cells to set zeroVolumeCells
    Mesh non-orthogonality Max: 180 average: 90
 ***Number of non-orthogonality errors: 360.
  <<Writing 360 non-orthogonal faces to set nonOrthoFaces
 ***Error in face pyramids: 1200 faces are incorrectly oriented.
  <<Writing 840 faces with incorrect orientation to set wrongOrientedFaces
    Max skewness = 0.187165 OK.
    Coupled point location match (average 0) OK.

Failed 4 mesh checks.

End
This thing sounds really straightforward to me. But I have some much difficulty on this. so really appreciate anyone's wise comments.
hwsv07 is offline   Reply With Quote

Old   November 13, 2014, 07:41
Default
  #2
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
Whenever you get checkMesh errors you can see where the errors are by checking the directory sets that is created within the case directory after runing checkMesh. You can see these errors in paraview so that is easier to find where you did something wrong. However I guess that the problem is wrong orientation of the blocks or patches in the blockMeshDict file....

Regards,

Alex
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   November 13, 2014, 07:58
Default
  #3
Member
 
Join Date: Nov 2014
Posts: 88
Rep Power: 11
hwsv07 is on a distinguished road
Quote:
Originally Posted by zfaraday View Post
Whenever you get checkMesh errors you can see where the errors are by checking the directory sets that is created within the case directory after runing checkMesh. You can see these errors in paraview so that is easier to find where you did something wrong. However I guess that the problem is wrong orientation of the blocks or patches in the blockMeshDict file....

Regards,

Alex
thanks for the reply.

In the definition of the Blocks e.g. (0 1 2 3 4 5 6 7), must 1 and 2 be defined in the positive x1 and x2 direction or can it be negative x1 and x2 direction? Im suspecting this could be the problem.

I couldnt find the answer to my question in the manual. so thats why I am asking here.
hwsv07 is offline   Reply With Quote

Old   November 13, 2014, 08:19
Default
  #4
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
It's not a matter of defining all the points in the positive direction of the axes, but it's a matter of the point order in the block/patch definition. Maybe you haven't paid enough attention to this section of the manual...
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   November 13, 2014, 08:56
Default
  #5
Member
 
Join Date: Nov 2014
Posts: 88
Rep Power: 11
hwsv07 is on a distinguished road
Quote:
Originally Posted by zfaraday View Post
It's not a matter of defining all the points in the positive direction of the axes, but it's a matter of the point order in the block/patch definition. Maybe you haven't paid enough attention to this section of the manual...
I understood what you meant. of course, i have defined it correctly, otherwise I would not be able to see my block in paraview.

Im asking this question cos I realised defining my 2nd quadrant in the negative x1 and x2 direction gives a different error message.

However, now I have rebuilt my BlockMeshDict using just 2 blocks - top and bottom half. Also, I used the same defined vertices to define both block for the common points. so I did not have to define common faces in mergePatchPairs.

Weirdly, there are still error messages in checkMesh, but only 1 Mesh has failed, which I cannot understand why.

Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
    points:           1760
    internal points:  0
    faces:            3280
    internal faces:   1520
    cells:            800
    faces per cell:   6
    boundary patches: 1
    point zones:      0
    face zones:       0
    cell zones:       0

Overall number of cells of each type:
    hexahedra:     800
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:     0

Checking topology...
    Boundary definition OK.
 ***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces...
    Patch               Faces    Points   Surface topology                  
    defaultFaces        1760     1760     ok (closed singly connected)      

Checking geometry...
    Overall domain bounding box (-5 -5 0) (5 5 1)
    Mesh (non-empty, non-wedge) directions (0 0 0)
    Mesh (non-empty) directions (0 0 0)
 ***Number of edges not aligned with or perpendicular to non-empty directions: 3370
  <<Writing 1760 points on non-aligned edges to set nonAlignedEdges
    Boundary openness (-1.22808e-17 -1.40352e-17 1.69592e-17) OK.
    Max cell openness = 3.0479e-16 OK.
    Max aspect ratio = -1 OK.
    Minimum face area = 0.0170746. Maximum face area = 0.52336.  Face area magnitudes OK.
    Min volume = 0.0170746. Max volume = 0.226217.  Total volume = 77.6592.  Cell volumes OK.
    Mesh non-orthogonality Max: 8.95528 average: 0.822375
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 0.586957 OK.
    Coupled point location match (average 0) OK.

Failed 1 mesh checks.

End
hwsv07 is offline   Reply With Quote

Old   November 13, 2014, 09:20
Default
  #6
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
You can check the fail with paraview opening the set nonAlignedEdges. Why don't you upload your blockMeshDict file so that someone can check your process?
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   November 13, 2014, 09:54
Default
  #7
Member
 
Join Date: Nov 2014
Posts: 88
Rep Power: 11
hwsv07 is on a distinguished road
Quote:
Originally Posted by zfaraday View Post
You can check the fail with paraview opening the set nonAlignedEdges. Why don't you upload your blockMeshDict file so that someone can check your process?
thank you very much.

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

convertToMeters 1;

vertices
(
(-5.000000 -0.000000 0.000000) // v0
(-2.500000 -4.330127 0.000000) // v1
(0.000000 -5.000000 0.000000) // v2
(2.500000 -4.330127 0.000000) // v3
(5.000000 -0.000000 0.000000) // v4
(2.500000 4.330127 0.000000) // v5
(0.000000 5.000000 0.000000) // v6
(-2.500000 4.330127 0.000000) // v7
(-0.500000 -0.000000 0.000000) // v8
(-0.250000 -0.433013 0.000000) // v9
(0.000000 -0.500000 0.000000) // v10
(0.250000 -0.433013 0.000000) // v11
(0.500000 -0.000000 0.000000) // v12
(0.250000 0.433013 0.000000) // v13
(0.000000 0.500000 0.000000) // v14
(-0.250000 0.433013 0.000000) // v15
(-5.000000 -0.000000 1.000000) // v16
(-2.500000 -4.330127 1.000000) // v17
(0.000000 -5.000000 1.000000) // v18
(2.500000 -4.330127 1.000000) // v19
(5.000000 -0.000000 1.000000) // v20
(2.500000 4.330127 1.000000) // v21
(0.000000 5.000000 1.000000) // v22
(-2.500000 4.330127 1.000000) // v23
(-0.500000 -0.000000 1.000000) // v24
(-0.250000 -0.433013 1.000000) // v25
(0.000000 -0.500000 1.000000) // v26
(0.250000 -0.433013 1.000000) // v27
(0.500000 -0.000000 1.000000) // v28
(0.250000 0.433013 1.000000) // v29
(0.000000 0.500000 1.000000) // v30
(-0.250000 0.433013 1.000000) // v31
);

blocks
(
hex (1 9 8 0 17 25 24 16) (10 10 1) simpleGrading (1 1 1)
hex (1 2 10 9 17 18 26 25) (10 10 1) simpleGrading (1 1 1)
hex (2 3 11 10 18 19 27 26) (10 10 1) simpleGrading (1 1 1)
hex (11 3 4 12 27 19 20 28) (10 10 1) simpleGrading (1 1 1)
hex (12 4 5 13 28 20 21 29) (10 10 1) simpleGrading (1 1 1)
hex (14 13 5 6 30 29 21 22) (10 10 1) simpleGrading (1 1 1)
hex (15 14 6 7 31 30 22 23) (10 10 1) simpleGrading (1 1 1)
hex (0 8 15 7 16 24 31 23) (10 10 1) simpleGrading (1 1 1)
);

edges
(
arc 0 1 (-3.750000 -3.307189 0.000000) // c0
arc 1 2 (-1.250000 -4.841229 0.000000) // c1
arc 2 3 (1.250000 -4.841229 0.000000) // c2
arc 3 4 (3.750000 -3.307189 0.000000) // c3
arc 4 5 (3.750000 3.307189 0.000000) // c4
arc 5 6 (1.250000 4.841229 0.000000) // c5
arc 6 7 (-1.250000 4.841229 0.000000) // c6
arc 7 0 (-3.750000 3.307189 0.000000) // c7
arc 8 9 (-0.375000 -0.330719 0.000000) // c8
arc 9 10 (-0.125000 -0.484123 0.000000) // c9
arc 10 11 (0.125000 -0.484123 0.000000) // c10
arc 11 12 (0.375000 -0.330719 0.000000) // c11
arc 12 13 (0.375000 0.330719 0.000000) // c12
arc 13 14 (0.125000 0.484123 0.000000) // c13
arc 14 15 (-0.125000 0.484123 0.000000) // c14
arc 15 0 (-0.375000 0.330719 0.000000) // c15
arc 16 17 (-3.750000 -3.307189 1.000000) // c16
arc 17 18 (-1.250000 -4.841229 1.000000) // c17
arc 18 19 (1.250000 -4.841229 1.000000) // c18
arc 19 20 (3.750000 -3.307189 1.000000) // c19
arc 20 21 (3.750000 3.307189 1.000000) // c20
arc 21 22 (1.250000 4.841229 1.000000) // c21
arc 22 23 (-1.250000 4.841229 1.000000) // c22
arc 23 16 (-3.750000 3.307189 1.000000) // c23
arc 24 25 (-0.375000 -0.330719 1.000000) // c24
arc 25 26 (-0.125000 -0.484123 1.000000) // c25
arc 26 27 (0.125000 -0.484123 1.000000) // c26
arc 27 28 (0.375000 -0.330719 1.000000) // c27
arc 28 29 (0.375000 0.330719 1.000000) // c28
arc 29 30 (0.125000 0.484123 1.000000) // c29
arc 30 31 (-0.125000 0.484123 1.000000) // c30
arc 31 24 (-0.375000 0.330719 1.000000) // c31
);

boundary // patches
(
);

mergePatchPairs
(
	//( masterpatch slavepatch ) // define connecting faces
);

// ************************************************************************* //
hwsv07 is offline   Reply With Quote

Old   November 13, 2014, 13:13
Default
  #8
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
The error shown by checkMesh only means that you forgot to define the boundary faces in your blockMeshDict file. By the way, two questions.

First one, you forgot to define one of the arcs, well actually you have defined it in a wrong way. This is the arc going from point 15 to point 8 that you have defined it from 15 to 0.

Second question, why are you using such an amount of blocks to create a cylinder? You can do it with less blocks. Look at your blockMeshDict modified to create your cylinder with the half of the blocks you used:


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

convertToMeters 0.1;

vertices
(
(-5.000000 -0.000000 0.000000) // v0
(-2.500000 -4.330127 0.000000) // v1
(0.000000 -5.000000 0.000000) // v2
(2.500000 -4.330127 0.000000) // v3
(5.000000 -0.000000 0.000000) // v4
(2.500000 4.330127 0.000000) // v5
(0.000000 5.000000 0.000000) // v6
(-2.500000 4.330127 0.000000) // v7
(-0.500000 -0.000000 0.000000) // v8
(-0.250000 -0.433013 0.000000) // v9
(0.000000 -0.500000 0.000000) // v10
(0.250000 -0.433013 0.000000) // v11
(0.500000 -0.000000 0.000000) // v12
(0.250000 0.433013 0.000000) // v13
(0.000000 0.500000 0.000000) // v14
(-0.250000 0.433013 0.000000) // v15
(-5.000000 -0.000000 1.000000) // v16
(-2.500000 -4.330127 1.000000) // v17
(0.000000 -5.000000 1.000000) // v18
(2.500000 -4.330127 1.000000) // v19
(5.000000 -0.000000 1.000000) // v20
(2.500000 4.330127 1.000000) // v21
(0.000000 5.000000 1.000000) // v22
(-2.500000 4.330127 1.000000) // v23
(-0.500000 -0.000000 1.000000) // v24
(-0.250000 -0.433013 1.000000) // v25
(0.000000 -0.500000 1.000000) // v26
(0.250000 -0.433013 1.000000) // v27
(0.500000 -0.000000 1.000000) // v28
(0.250000 0.433013 1.000000) // v29
(0.000000 0.500000 1.000000) // v30
(-0.250000 0.433013 1.000000) // v31
);

blocks
(
hex (2 10 8 0 18 26 24 16) (10 10 1) simpleGrading (1 1 1)
//hex (1 2 10 9 17 18 26 25) (10 10 1) simpleGrading (1 1 1)
hex (2 4 12 10 18 20 28 26) (10 10 1) simpleGrading (1 1 1)
//hex (11 3 4 12 27 19 20 28) (10 10 1) simpleGrading (1 1 1)
hex (12 4 6 14 28 20 22 30) (10 10 1) simpleGrading (1 1 1)
//hex (14 13 5 6 30 29 21 22) (10 10 1) simpleGrading (1 1 1)
//hex (15 14 6 7 31 30 22 23) (10 10 1) simpleGrading (1 1 1)
hex (0 8 14 6 16 24 30 22) (10 10 1) simpleGrading (1 1 1)
);

edges
(
arc 0 2 (-3.750000 -3.307189 0.000000) // c0
//arc 1 2 (-1.250000 -4.841229 0.000000) // c1
arc 2 4 (1.250000 -4.841229 0.000000) // c2
//arc 3 4 (3.750000 -3.307189 0.000000) // c3
arc 4 6 (3.750000 3.307189 0.000000) // c4
//arc 5 6 (1.250000 4.841229 0.000000) // c5
arc 6 0 (-1.250000 4.841229 0.000000) // c6
//arc 7 0 (-3.750000 3.307189 0.000000) // c7
arc 8 10 (-0.375000 -0.330719 0.000000) // c8
//arc 9 10 (-0.125000 -0.484123 0.000000) // c9
arc 10 12 (0.125000 -0.484123 0.000000) // c10
//arc 11 12 (0.375000 -0.330719 0.000000) // c11
arc 12 14 (0.375000 0.330719 0.000000) // c12
//arc 13 14 (0.125000 0.484123 0.000000) // c13
arc 14 8 (-0.125000 0.484123 0.000000) // c14
//arc 15 8 (-0.375000 0.330719 0.000000) // c15 0->8
arc 16 18 (-3.750000 -3.307189 1.000000) // c16
//arc 17 18 (-1.250000 -4.841229 1.000000) // c17
arc 18 20 (1.250000 -4.841229 1.000000) // c18
//arc 19 20 (3.750000 -3.307189 1.000000) // c19
arc 20 22 (3.750000 3.307189 1.000000) // c20
//arc 21 22 (1.250000 4.841229 1.000000) // c21
arc 22 16 (-1.250000 4.841229 1.000000) // c22
//arc 23 16 (-3.750000 3.307189 1.000000) // c23
arc 24 26 (-0.375000 -0.330719 1.000000) // c24
//arc 25 26 (-0.125000 -0.484123 1.000000) // c25
arc 26 28 (0.125000 -0.484123 1.000000) // c26
//arc 27 28 (0.375000 -0.330719 1.000000) // c27
arc 28 30 (0.375000 0.330719 1.000000) // c28
//arc 29 30 (0.125000 0.484123 1.000000) // c29
arc 30 24 (-0.125000 0.484123 1.000000) // c30
//arc 31 24 (-0.375000 0.330719 1.000000) // c31
);

boundary // patches
(
    out
    {
        type wall;
        faces
        (
            (0 2 18 16)
            (2 4 20 18)
            (4 6 22 20)
            (6 0 16 22)
        );
    }
    in
    {
        type wall;
        faces
        (
            (10 8 24 26)
            (12 10 26 28)
            (14 12 28 30)
            (8 14 30 24)
        );
    }
);

mergePatchPairs
(
	//( masterpatch slavepatch ) // define connecting faces
);

// ************************************************************************* //
Try to use this file and you will get no errors!

Regards,

Alex
binyang likes this.
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   November 13, 2014, 13:40
Default
  #9
Member
 
Join Date: Nov 2014
Posts: 88
Rep Power: 11
hwsv07 is on a distinguished road
Quote:
Originally Posted by zfaraday View Post
The error shown by checkMesh only means that you forgot to define the boundary faces in your blockMeshDict file. By the way, two questions.

First one, you forgot to define one of the arcs, well actually you have defined it in a wrong way. This is the arc going from point 15 to point 8 that you have defined it from 15 to 0.

Second question, why are you using such an amount of blocks to create a cylinder? You can do it with less blocks. Look at your blockMeshDict modified to create your cylinder with the half of the blocks you used:


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

convertToMeters 0.1;

vertices
(
(-5.000000 -0.000000 0.000000) // v0
(-2.500000 -4.330127 0.000000) // v1
(0.000000 -5.000000 0.000000) // v2
(2.500000 -4.330127 0.000000) // v3
(5.000000 -0.000000 0.000000) // v4
(2.500000 4.330127 0.000000) // v5
(0.000000 5.000000 0.000000) // v6
(-2.500000 4.330127 0.000000) // v7
(-0.500000 -0.000000 0.000000) // v8
(-0.250000 -0.433013 0.000000) // v9
(0.000000 -0.500000 0.000000) // v10
(0.250000 -0.433013 0.000000) // v11
(0.500000 -0.000000 0.000000) // v12
(0.250000 0.433013 0.000000) // v13
(0.000000 0.500000 0.000000) // v14
(-0.250000 0.433013 0.000000) // v15
(-5.000000 -0.000000 1.000000) // v16
(-2.500000 -4.330127 1.000000) // v17
(0.000000 -5.000000 1.000000) // v18
(2.500000 -4.330127 1.000000) // v19
(5.000000 -0.000000 1.000000) // v20
(2.500000 4.330127 1.000000) // v21
(0.000000 5.000000 1.000000) // v22
(-2.500000 4.330127 1.000000) // v23
(-0.500000 -0.000000 1.000000) // v24
(-0.250000 -0.433013 1.000000) // v25
(0.000000 -0.500000 1.000000) // v26
(0.250000 -0.433013 1.000000) // v27
(0.500000 -0.000000 1.000000) // v28
(0.250000 0.433013 1.000000) // v29
(0.000000 0.500000 1.000000) // v30
(-0.250000 0.433013 1.000000) // v31
);

blocks
(
hex (2 10 8 0 18 26 24 16) (10 10 1) simpleGrading (1 1 1)
//hex (1 2 10 9 17 18 26 25) (10 10 1) simpleGrading (1 1 1)
hex (2 4 12 10 18 20 28 26) (10 10 1) simpleGrading (1 1 1)
//hex (11 3 4 12 27 19 20 28) (10 10 1) simpleGrading (1 1 1)
hex (12 4 6 14 28 20 22 30) (10 10 1) simpleGrading (1 1 1)
//hex (14 13 5 6 30 29 21 22) (10 10 1) simpleGrading (1 1 1)
//hex (15 14 6 7 31 30 22 23) (10 10 1) simpleGrading (1 1 1)
hex (0 8 14 6 16 24 30 22) (10 10 1) simpleGrading (1 1 1)
);

edges
(
arc 0 2 (-3.750000 -3.307189 0.000000) // c0
//arc 1 2 (-1.250000 -4.841229 0.000000) // c1
arc 2 4 (1.250000 -4.841229 0.000000) // c2
//arc 3 4 (3.750000 -3.307189 0.000000) // c3
arc 4 6 (3.750000 3.307189 0.000000) // c4
//arc 5 6 (1.250000 4.841229 0.000000) // c5
arc 6 0 (-1.250000 4.841229 0.000000) // c6
//arc 7 0 (-3.750000 3.307189 0.000000) // c7
arc 8 10 (-0.375000 -0.330719 0.000000) // c8
//arc 9 10 (-0.125000 -0.484123 0.000000) // c9
arc 10 12 (0.125000 -0.484123 0.000000) // c10
//arc 11 12 (0.375000 -0.330719 0.000000) // c11
arc 12 14 (0.375000 0.330719 0.000000) // c12
//arc 13 14 (0.125000 0.484123 0.000000) // c13
arc 14 8 (-0.125000 0.484123 0.000000) // c14
//arc 15 8 (-0.375000 0.330719 0.000000) // c15 0->8
arc 16 18 (-3.750000 -3.307189 1.000000) // c16
//arc 17 18 (-1.250000 -4.841229 1.000000) // c17
arc 18 20 (1.250000 -4.841229 1.000000) // c18
//arc 19 20 (3.750000 -3.307189 1.000000) // c19
arc 20 22 (3.750000 3.307189 1.000000) // c20
//arc 21 22 (1.250000 4.841229 1.000000) // c21
arc 22 16 (-1.250000 4.841229 1.000000) // c22
//arc 23 16 (-3.750000 3.307189 1.000000) // c23
arc 24 26 (-0.375000 -0.330719 1.000000) // c24
//arc 25 26 (-0.125000 -0.484123 1.000000) // c25
arc 26 28 (0.125000 -0.484123 1.000000) // c26
//arc 27 28 (0.375000 -0.330719 1.000000) // c27
arc 28 30 (0.375000 0.330719 1.000000) // c28
//arc 29 30 (0.125000 0.484123 1.000000) // c29
arc 30 24 (-0.125000 0.484123 1.000000) // c30
//arc 31 24 (-0.375000 0.330719 1.000000) // c31
);

boundary // patches
(
    out
    {
        type wall;
        faces
        (
            (0 2 18 16)
            (2 4 20 18)
            (4 6 22 20)
            (6 0 16 22)
        );
    }
    in
    {
        type wall;
        faces
        (
            (10 8 24 26)
            (12 10 26 28)
            (14 12 28 30)
            (8 14 30 24)
        );
    }
);

mergePatchPairs
(
	//( masterpatch slavepatch ) // define connecting faces
);

// ************************************************************************* //
Try to use this file and you will get no errors!

Regards,

Alex
thanks! im curious. what is the 'smart' way to quickly determine the vertices order in order to define a block?
hwsv07 is offline   Reply With Quote

Old   November 22, 2018, 07:59
Default
  #10
New Member
 
Kevin Habrock
Join Date: Oct 2018
Posts: 22
Rep Power: 7
Kevin.H is on a distinguished road
Hello
based on this link (https://www.ehsanmadadi.com/cylinder-mesh/) I created a hollow cylinder as .m4 file for my project. Maybe someone can use it for other tasks.
To use the file you only have to change the extension .txt to .m4.
Best regards
Kevin
Attached Files
File Type: txt blockMeshDict.txt (5.6 KB, 69 views)
sourav90 likes this.
Kevin.H is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
[snappyHexMesh] Create Cylinder (HOLLOW NO MESH OR CAVITY) inside a Cuboid saddy OpenFOAM Meshing & Mesh Conversion 5 August 8, 2023 07:10
solidDisplacementFoam - cylinder with heated hollow glupieri OpenFOAM Verification & Validation 3 May 22, 2017 14:03
FloTHERM hollow cylinder model nirmal_singh FloEFD, FloWorks & FloTHERM 4 November 1, 2015 18:55
[ANSYS Meshing] Regarding 3-D meshing of hollow cylinder Thermal_engg ANSYS Meshing & Geometry 11 July 6, 2013 00:22
Axisymmetric Flow around a hollow cylinder with an extended flair JLight OpenFOAM 5 January 28, 2013 12:11


All times are GMT -4. The time now is 14:25.