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

[blockMesh] Face reduced to less than 3 points (simple cubic blocks)

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By dasith0001

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 16, 2014, 10:22
Default Face reduced to less than 3 points (simple cubic blocks)
  #1
New Member
 
anonymous
Join Date: Apr 2014
Posts: 8
Rep Power: 12
mikeR is on a distinguished road
I'm trying to create a structure but receive the posted error message
Quote:
Face xyz reduced to less than 3 point
I can merge 2 of my interfaces just fine, just one keeps acting up and I dont really know why this one gives me errors


my blockMeshDict file consists of 8 blocks out of which I'd like to create some kind of structure. Here is the code (interface 3 and 4 raise an error):

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
(
//1
    (0 0 0)
    (1 0 0)
    (1 0.5 0)
    (0 0.5 0)
    (0 0 0.5)
    (1 0 0.5)
    (1 0.5 0.5)
    (0 0.5 0.5)
//2
    (1 0 0)
    (1.5 0 0)
    (1.5 0.5 0)
    (1 0.5 0)
    (1 0 0.5)
    (1.5 0 0.5)
    (1.5 0.5 0.5)
    (1 0.5 0.5)
//3
    (0 0 -0.8)
    (1 0 -0.8)
    (1 0.5 -0.8)
    (0 0.5 -0.8)
    (0 0 0)
    (1 0 0)
    (1 0.5 0)
    (0 0.5 0)
//4
    (1 0 -0.8)
    (1.5 0 -0.8)
    (1.5 0.5 -0.8)
    (1 0.5 -0.8)
    (1 0 0)
    (1.5 0 0)
    (1.5 0.5 0)
    (1 0.5 0)
//5
    (0 0.5 0)
    (1 0.5 0)
    (1 1 0)
    (0 1 0)
    (0 0.5 0.5)
    (1 0.5 0.5)
    (1 1 0.5)
    (0 1 0.5)
//6
    (1 0.5 0) //40
    (1.5 0.5 0)
    (1.5 1 0)
    (1 1 0)
    (1 0.5 0.5)
    (1.5 0.5 0.5)
    (1.5 1 0.5)
    (1 1 0.5)
//7
    (0 0.5 -0.8)
    (1 0.5 -0.8)
    (1 1 -0.8)
    (0 1 -0.8)
    (0 0.5 0)
    (1 0.5 0)
    (1 1 0)
    (0 1 0)
//8
    (1 0.5 -0.8)
    (1.5 0.5 -0.8)
    (1.5 1 -0.8)
    (1 1 -0.8)
    (1 0.5 0)
    (1.5 0.5 0)
    (1.5 1 0)
    (1 1 0)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1)  //1
    hex (8 9 10 11 12 13 14 15) (10 10 10) simpleGrading (1 1 1)//2
    hex (16 17 18 19 20 21 22 23) (10 10 10) simpleGrading (1 1 1)//3
    hex (24 25 26 27 28 29 30 31) (10 10 10) simpleGrading (1 1 1)//4
    hex (32 33 34 35 36 37 38 39) (10 10 10) simpleGrading (1 1 1)//5
    hex (40 41 42 43 44 45 46 47) (10 10 10) simpleGrading (1 1 1)//6
    hex (48 49 50 51 52 53 54 55) (10 10 10) simpleGrading (1 1 1)//7
    hex (56 57 58 59 60 61 62 63) (10 10 10) simpleGrading (1 1 1)//8
);

edges
(
);
patches
(
patch inlet
(
    (0 4 7 3)
)
patch inlet2
(
    (43 47 46 42)
    (59 63 62 58)
)
patch outlet
( 
    (9 10 14 13)
)

patch wallBack
(
    (3 2 1 0)
    (8 11 10 9)
    (56 60 61 57)
    (56 59 58 57)
    (58 62 61 57)
    (42 46 45 41)
)
patch wallFront
(
    (6 7 4 5)
    (14 15 12 13)
    (44 45 46 47)
)
patch walltop
(
    (2 3 7 6)
    (33 37 38 34)
    (49 53 54 50)
)
patch wallbottom
(
    (0 1 5 4)
    (8 9 13 12)
)
patch interface1
(
    (2 6 5 1)
)
patch interface2
(
    (11 8 12 15)
)
patch interface3
(
    (10 11 15 14)
)
patch interface4
(
    (40 41 45 44)
)
patch interface5
(
    (41 40 43 42)
)
patch interface6
(
    (60 61 62 63)
)
);
boundary
(
);

