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

[Other] Non-orthogonality and face pyramids error

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 9, 2015, 16:15
Unhappy Non-orthogonality and face pyramids error
  #1
New Member
 
Jess
Join Date: Aug 2015
Posts: 9
Rep Power: 11
jessicabp is on a distinguished road
Hello. I am trying to simulate a 3D platform on OpenFOAM, but as I am not really familiar with the software yet I decided to start with simpler simulations. Right now I am only simulating a squared pillar in the middle of the domain (height is 50m). It should be really simple, but I am getting the following errors when I check my mesh:

***Zero or negative cell volume detected. Minimum negative volume: -1, Number of negative volume cells: 1000000
<<Writing 1000000 zero volume cells to set zeroVolumeCells
Mesh non-orthogonality Max: 180 average: 180
***Number of non-orthogonality errors: 2960000.
<<Writing 2960000 non-orthogonal faces to set nonOrthoFaces
***Error in face pyramids: 6000000 faces are incorrectly oriented.
<<Writing 3040000 faces with incorrect orientation to set wrongOrientedFaces
Max skewness = 0 OK.
Coupled point location match (average 0) OK.


I checked every single point, face, patch and block on my blockMeshDict file and yet I cannot find anything that justifies this. Do you guys have any idea of what it can be? I am running out of time and this is being really stressful. My blockMesh informations are above:

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

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

convertToMeters 1;

vertices
(
(0 0 0) //0
(50 0 0) //1
(100 0 0) //2
(150 0 0) //3
(0 0 50) //4
(50 0 50) //5
(100 0 50) //6
(150 0 50) //7
(0 0 100) //8
(50 0 100) //9
(100 0 100) //10
(150 0 100) //11

(0 0 150) //12
(50 0 150) //13
(100 0 150) //14
(150 0 150) //15
(0 50 0) //16
(50 50 0) //17
(100 50 0) //18
(150 50 0) //19
(0 50 50) //20
(50 50 50) //21
(100 50 50) //22
(150 50 50) //23

(0 50 100) //24
(50 50 100) //25
(100 50 100) //26
(150 50 100) //27
(0 50 150) //28
(50 50 150) //29
(100 50 150) //30
(150 50 150) //31


);

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

);

edges
(
);

boundary
(
inlet
{
type patch;
faces
(
(4 0 16 20)
(8 4 20 24)
(12 8 24 28)

);
}

outlet
{
type patch;
faces
(
(3 7 23 19)
(7 11 27 23)
(11 15 31 27)

);
}

bottom
{
type wall;
faces
(
(0 1 5 4 )
(1 2 6 5)
(2 3 7 6)
(4 5 9 8)
(6 7 11 10)
(8 9 13 12)
(9 10 14 13)
(10 11 15 14)

);
}

atmosphere
{
type patch;
faces
(
(16 17 21 20)
(17 18 22 21)
(18 19 23 22)
(20 21 25 24)
(22 23 27 26)
(24 25 29 28)
(25 26 30 29)
(26 27 31 30)


);
}

frontAndBack
{
type empty;
faces
(
(0 1 17 16)
(1 2 18 17)
(2 3 19 18)
(13 12 28 29)
(14 13 29 30)
(15 14 30 31)


);
}

);

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

Thank you.
jessicabp is offline   Reply With Quote

Old   September 9, 2015, 17:06
Default
  #2
Member
 
VA
Join Date: Mar 2015
Location: ON, Canada
Posts: 30
Rep Power: 11
vabishek is on a distinguished road
Quote:
Originally Posted by jessicabp View Post
Hello. I am trying to simulate a 3D platform on OpenFOAM, but as I am not really familiar with the software yet I decided to start with simpler simulations. Right now I am only simulating a squared pillar in the middle of the domain (height is 50m). It should be really simple, but I am getting the following errors when I check my mesh:

***Zero or negative cell volume detected. Minimum negative volume: -1, Number of negative volume cells: 1000000
<<Writing 1000000 zero volume cells to set zeroVolumeCells
Mesh non-orthogonality Max: 180 average: 180
***Number of non-orthogonality errors: 2960000.
<<Writing 2960000 non-orthogonal faces to set nonOrthoFaces
***Error in face pyramids: 6000000 faces are incorrectly oriented.
<<Writing 3040000 faces with incorrect orientation to set wrongOrientedFaces
Max skewness = 0 OK.
Coupled point location match (average 0) OK.


