CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   FATAL ERROR: face 6 in patch 2 does not have neighbour cell face: 4(8 9 21 20) (http://www.cfd-online.com/Forums/openfoam/71875-fatal-error-face-6-patch-2-does-not-have-neighbour-cell-face-4-8-9-21-20-a.html)

robingilbert January 18, 2010 15:59

FATAL ERROR: face 6 in patch 2 does not have neighbour cell face: 4(8 9 21 20)
 
Hello I was trying to make an I-shaped room and i got the following error:
FATAL ERROR: face 6 in patch 2 does not have neighbour cell face: 4(8 9 21 20)

This is how my blockMeshDict looks like:
convertToMeters 1;

vertices
(
(0 0 0)
(3 0 0)
(3 1 0)
(2 1 0)
(2 2 0)
(3 2 0)
(3 3 0)
(0 3 0)
(0 2 0)
(1 2 0)
(1 1 0)
(0 1 0)
(0 0 1)
(3 0 1)
(3 1 1)
(2 1 1)
(2 2 1)
(3 2 1)
(3 3 1)
(0 3 1)
(0 2 1)
(1 2 1)
(1 1 1)
(0 1 1)
);

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

edges
(
);

patches
(
wall floor
(
(13 1 0 12)
)
wall ceiling
(
(18 6 7 19)
)
wall fixedWalls
(
(6 5 17 18)
(4 3 15 16)
(2 1 13 14)
(7 8 20 19)
(9 10 22 21)
(11 0 12 23)
(8 9 21 20)
(4 5 17 16)
(11 10 22 23)
(3 2 14 15)
)
);

mergePatchPairs
(
(9 4 16 21 8 5 17 20)
(10 3 15 22 11 2 14 23)
);

Please help me....I am new to OpenFOAM as well as C++

AlanR January 18, 2010 18:41

Robin,

Without going through all of your vertices, blocks, etc., myself, you probably have things in the wrong order. It's very easy to get the order of vertices mixed up in a patch, which will give you fatal errors. First, I would start with one block at a time. I like to number the vertices so that the hex block numbers are consecutive - it's easier to keep track of that way. So you will have 24 vertices and your first block will be hex (0 1 2 3 4 5 6 7) (30 10 10) simpleGrading (1 1 1). Next, try just running blockMesh on one block at a time - blockMesh is very fast, so this will save you debugging time. Once you get all three blocks individually correct, you have problems with mergePatchPairs. Each patch that you want to merge must be individually named. You need something like wall fixedWall1 (6 5 17 18) wall fixedWall2 (4 3 115 16). Then, your mergePatchPairs will look like mergePatchPairs ( (fixedWall2 fixedWall1) (fixedWall3 fixedWall4) etc). Be careful with the order of mergePatchPairs - there is a note in the User Guide about which goes first.
So, break things down, order vertices so the blockMeshDict is easy to debug, and build up your geometry one step at a time. I'm still relatively new at this myself - spending a little time on learning blockMesh is worth the effort. It works quite well once you get used to it. Below is a simple geometry model multiple blocks and merged patch pairs as an example.
Good luck,
Alan

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

convertToMeters 1;

vertices
(
(0 0 0) //a
(2 0 0)
(2 1 0)
(0 1 0)
(0 0 1)
(2 0 1)
(2 1 1)
(0 1 1)
(0 1 0) //b
(2 1 0)
(2 2 0)
(0 2 0)
(0 1 1)
(2 1 1)
(2 2 1)
(0 2 1)
(2 1 0) //c
(3 1 0)
(3 2 0)
(2 2 0)
(2 1 1)
(3 1 1)
(3 2 1)
(2 2 1)
(3 1 0) //d
(5 1 0)
(5 2 0)
(3 2 0)
(3 1 1)
(5 1 1)
(5 2 1)
(3 2 1)
(3 0 0) //e
(5 0 0)
(5 1 0)
(3 1 0)
(3 0 1)
(5 0 1)
(5 1 1)
(3 1 1)

);

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

edges
(
);

patches
(
patch inlet
(
(0 4 7 3)
(8 12 15 11)

)
patch outlet
(
(25 26 30 29)
(33 34 38 37)

)
wall upper
(
(11 15 14 10)
(19 23 22 18)
(27 31 30 26)
)
wall lower
(
(0 1 5 4)
(1 2 6 5)
(16 17 21 20)
(32 33 37 36)
(32 36 39 35)

)
wall front
(
(4 5 6 7)
(12 13 14 15)
(20 21 22 23)
(28 29 30 31)
(36 37 38 39)
)
wall back
(
(0 3 2 1)
(8 11 10 9)
(16 19 18 17)
(24 27 26 25)
(32 35 34 33)
)

patch i1
(
(3 7 6 2)
)

patch i2
(
(8 9 13 12)
)

patch i3
(
(9 10 14 13)
)

patch i4
(
(16 20 23 19)
)

patch i5
(
(17 18 22 21)
)

patch i6
(
(24 28 31 27)
)

patch i7
(
(24 25 29 28)
)

patch i8
(
(35 39 38 34)
)

);

mergePatchPairs
(
(i2 i1)
(i3 i4)
(i6 i5)
(i7 i8)
);

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

robingilbert January 18, 2010 21:10

Hi Alan,

Thanks... I got it running. the error was with the meshpatchpairs.... I dint know that i had to name it!!! thank you.


All times are GMT -4. The time now is 20:43.