mergePatchPairs
(
    (interface1 interface2)
    (interface5 interface6)
    (interface4 interface3)
);

// ************************************************************************* //
any ideas why just interface 4 and 3 give an error? They overlap quite well afaik and I checked the Structure with pyFoamDisplayBlockMesh but couldnt find an error
mikeR is offline   Reply With Quote

Old   April 16, 2014, 12:27
Default
  #2
New Member
 
anonymous
Join Date: Apr 2014
Posts: 8
Rep Power: 12
mikeR is on a distinguished road
Here is another try but still the same error

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
(
//1
    (0 0 0)
    (1 0 0)
    (1 0.5 0)
    (0 0.5 0)
    (0 0 0.5)
    (1 0 0.5)
    (1 0.5 0.5)
    (0 0.5 0.5)
//2
    (1 0 0)
    (1.5 0 0)
    (1.5 0.5 0)
    (1 0.5 0)
    (1 0 0.5)
    (1.5 0 0.5)
    (1.5 0.5 0.5)
    (1 0.5 0.5)
//3
    (0 0 -0.8)
    (1 0 -0.8)
    (1 0.5 -0.8)
    (0 0.5 -0.8)
    (0 0 0)
    (1 0 0)
    (1 0.5 0)
    (0 0.5 0)
//4
    (1 0 -0.8)
    (1.5 0 -0.8)
    (1.5 0.5 -0.8)
    (1 0.5 -0.8)
    (1 0 0)
    (1.5 0 0)
    (1.5 0.5 0)
    (1 0.5 0)
//5
    (0 0.5 0)
    (1 0.5 0)
    (1 1 0)
    (0 1 0)
    (0 0.5 0.5)
    (1 0.5 0.5)
    (1 1 0.5)
    (0 1 0.5)
//6
    (1 0.5 0) //40
    (1.5 0.5 0)
    (1.5 1 0)
    (1 1 0)
    (1 0.5 0.5)
    (1.5 0.5 0.5)
    (1.5 1 0.5)
    (1 1 0.5)
//7
    (0 0.5 -0.8)
    (1 0.5 -0.8)
    (1 1 -0.8)
    (0 1 -0.8)
    (0 0.5 0)
    (1 0.5 0)
    (1 1 0)
    (0 1 0)
//8
    (1 0.5 -0.8)
    (1.5 0.5 -0.8)
    (1.5 1 -0.8)
    (1 1 -0.8)
    (1 0.5 0)
    (1.5 0.5 0)
    (1.5 1 0)
    (1 1 0)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1)  //1
    hex (8 9 10 11 12 13 14 15) (10 10 10) simpleGrading (1 1 1)//2
    hex (16 17 18 19 20 21 22 23) (10 10 10) simpleGrading (1 1 1)//3
    hex (24 25 26 27 28 29 30 31) (10 10 10) simpleGrading (1 1 1)//4
    hex (32 33 34 35 36 37 38 39) (10 10 10) simpleGrading (1 1 1)//5
    hex (40 41 42 43 44 45 46 47) (10 10 10) simpleGrading (1 1 1)//6
    hex (48 49 50 51 52 53 54 55) (10 10 10) simpleGrading (1 1 1)//7
    hex (56 57 58 59 60 61 62 63) (10 10 10) simpleGrading (1 1 1)//8
);

edges
(
);
patches
(
patch inlet
(
    (43 47 46 42)
    (59 63 62 58)
)
patch outlet
(
    (0 4 7 3)
)
patch wall
(
    (6 7 4 5)
    (14 15 12 13)
    (46 47 44 45)
    (10 14 13 9)
   // (26 30 29 25)
    (42 46 45 41)
    (58 62 61 57)
    (56 57 61 60)
    (57 56 59 58)
    (59 56 60 63)
    (9 8 11 10)
    (1 0 3 2)
    (2 3 7 6)
    (0 1 5 4)
    (8 9 13 12)
    (40 44 47 43)
)
patch interface1
(
    (10 11 15 14)
)
patch interface2
(
    (40 41 45 44)
)
patch interface3
(
    (1 2 6 5)
)
patch interface4
(
    (8 12 15 11)
)
patch interface5
(
    (40 43 42 41)
)
patch interface6
(
    (60 61 62 63)
)
);
boundary
(
);