I checked every single point, face, patch and block on my blockMeshDict file and yet I cannot find anything that justifies this. Do you guys have any idea of what it can be? I am running out of time and this is being really stressful. My blockMesh informations are above:

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

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

convertToMeters 1;

vertices
(
(0 0 0) //0
(50 0 0) //1
(100 0 0) //2
(150 0 0) //3
(0 0 50) //4
(50 0 50) //5
(100 0 50) //6
(150 0 50) //7
(0 0 100) //8
(50 0 100) //9
(100 0 100) //10
(150 0 100) //11

(0 0 150) //12
(50 0 150) //13
(100 0 150) //14
(150 0 150) //15
(0 50 0) //16
(50 50 0) //17
(100 50 0) //18
(150 50 0) //19
(0 50 50) //20
(50 50 50) //21
(100 50 50) //22
(150 50 50) //23

(0 50 100) //24
(50 50 100) //25
(100 50 100) //26
(150 50 100) //27
(0 50 150) //28
(50 50 150) //29
(100 50 150) //30
(150 50 150) //31


);

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

);

edges
(
);

boundary
(
inlet
{
type patch;
faces
(
(4 0 16 20)
(8 4 20 24)
(12 8 24 28)

);
}

outlet
{
type patch;
faces
(
(3 7 23 19)
(7 11 27 23)
(11 15 31 27)

);
}

bottom
{
type wall;
faces
(
(0 1 5 4 )
(1 2 6 5)
(2 3 7 6)
(4 5 9 8)
(6 7 11 10)
(8 9 13 12)
(9 10 14 13)
(10 11 15 14)

);
}

atmosphere
{
type patch;
faces
(
(16 17 21 20)
(17 18 22 21)
(18 19 23 22)
(20 21 25 24)
(22 23 27 26)
(24 25 29 28)
(25 26 30 29)
(26 27 31 30)


);
}

frontAndBack
{
type empty;
faces
(
(0 1 17 16)
(1 2 18 17)
(2 3 19 18)
(13 12 28 29)
(14 13 29 30)
(15 14 30 31)


);
}

);

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

Thank you.
Hello Jess,

The issue lies with your definition of blocks in blockMeshDict file. A mesh non-orthogonality value of 180 tells you the ordering of points are reversed. It is important to remember that each block in OF has a local-coordinate system that must be right-handed. So, the order in which you pick your coordinates while defining a block matters. I suggest you carefully read through chapter 5 (I think) of the OpenFOAM user guide. I just did a quick fix of the block ordering for your case and it seems to work:

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

);


Hope that helps!

Abishek

PS: I would suggest installing pyFoam utilities when you are getting started with OpenFOAM.The pyFoamDisplayBlockMesh.py (lets you view the coordinates, blocks and patches) script really helped me in making sure I was defining my geometry correctly.
vabishek is offline   Reply With Quote

Old   September 10, 2015, 13:12
Red face
  #3
New Member
 
Jess
Join Date: Aug 2015
Posts: 9
Rep Power: 11
jessicabp is on a distinguished road
Hi Abishek! Thank you so much for your help and your advice, it was very useful for me! I read that chapter but as I'm dealing with more blocks it can get confusing. Thanks again.
jessicabp is offline   Reply With Quote

Reply

Tags
mesh 3d, negative volume cell, openfoam, orthogonality, pyramids


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] Parallel sHM error vigges OpenFOAM Meshing & Mesh Conversion 12 September 23, 2022 02:23
[snappyHexMesh] snappyHexMesh error "Cannot determine normal vector from patches." lethu OpenFOAM Meshing & Mesh Conversion 1 June 3, 2020 08:49
ideasUnvToFoam issue julieng OpenFOAM Pre-Processing 4 February 13, 2019 18:35
[ICEM] The ICEM Guide for CFX Users JuPa ANSYS Meshing & Geometry 11 September 4, 2017 10:43
[snappyHexMesh] Error while running SnappyHex in parallel mg.mithun OpenFOAM Meshing & Mesh Conversion 1 February 10, 2016 14:13


All times are GMT -4. The time now is 10:52.