CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Native Meshers: blockMesh

non-orthogonal faces and incorrect orientation?

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree1Likes
  • 1 Post By colinB

Reply
 
LinkBack Thread Tools Display Modes
Old   April 16, 2013, 03:11
Unhappy non-orthogonal faces and incorrect orientation?
  #1
New Member
 
chaoqing min
Join Date: Mar 2013
Posts: 10
Rep Power: 4
nennbs is on a distinguished road
Hello, guys.

When I run blockMesh, the errors are listed as follows,

<<Writing 310090 non-orthogonal faces to set nonOrthoFaces
***Error in face pyramids: 935400 faces are incorrectly oriented.
<<Writing 625310 faces with incorrect orientation to set wrongOrientedFaces
Max skewness = 0.000312539 OK.


Why?

thank you in advance.


my blockDict:
convertToMeters 0.001;

vertices
(
(0 -11 0.1)
(100 -11 0.1)
(100 -3 0.1)
(0 -3 0.1)
(0 3 0.1)
(100 3 0.1)
(100 11 0.1)
(0 11 0.1)
(106 -11 0.1)
(306 -11 0.1)
(306 -3 0.1)
(106 -3 0.1)
(106 3 0.1)
(306 3 0.1)
(306 11 0.1)
(106 11 0.1)

(0 -11 -0.1)
(100 -11 -0.1)
(100 -3 -0.1)
(0 -3 -0.1)
(0 3 -0.1)
(100 3 -0.1)
(100 11 -0.1)
(0 11 -0.1)
(106 -11 -0.1)
(306 -11 -0.1)
(306 -3 -0.1)
(106 -3 -0.1)
(106 3 -0.1)
(306 3 -0.1)
(306 11 -0.1)
(106 11 -0.1)
);

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

edges
(
);

boundary
(
inlet
{
type patch;
faces
(
(3 0 16 19)
(4 3 19 20)
(7 4 20 23)
);
}
outlet
{
type patch;
faces
(
(9 10 26 25)
(10 13 29 26)
(13 14 30 29)
);
}
walls
{
type wall;
faces
(
(7 6 22 23)
(5 6 22 21)
(5 21 28 12)
(12 15 31 28)
(15 14 30 31)

(0 1 17 16)
(1 2 18 17)
(2 11 27 18)
(11 8 24 27)
(8 9 25 24)
);
}
frontAndBack
{
type empty;
faces
(
(7 4 5 6)
(23 20 21 22)
(4 3 2 5)
(20 19 18 21)
(3 0 1 2)
(19 16 17 18)
(5 2 11 12)
(21 18 27 28)
(15 12 13 14)
(31 28 29 30)
(12 11 10 13)
(28 27 26 29)
(11 8 9 10)
(27 24 25 26)
);
}
);

mergePatchPairs
(
);


At the same time, can you give me some suggestions about blockMesh too?
nennbs is offline   Reply With Quote

Old   April 16, 2013, 10:02
Default can anyone help me
  #2
New Member
 
chaoqing min
Join Date: Mar 2013
Posts: 10
Rep Power: 4
nennbs is on a distinguished road
can anyone help me?
nennbs is offline   Reply With Quote

Old   April 16, 2013, 10:20
Default
  #3
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 9
colinB is on a distinguished road
type:

paraFoam -block

and you will see that you have some orders of the numbers incorrect

if this is not the case you might want to provide us the
checkMesh results and some pictures

regards
curiosity likes this.
colinB is offline   Reply With Quote

Old   April 16, 2013, 18:17
Default
  #4
Senior Member
 
immortality's Avatar
 
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,186
Rep Power: 16
immortality is on a distinguished road
you should put vertex numbers in opposite to clock direction.first lower page and then upper one.
And also faces should have right hand rule(normal of faces be outward).
immortality is offline   Reply With Quote

Old   April 17, 2013, 04:20
Default
  #5
New Member
 
chaoqing min
Join Date: Mar 2013
Posts: 10
Rep Power: 4
nennbs is on a distinguished road
Thank you for your help, I have changed some orientation but it still doesn´t work.