mergePatchPairs
(
    (interface1 interface2)
    (interface4 interface3)
    (interface5 interface6)
);

// ************************************************************************* //
mikeR is offline   Reply With Quote

Old   April 19, 2014, 09:47
Default
  #3
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings mikeR,

From what I can see by using:
Code:
paraFoam -block
it looks like you're repeating points in the "vertices" list. That can lead to serious issues, as blockMesh might be getting confused with what exactly you're trying to do.

edit: I've updated the wiki page considerably, so feel free to check it out! http://openfoamwiki.net/index.php/BlockMesh

Best regards,
Bruno
__________________

Last edited by wyldckat; April 19, 2014 at 11:43. Reason: see "edit:"
wyldckat is offline   Reply With Quote

Old   April 21, 2014, 15:21
Default
  #4
New Member
 
anonymous
Join Date: Apr 2014
Posts: 8
Rep Power: 12
mikeR is on a distinguished road
Hey wyldckat,
thanks for the reply. From what I've figured out with try and error the problem seems to be with the mergePatchPairs. I guess it is not allowed use the same point for merging more than one patch. Is this correct?
I thought it was required to actually use repeating points in the vertices list and was wondered why there was no automatic face matching. I got the problem resolved by removing all the double entries.
Thank you for your comment!
mikeR is offline   Reply With Quote

Old   April 21, 2014, 17:43
Default
  #5
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi mikeR,

Quote:
Originally Posted by mikeR View Post
From what I've figured out with try and error the problem seems to be with the mergePatchPairs. I guess it is not allowed use the same point for merging more than one patch. Is this correct?
I'm not sure I understand your question. But it reminds me of a problem that occurs with stitchMesh... have a look at this post: http://www.cfd-online.com/Forums/ope...tml#post433137 post #10 - it's a long description, but the idea is that when we try to stitch 4 perpendicular duplicate patches, the last 2 pairs won't be stitch-able due to this reported issue:
Code:
Face * reduced to less than 3 points.  Topological/cutting error B.
My guess is that you triggered something very similar when using blockMesh.

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   February 19, 2017, 13:38
Default Same Problem - What's the solution
  #6
New Member
 
Deutschland
Join Date: Mar 2016
Posts: 12
Rep Power: 10
Perschr is on a distinguished road
Hey everbody,

I have the same problem and as it hasn't been solved I thought to push up.

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

convertToMeters 1;

vertices
(
    (    0    -0.005   -0.02)
    (  0.1    -0.005   -0.02)
    (  0.1     0.005   -0.02)
    (   0      0.005   -0.02)
    (    0    -0.005    0)
    (  0.1    -0.005    0)
    (  0.1     0.005    0)
    (   0      0.005    0)
    
//Zweite Box oben
    (  0.1    -0.005   -0.02)
    (  0.2    -0.005   -0.02)
    (  0.2     0.005   -0.02)
    (  0.1     0.005   -0.02)
    (  0.1    -0.005    0)
    (  0.2    -0.005    0)
    (  0.2     0.005    0)
    (  0.1     0.005    0)

//Zweite Box unten
    (  0.1    -0.005   -0.04)
    (  0.2    -0.005   -0.04)
    (  0.2     0.005   -0.04)
    (  0.1     0.005   -0.04)
    (  0.1    -0.005   -0.02)
    (  0.2    -0.005   -0.02)
    (  0.2     0.005   -0.02)
    (  0.1     0.005   -0.02)


//Dritte Box oben
    (  0.2    -0.005   -0.02)
    (  0.3    -0.005   -0.02)
    (  0.3     0.005   -0.02)
    (  0.2     0.005   -0.02)
    (  0.2    -0.005   0)
    (  0.3    -0.005   0)
    (  0.3     0.005   0)
    (  0.2     0.005   0)

//Dritte Box Mitte
    (  0.2    -0.005   -0.04)
    (  0.3    -0.005   -0.04)
    (  0.3     0.005   -0.04)
    (  0.2     0.005   -0.04)
    (  0.2    -0.005   -0.02)
    (  0.3    -0.005   -0.02)
    (  0.3     0.005   -0.02)
    (  0.2     0.005   -0.02)

//Dritte Box unten
    (  0.2    -0.005   -0.1)
    (  0.3    -0.005   -0.1)
    (  0.3     0.005   -0.1)
    (  0.2     0.005   -0.1)
    (  0.2    -0.005   -0.04)
    (  0.3    -0.005   -0.04)
    (  0.3     0.005   -0.04)
    (  0.2     0.005   -0.04)


//Box Düse
    (  0.3    -0.005   -0.02)
    (  0.4    -0.005   -0.005)
    (  0.4     0.005   -0.005)
    (  0.3     0.005   -0.02)
    (  0.3    -0.005   0)
    (  0.4    -0.005   0)
    (  0.4     0.005   0)
    (  0.3     0.005   0)

//Vierte Box Mitte
    (  0.3    -0.005   -0.04)
    (  0.6    -0.005   -0.04)
    (  0.6     0.005   -0.04)
    (  0.3     0.005   -0.04)
    (  0.3    -0.005   -0.02)
    (  0.6    -0.005   -0.02)
    (  0.6     0.005   -0.02)
    (  0.3     0.005   -0.02)

//Vierte Box unten
    (  0.3    -0.005   -0.1)
    (  0.6    -0.005   -0.1)
    (  0.6     0.005   -0.1)
    (  0.3     0.005   -0.1)
    (  0.3    -0.005   -0.04)
    (  0.6    -0.005   -0.04)
    (  0.6     0.005   -0.04)
    (  0.3     0.005   -0.04)


);

