|
[Sponsors] | |||||
|
|
|
#1 |
|
Member
Join Date: Nov 2014
Posts: 88
Rep Power: 13 ![]() |
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
|
|
|
|
|
|
|
|
|
#2 |
|
Senior Member
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 23 ![]() |
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!
|
|
|
|
|
|
|
|
|
#3 | |
|
Member
Join Date: Nov 2014
Posts: 88
Rep Power: 13 ![]() |
Quote:
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. |
||
|
|
|
||
|
|
|
#4 |
|
Senior Member
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 23 ![]() |
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!
|
|
|
|
|
|
|
|
|
#5 | |
|
Member
Join Date: Nov 2014
Posts: 88
Rep Power: 13 ![]() |
Quote:
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
|
||
|
|
|
||
|
|
|
#6 |
|
Senior Member
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 23 ![]() |
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!
|
|
|
|
|
|
|
|
|
#7 | |
|
Member
Join Date: Nov 2014
Posts: 88
Rep Power: 13 ![]() |
Quote:
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
);
// ************************************************************************* //
|
||
|
|
|
||
|
|
|
#8 |
|
Senior Member
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 23 ![]() |
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
);
// ************************************************************************* //
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!
|
|
|
|
|
|
|
|
|
#9 | |
|
Member
Join Date: Nov 2014
Posts: 88
Rep Power: 13 ![]() |
Quote:
|
||
|
|
|
||
|
|
|
#10 |
|
New Member
Kevin Habrock
Join Date: Oct 2018
Posts: 22
Rep Power: 9 ![]() |
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 |
|
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
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 08:10 |
| solidDisplacementFoam - cylinder with heated hollow | glupieri | OpenFOAM Verification & Validation | 3 | May 22, 2017 15:03 |
| FloTHERM hollow cylinder model | nirmal_singh | FloEFD, FloWorks & FloTHERM | 4 | November 1, 2015 19:55 |
| [ANSYS Meshing] Regarding 3-D meshing of hollow cylinder | Thermal_engg | ANSYS Meshing & Geometry | 11 | July 6, 2013 01:22 |
| Axisymmetric Flow around a hollow cylinder with an extended flair | JLight | OpenFOAM | 5 | January 28, 2013 13:11 |