The checkMesh is listed as follows:


Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
points: 315222
internal points: 0
faces: 625310
internal faces: 310090
cells: 155900
boundary patches: 4
point zones: 0
face zones: 0
cell zones: 0

Overall number of cells of each type:
hexahedra: 155900
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: 1 (OK).

Checking patch topology for multiply connected surfaces ...
Patch Faces Points Surface topology
inlet 110 222 ok (non-closed singly connected)
outlet 100 202 ok (non-closed singly connected)
walls 3210 6424 ok (non-closed singly connected)
frontAndBack 311800 315222 ok (non-closed singly connected)

Checking geometry...
Overall domain bounding box (0 -0.011 -0.0001) (0.306 0.011 0.0001)
Mesh (non-empty, non-wedge) directions (1 1 0)
Mesh (non-empty) directions (1 1 0)
All edges aligned with or perpendicular to non-empty directions.
Boundary openness (3.10402e-19 5.83093e-17 1.00277e-14) OK.
Max cell openness = 1.65436e-16 OK.
Max aspect ratio = 1.33333 OK.
Minumum face area = 4e-08. Maximum face area = 5.33333e-08. Face area magnitudes OK.
Min volume = 2e-300. Max volume = 2e-300. Total volume = 3.118e-295. Cell volumes OK.
Mesh non-orthogonality Max: 180 average: 180
***Number of non-orthogonality errors: 310090.
<<Writing 310090 non-orthogonal faces to set nonOrthoFaces
***Error in face pyramids: 935400 faces are incorrectly oriented.
<<Writing 625310 faces with incorrect orientation to set wrongOrientedFaces
Max skewness = 0.000312539 OK.
Coupled point location match (average 0) OK.

Failed 2 mesh checks.

End


And blockMesh is as follows:

Create time

Creating block mesh from
"/home/ifas/turbulent/constant/polyMesh/blockMeshDict"
Creating curved edges
Creating topology blocks
Creating topology patches

Creating block mesh topology
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 0, probably defined inside-out
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -20 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -20 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -20 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -20 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -20 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -20 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 1, probably defined inside-out
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -26.6667 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 2, probably defined inside-out
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -1.2 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -1.2 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -1.2 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -1.2 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -1.2 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -1.2 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 3, probably defined inside-out
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 4, probably defined inside-out
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -40 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -40 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -40 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -40 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -40 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -40 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 5, probably defined inside-out
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 0
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 1
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 2
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 3
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 4
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 128
zero or negative pyramid volume: -53.3333 for face 5
--> FOAM Warning :
From function blockMesh::createTopology(IOdictionary&)
in file blockMesh/blockMeshTopology.C at line 255
negative volume block : 6, probably defined inside-out

Check topology

Basic statistics
Number of internal faces : 6
Number of boundary faces : 30
Number of defined boundary faces : 30
Number of undefined boundary faces : 0
Checking patch -> block consistency

Creating block offsets
Creating merge list .

Creating polyMesh from blockMesh
Creating patches
Creating cells
Creating points with scale 0.001

Writing polyMesh
----------------
Mesh Information
----------------
boundingBox: (0 -0.011 -0.0001) (0.306 0.011 0.0001)
nPoints: 315222
nCells: 155900
nFaces: 625310
nInternalFaces: 310090
----------------
Patches
----------------
patch 0 (start: 310090 size: 110) name: inlet
patch 1 (start: 310200 size: 100) name: outlet
patch 2 (start: 310300 size: 3210) name: walls
patch 3 (start: 313510 size: 311800) name: frontAndBack

End





And my blockMeshDict is changed as follows:

convertToMeters 0.001;