blocks
(
    hex (0 1 2 3 4 5 6 7) (75 1 15) simpleGrading (2 1 4)
    hex (8 9 10 11 12 13 14 15) (60 1 15) simpleGrading (1 1 4)
    hex (16 17 18 19 20 21 22 23) (60 1 30) simpleGrading (1 1 1)
    hex (24 25 26 27 28 29 30 31) (60 1 15) simpleGrading (1 1 4)
    hex (32 33 34 35 36 37 38 39) (60 1 30) simpleGrading (1 1 1)
    hex (40 41 42 43 44 45 46 47) (60 1 30) simpleGrading (1 1 0.15)
    hex (48 49 50 51 52 53 54 55) (60 1 15) simpleGrading (1 1 4)

//Vierte Box Mitte
    hex (56 57 58 59 60 61 62 63) (180 1 30) simpleGrading (1 1 1)
//Vierte Box unten
    hex (64 65 66 67 68 69 70 71) (180 1 30) simpleGrading (1 1 0.15)


);

edges
(
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 4 7 3)
     );
    }
    outlet
    {
        type patch;
        faces
        (
            (65 66 70 69)
        (57 58 62 61)
        );
    }    
    symmetryplane
    {
        type symmetryPlane;
        faces
        (
            (4 5 6 7)
            (12 13 14 15)
            (28 29 30 31)
        (52 53 54 55)
        
        );
    }
    Wall
    {
        type wall;
        faces
        (
            (0 3 2 1)
            (16 20 23 19)
            (16 19 18 17)
            (40 44 47 43)
        (40 43 42 41)
        (51 50 49 48)
        (49 50 54 53)
        (60 61 62 63)
        (64 67 66 65)
    );
    }
    frontAndBack
    {
        type empty;
        faces
        (
            (0 1 5 4)
        (8 9 13 12)
        (16 17 21 20)
        (24 25 29 28)
        (48 49 53 52)
        (32 33 37 36)
        (56 57 61 60)
        (40 41 45 44)
        (64 65 69 68)
        (7 6 2 3)
        (15 14 10 11)
        (31 30 26 27)
        (55 54 50 51)
        (23 22 18 19)
        (39 38 34 35)
        (63 62 58 59)
        (47 46 42 43) 
        (71 70 66 67)
        );
    }
    interface1
    {
        type patch;
        faces
        (
            (1 2 6 5)
    );
    }
    interface2
    {
        type patch;
        faces
        (
            (8 12 15 11)
    );
    }
    interface3
    {
        type patch;
        faces
        (
            (9 10 13 14)
    );
    }
    interface4
    {
        type patch;
        faces
        (
            (24 28 31 27)
    );
    }
    interface5
    {
        type patch;
        faces
        (
            (25 26 30 29)
    );
    }
    interface6
    {
        type patch;
        faces
        (
            (48 52 55 51)
    );
    }
    interface7
    {
        type patch;
        faces
        (
            (17 18 22 21)
    );
    }
    interface8
    {
        type patch;
        faces
        (
            (32 36 39 35)
    );
    }
    interface9
    {
        type patch;
        faces
        (
            (33 34 38 37)
    );
    }
    interface10
    {
        type patch;
        faces
        (
            (56 60 63 59)
    );
    }
    interface11
    {
        type patch;
        faces
        (
            (41 42 45 46)
    );
    }
    interface12
    {
        type patch;
        faces
        (
            (64 68 71 67)
    );
    }
    interface13
    {
        type patch;
        faces
        (
            (11 10 9 8)
        );
    }
    interface14
    {
        type patch;
        faces
        (
            (20 21 22 23)
        );
    }
