face 0 in patch 0 does not have neighbour
Hi everybody
I had search the rule for create a blockMeshDict. but i am facing this problem face 0 in patch 0 does not have neighbour cell face: 4(0 1 2 3) I want to know exactly the meaning of it because right now i am programming a script for creating automatically the blockMeshDict. I had see that there is a same prob in this forum but I didn't understood clearly ... Is there any documentation about it? by the way i am trying to put a topography in fluent... but i didn t find a software able to do it.... if somebody know one i would be happy to know it and try best regards Greg |
it means that the points 0 1 2 3 does not lie on the same patch.
go to tutorials/incompressible/icoFoam/cavity and look at blockMeshDict change the patch definition from Code:
wall movingWall Code:
wall movingWall movingWall patch |
Yeah, I got the same problem with my meshing.
Still, Niklas, if 0 1 2 3 are key-points connecting two surfaces of the geometry, they'll have to lie on two different patches, right? Like take an edge of a cube for exapmle. Suppose the 2 faces it connects (for which it's the common side) are different patches (maybe inlet and wall), the end-points of that edge will have to lie on two different patches. So, what do we do now? |
In fact check this out if anyone's interested,
It's a blockMeshDict file to create a U-shaped reactor with diverging and converging sections in between. I'm getting an error message saying FOAM FATAL ERROR: face 0 in patch 0 does not have neighbour cell face: 4(0 2 3 1) with some more negative cell volumes. What may be happening? I appreciate all the help :-) /*--------------------------------*- 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 (0 1 0) //1 (0 0 1) //2 (0 1 1) //3 (1 0 0) //4 (1 1 0) //5 (1 0 1) //6 (1 1 1) //7 (2 0 0) //8 (2 3 0) //9 (2 0 1) //10 (2 3 1) //11 (4 0 2) //12 (4 3 2) //13 (3 0 2) //14 (3 3 2) //15 (2 0 4) //16 (2 3 4) //17 (2 0 3) //18 (2 3 3) //19 (1 0 4) //20 (1 1 4) //21 (1 0 3) //22 (1 1 3) //23 (0 0 4) //24 (0 1 4) //25 (0 0 3) //26 (0 1 3) //27 ); blocks ( hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1) hex (4 5 6 7 8 9 10 11) (10 10 10) simpleGrading (1 1 1) hex (8 9 10 11 12 13 14 15) (10 10 10) simpleGrading (1 1 1) hex (12 13 14 15 16 17 18 19) (10 10 10) simpleGrading (1 1 1) hex (16 17 18 19 20 21 22 23) (10 10 10) simpleGrading (1 1 1) hex (20 21 22 23 24 25 26 27) (10 10 10) simpleGrading (1 1 1) ); edges ( arc 10 18 (3 0 2) arc 11 19 (3 3 2) arc 8 16 (4 0 2) arc 9 17 (4 3 2) ); patches ( patch flowInlet ( (0 2 3 1) ) patch flowOutlet ( (24 26 27 25) ) wall bottomSurf ( (0 2 6 4) (4 6 10 8) (8 10 14 12) (12 14 18 16) (16 18 22 20) (20 22 26 24) ) wall innerSurf ( (2 3 7 6) (6 7 11 10) (10 11 15 14) (14 15 19 18) (18 19 23 22) (22 23 27 26) ) wall topSurf ( (1 3 7 5) (5 7 11 9) (9 11 15 13) (13 15 19 17) (17 19 23 21) (21 23 27 25) ) wall outerSurf ( (0 1 5 4) (4 5 9 8) (8 9 13 12) (12 13 17 16) (16 17 21 20) (20 21 25 24) ) ); mergePatchPairs(); //End |
3 Attachment(s)
Hi Tanay,
there are problems in your block's numbering. To hunt down the problem you can - comment out the patches definition, afterwards you can have a look at the mesh in Paraview (screenshot 1) - control the topology with pyFoamDisplayBlockMesh (screenshot 2) - modify the block's numbering one by one, with patch definition still off, until no errors remain - include the patch definition again Corrected blockMeshDict is in attachment. Martin |
Quote:
Your points are not in the correct order. If you 'follow' the trace the points make with your fingers on your right hand, the thumb should point out from the volume, if the order is correct 0 2 3 1 - there's no order at all here. Should probably be: 0 1 2 3. (if not its 3 2 1 0) EDIT: Just loooked at the screenshot from martinB and realized that your block is defined wrong (not the face) |
Thanks a lot Martin, Niklas! So naive of me, I didn't realize that block numbering has a specific pattern, sorry :-) Everything works fine now.
That utility which drew the the wrong mesh was so awesome! How did you draw it? I tried pyFoamDisplayBlockMesh out of interest and nothing happened. |
Quote:
Code:
patches For the second image: call Code:
pyFoamDisplayBlockMesh constant/polyMesh/blockMeshDict Martin |
Thanks Martin!
|
I had solve the problem, I mean I still don't get it,
I feel you can't create point and block in the order your want. So i change my program create the blockMeeshDict as the exemple. Now it work well |
Yes, Greg, that's because there 'is' a specific pattern to numbering points defining a block. Watch the solved example and learn. The 1st 4 points are of a 'cubic' face in order and the next 4 are the opposite face in exactly the same order.
|
Yes I saw that. now it work well :) Thank you
|
Hi Nordin
Please help me.. I have same problem My blockMesh: convertToMeters 0.01; // todo en cm vertices ( (1.09 0 0) //0 (2.09 0 0) //1 (0 2.09 0) //2 (0 1.09 0) //3 (1e-10 0 0.7) //4 (0.2 0 0.7) //5 (2.79 0 0.7) //6 (0 2.79 0.7) //7 (0 0.2 0.7) //8 (0 1e-10 0.7) //9 (1e-10 0 1.469) //10 (0.2 0 1.469) //11 (2.79 0 1.469) //12 (4.65 0 1.469) //13 (0 4.65 1.469) //14 (0 2.79 1.469) //15 (0 0.2 1.469) //16 (0 1e-10 1.469) //17 (1e-10 0 10.669) //18 (0.2 0 10.669) //19 (2.79 0 10.669) //20 (4.65 0 10.669) //21 (0 4.65 10.669) //22 (0 2.79 10.669) //23 (0 0.2 10.669) //24 (0 1e-10 10.669) //25 (1.09 0 0.7) //26 (2.09 0 0.7) //27 (0 2.09 0.7) //28 (0 1.09 0.7) //29 (1.09 0 1.469) //30 (2.09 0 1.469) //31 (0 2.09 1.469) //32 (0 1.09 1.469) //33 (1.09 0 10.69) //34 (2.09 0 10.69) //35 (0 2.09 10.69) //36 (0 1.09 10.69) //37 ) ; blocks ( hex (0 0 3 3 5 26 29 8) (20 20 20) simpleGrading (1 1 1) hex (0 1 2 3 26 27 28 29) (20 20 20) simpleGrading (1 1 1) hex (1 1 2 2 27 6 7 28) (20 20 20) simpleGrading (1 1 1) hex (4 5 8 9 10 11 16 17) (5 5 20) simpleGrading (1 1 1) hex (5 26 29 8 11 30 33 16) (20 20 20) simpleGrading (1 1 1) hex (26 27 28 29 30 31 32 33) (20 20 20) simpleGrading (1 1 1) hex (27 6 7 28 31 12 15 32) (20 20 20) simpleGrading (1 1 1) hex (10 11 16 17 18 19 24 25) (5 5 20) simpleGrading (1 1 10) hex (11 30 33 16 19 34 37 24) (20 20 20) simpleGrading (1 1 10) hex (30 31 32 33 34 35 36 37) (20 20 20) simpleGrading (1 1 10) hex (31 12 15 32 35 20 23 36) (20 20 20) simpleGrading (1 1 10) hex (12 13 14 15 20 21 22 23) (20 20 20) simpleGrading (1 1 10) ); edges ( arc 0 3 (1.97282792 1.97282792 0) arc 1 2 (0.77074639 0.77074639 0) arc 5 8 (0.14142136 0.14142136 0.7) arc 6 7 (1.97282792 1.97282792 0.7) arc 12 15 (1.97282792 1.97282792 1.469) arc 13 14 (3.288046533 3.288046533 1.469) arc 21 22 (3.288046533 3.288046533 10.669) ); patches ( wall piston ( (4 9 8 5) (0 3 8 5) (0 3 2 1) (1 2 7 6) (12 15 14 13) ) wall cylinderHead ( (18 25 24 19) (19 24 37 34) (34 37 36 35) (35 36 23 20) (20 23 22 21) ) wall liner ( (13 14 22 21) (6 7 15 12) (4 9 17 10) (10 17 25 18) ) cyclic cyclic ( (0 0 26 5) (0 1 27 26) (1 1 6 27) (4 5 11 10) (5 26 30 11) (26 27 31 30) (27 6 12 31) (10 11 19 18) (11 30 34 19) (30 31 35 34) (31 12 20 35) (12 13 21 20) (2 2 28 7) (2 3 29 28) (3 3 8 29) (8 9 17 16) (29 8 16 33) (28 29 33 32) (7 28 32 15) (16 17 25 24) (33 16 24 37) (32 33 37 36) (15 32 36 23) (14 15 23 22) ) ); mergePatchPairs ( ); // ************************************************** *********************** // and the problem is: face 0 area does not match neighbour 12 by 23.8994% -- possible face ordering problem. patch:cyclic my area:0.3115 neighbour area:0.245 matching tolerance:0.001 Mesh face:30 vertices:4((1.09 0 0) (1.09 0 0) (1.09 0 0.7) (0.2 0 0.7)) Neighbour face:42 vertices:4((0 2.09 0) (0 2.09 0) (0 2.09 0.7) (0 2.79 0.7)) Rerun with cyclic debug flag set for more information. From function cyclicPolyPatch::calcTransforms() in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 150. FOAM exiting Please help me.. |
Hi Gunawan,
some fixes, changes are marked with " // <--- explanation": Code:
/*--------------------------------*- C++ -*----------------------------------*\ Good luck Martin |
Hi Martin.. Thank you very much.. Thanks for your help..
|
How dieselEngineFoam work?
hai all
im still newbie in openfoam I really need your helps I was trying to make a simulation with dieselenginefoam for my final project but I'm still not master it yet I have some questions here: 1. Is injected fuel considered as liquid or gas? 2. does dieselenginefoam care about ignition delay or not? 3. Is there any spesific tutorial about dieselEngineFOAM? thanks for your answer.. sorry for my bad english |
Nevermind! I found my mistake...
|
Well, found my mistake myself...I had missed out the block 4! yaay!
|
I have the same problem with creating axis
I am trying to create an axisymmetric domain with wedge condition and the angle is 2 degrees. I tried to correct the ordering of vertices but I end up in getting an error as "face 0 in patch 1 does not have neighbour cell face: 4(1 1 4 2)"
I want to create an axis of symmetry on x axis. Please help me. /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.2 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // convertToMeters 1; vertices ( (0 0 0) //0 (0.018 0 0) //1 (0.018 0.034744 0.001256) //2 (0 0.034744 0.001256) //3 (0.018 0.034744 -0.001256) //4 (0 0.034744 -0.001256) //5 ); blocks ( hex (0 1 1 0 2 3 4 5) (80 240 240) simpleGrading (20 1 1) ); edges ( ); boundary ( axis { type empty; faces ( (0 1 1 0) ); } atmosphere { type wall; faces ( (1 1 4 2) ); } bottom { type wall; faces ( (0 3 5 0) ); } walls { type wall; faces ( (4 5 3 2) ); } front { type wedge; faces ( (1 2 3 0) ); } back { type wedge; faces ( (4 1 0 5) ); } ); mergePatchPairs ( ); // ************************************************** *********************** // |
hi,
The local coordinate system is defined by the order in which the vertices are presented in the block definition. Please refer to UserGuide 5.3. Using the following blocks will create mesh without error. blocks ( hex (5 4 2 3 0 1 1 0) (80 1 240) simpleGrading (1 1 1) ); |
All times are GMT -4. The time now is 00:26. |