vertices
(
(0 -11 0.1)
(100 -11 0.1)
(100 -3 0.1)
(0 -3 0.1)
(0 3 0.1)
(100 3 0.1)
(100 11 0.1)
(0 11 0.1)
(106 -11 0.1)
(306 -11 0.1)
(306 -3 0.1)
(106 -3 0.1)
(106 3 0.1)
(306 3 0.1)
(306 11 0.1)
(106 11 0.1)

(0 -11 -0.1)
(100 -11 -0.1)
(100 -3 -0.1)
(0 -3 -0.1)
(0 3 -0.1)
(100 3 -0.1)
(100 11 -0.1)
(0 11 -0.1)
(106 -11 -0.1)
(306 -11 -0.1)
(306 -3 -0.1)
(106 -3 -0.1)
(106 3 -0.1)
(306 3 -0.1)
(306 11 -0.1)
(106 11 -0.1)
);

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

edges
(
);

boundary
(
inlet
{
type patch;
faces
(
(0 3 19 16)
(3 4 20 19)
(4 7 23 20)
);
}
outlet
{
type patch;
faces
(
(10 9 25 26)
(13 10 26 29)
(14 13 29 30)
);
}
walls
{
type wall;
faces
(
(7 6 22 23)
(6 5 21 22)
(5 12 28 21)
(12 15 31 28)
(15 14 30 31)

(0 1 17 16)
(2 1 17 18)
(2 11 27 18)
(11 8 24 27)
(8 9 25 24)
);
}
frontAndBack
{
type empty;
faces
(
(7 4 5 6)
(23 20 21 22)
(4 3 2 5)
(20 19 18 21)
(3 0 1 2)
(19 16 17 18)
(5 2 11 12)
(21 18 27 28)
(15 12 13 14)
(31 28 29 30)
(12 11 10 13)
(28 27 26 29)
(11 8 9 10)
(27 24 25 26)
);
}
);

mergePatchPairs
(
);

thank you a lot.
nennbs is offline   Reply With Quote

Old   April 17, 2013, 04:23
Default
  #6
New Member
 
chaoqing min
Join Date: Mar 2013
Posts: 10
Rep Power: 4
nennbs is on a distinguished road
Thank you, I have changed some orientations but it still doesnt work. the blockMesh and changed blockMeshDict. are listed as above, and you can have a look.

Thank you a lot.
nennbs is offline   Reply With Quote

Old   April 17, 2013, 04:55
Default
  #7
Senior Member
 
Join Date: Aug 2010
Location: Groningen, The Netherlands
Posts: 216
Rep Power: 9
colinB is on a distinguished road
Hey nennbs,

I still would say that your vertices are not in the correct order.

if you have a look at the warning messages they say:


Code:
(...)
negative volume block : 0, probably defined inside-out
(...)
negative volume block : 1, probably defined inside-out
(...)
negative volume block : 2, probably defined inside-out
(...)
negative volume block : 3, probably defined inside-out
(...)
negative volume block : 4, probably defined inside-out
(...)
negative volume block : 5, probably defined inside-out
(...)
negative volume block : 6, probably defined inside-out
(...)
Apparently you have consequently ill defined all the blocks
so that you have these troubles.

I checked block number 0 and the correct numbers are:

0 1 17 16 3 2 18 19

if you apply this principle to the other blocks you should get a valid
blockMeshDict file.
Eventually you have to check also your number of cells per edge
for they are related to this issue.

For further reference see the userguide section of blockMesh
where there is a detailed sketch of an example block and its
numbering.

regards
colinB is offline   Reply With Quote

Old   April 17, 2013, 05:42
Default
  #8
New Member
 
chaoqing min
Join Date: Mar 2013
Posts: 10
Rep Power: 4
nennbs is on a distinguished road
Thanks millions, It works.
nennbs is offline   Reply With Quote

Reply

Tags
16th, 2013, april

Thread Tools
Display Modes

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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Converting fluent mesh to foam sivakumar OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 11 April 30, 2013 09:29
Face orientation in blockMesh WiWo OpenFOAM 0 March 18, 2010 12:10
local mesh refinement at channel geometries Kr_kim OpenFOAM Native Meshers: blockMesh 6 February 9, 2010 15:25
when mesh big......incorrect orientation to set wrongOrientedFaces??? yuhai OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 0 October 1, 2009 09:21
when mesh big......incorrect orientation to set wrongOrientedFaces??? yuhai OpenFOAM Pre-Processing 0 September 29, 2009 09:00


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