//    interface15
//    {
//        type patch;
//        faces
//        (
//            (24 27 26 25)
//        );
//    }
//    interface16
//    {
//        type patch;
//        faces
//        (
//            (36 37 38 39)
//        );
//    }
//   interface17
//    {
//        type patch;
//        faces
//        (
//            (32 35 34 33)
//        );
//    }
//    interface18
//    {
//        type patch;
//        faces
//        (
//            (44 45 46 47)
//        );
//    }
//    interface19
//    {
//        type patch;
//        faces
//        (
//            (56 59 58 57)
//        );
//    }
//    interface20
//    {
//        type patch;
//        faces
//        (
//            (68 69 70 71)
//        );
//    }
//
);

mergePatchPairs
(
    (interface1 interface2)
    (interface3 interface4)
    (interface5 interface6)
    (interface7 interface8)
    (interface9 interface10)
    (interface11 interface12)
    (interface13 interface14)
   // (interface15 interface16)
   // (interface17 interface18)
   // (interface19 interface20)

);
The last interfaces do not merge. What's the matter?
Perschr is offline   Reply With Quote

Old   March 12, 2017, 14:34
Default
  #7
Member
 
Fredi Cenci
Join Date: Dec 2016
Posts: 38
Rep Power: 9
fredicenci is on a distinguished road
Did you guys solve it? I have the same problem...


thanks
fredicenci is offline   Reply With Quote

Old   July 20, 2023, 20:27
Default
  #8
Senior Member
 
Desh
Join Date: Mar 2021
Location: Sydney
Posts: 118
Rep Power: 5
dasith0001 is on a distinguished road
Hi,

I know this is a very old thread but just to update how to avoid this, as previously mentioned, avoid repeating the same nodes.

However, there are some instances that you have to repeat the same nodes to get different resolutions (and if you don't want to use refineMesh) of the mesh. And that leads to mergingPatches.

As it is correctly said, blockMesh do not allowed to share a node for merging more than one face with an another.

The work around I found for this is using '' stitchMesh -overwrite masterC51 slaveC62 ''

This does not give any errors in the mesh but please let me know if any other elegant ways of doing this.

Thank you.
Dasith
ashish1995 likes this.

Last edited by dasith0001; July 20, 2023 at 22:37.
dasith0001 is offline   Reply With Quote

Old   July 17, 2024, 07:35
Default
  #9
New Member
 
Ashish Singh
Join Date: Feb 2020
Posts: 1
Rep Power: 0
ashish1995 is on a distinguished road
Just to add to dasith0001's solution, I had to add the -perfect flag to stitchMesh, to make it work. (My unmerged faces/patches matched perfectly, but without the flag, stitchMesh produced error.)
Code:
stitchMesh -overwrite -perfect master slave
After stitching succesfully, the master & slave patches remain in the boundary file with zero faces each. They can be removed manually, or using a createPatchDict having just the FoamFile header and the line
Code:
patches ();
ashish1995 is offline   Reply With Quote

Reply


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
[blockMesh] Internal walls of zero thickness anger OpenFOAM Meshing & Mesh Conversion 23 February 6, 2020 19:25
[snappyHexMesh] sHM layer process keeps getting killed MBttR OpenFOAM Meshing & Mesh Conversion 4 August 15, 2016 04:21
[snappyHexMesh] How to define to right point for locationInMesh Mirage12 OpenFOAM Meshing & Mesh Conversion 7 March 13, 2016 15:07
[blockMesh] BlockMesh FOAM warning gaottino OpenFOAM Meshing & Mesh Conversion 7 July 19, 2010 15:11
[blockMesh] BlockMeshmergePatchPairs hjasak OpenFOAM Meshing & Mesh Conversion 11 August 15, 2008 08:36


All times are GMT -4. The time now is 07:32.