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

using blockMesh - defaultFaces

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

Reply
 
LinkBack Thread Tools Display Modes
Old   February 10, 2014, 19:21
Default using blockMesh - defaultFaces
  #1
Senior Member
 
Join Date: Nov 2012
Location: Bavaria
Posts: 144
Rep Power: 4
aylalisa is on a distinguished road
Hi to All!

could anybody support me to generate a hexmesh with blockMesh:
channel with obstacle in the centre.

I've created the mesh composing of 18 blocks.
Result: 4 defaultFaces (faded in the picture --> redundant plane).
Inlet is the leftmost plane, outlet rightmost plane, right wall is turned off in the pic,
obstacle in the centre.

How can I remove these defaultFaces?

If I start the simulation converges very (too) fast, the result is wrong, the solver does not solve for Uz (but for Ux and Uy).
The same case works perfectly if I disclaim the obstacle and create a very simple mesh (1 block) instead.
Each time I create a mesh with blockMesh with undefined faces (wherever they come from) the simulation produces wrong results and paraFoam crashes if I try to view the mesh or the final reconstructed result from parallel run.

Please advice!
Aylalisa
aylalisa is offline   Reply With Quote

Old   February 11, 2014, 23:27
Default
  #2
Member
 
Thangam Natarajan
Join Date: Dec 2010
Location: Perth
Posts: 58
Rep Power: 7
Thangam is on a distinguished road
could you post your case along with the blockmesh dictionary please? Also, do you have any errosr/warnings when paraview crashes?
Thangam is offline   Reply With Quote

Old   February 12, 2014, 03:31
Default
  #3
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,132
Rep Power: 20
alexeym will become famous soon enoughalexeym will become famous soon enough
Hi,

defaultFaces is a patch where faces that do not belong to any patch go.

I.e. to remove them you have to define these patches in boundary section of blockMeshDict and maybe then use mergePatchPairs to get rid of those additional patches.

And yes, as pervious poster said it would be much easier to help you if you post your blockMeshDict.
alexeym is offline   Reply With Quote

Old   February 13, 2014, 14:14
Default
  #4
Senior Member
 
Join Date: Nov 2012
Location: Bavaria
Posts: 144
Rep Power: 4
aylalisa is on a distinguished road
Hi Thangam, Hi alexeym,


with that case I wanted to test if it is possible to subdivide a domain with blockMesh in arbitrary number of blocks.

Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
  
(    0.00    0.00    0.00    )    //0
(    0.94    0.00    0.00    )    //1
(    0.94    0.71    0.00    )    //2
(    0.00    0.71    0.00    )    //3
(    0.00    0.00    0.50    )    //4
(    0.94    0.00    0.50    )    //5
(    0.94    0.71    0.50    )    //6
(    0.00    0.71    0.50    )    //7
(    0.94    0.86    0.00    )    //8
(    0.00    0.86    0.00    )    //9
(    0.94    0.86    0.50    )    //10
(    0.00    0.86    0.50    )    //11
(    0.94    1.57    0.00    )    //12
(    0.00    1.57    0.00    )    //13
(    0.94    1.57    0.50    )    //14
(    0.00    1.57    0.50    )    //15
(    0.00    0.00    1.00    )    //16
(    0.94    0.00    1.00    )    //17
(    0.94    0.71    1.00    )    //18
(    0.00    0.71    1.00    )    //19
(    0.94    0.86    1.00    )    //20
(    0.00    0.86    1.00    )    //21
(    0.94    1.57    1.00    )    //22
(    0.00    1.57    1.00    )    //23
(    1.10    0.00    0.00    )    //24
(    1.10    0.71    0.00    )    //25
(    1.10    0.00    0.50    )    //26
(    1.10    0.71    0.50    )    //27
(    1.10    0.86    0.00    )    //28
(    1.10    0.86    0.50    )    //29
(    1.10    1.57    0.00    )    //30
(    1.10    1.57    0.50    )    //31
(    1.10    0.00    1.00    )    //32
(    1.10    0.71    1.00    )    //33
(    1.10    0.86    1.00    )    //34
(    1.10    1.57    1.00    )    //35
(    3.14    0.00    0.00    )    //36
(    3.14    0.71    0.00    )    //37
(    3.14    0.00    0.50    )    //38
(    3.14    0.71    0.50    )    //39
(    3.14    0.86    0.00    )    //40
(    3.14    0.86    0.50    )    //41
(    3.14    1.57    0.00    )    //42
(    3.14    1.57    0.50    )    //43
(    3.14    0.00    1.00    )    //44
(    3.14    0.71    1.00    )    //45
(    3.14    0.86    0.50    )    //46
(    3.14    0.86    1.00    )    //47
(    3.14    1.57    0.50    )    //48
(    3.14    1.57    1.00    )    //49


);

edges
(
);

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

);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 4 7 3)
        (3 7 11 9)
        (9 11 15 13)
        (4 16 19 7)
        (7 19 21 11)
        (11 21 23 15)
        );
    }

    outlet
    {
        type patch;
        faces
        (
            (36 37 39 38)
        (37 40 41 39)
        (40 42 43 41)
        (38 39 45 44)
        (39 46 47 45)
        (46 48 49 47)
        );
    }

    wallLeft
    {
        type wall;
    type cyclic;
    neighbourPatch wallRight;
    matchTolerance 0.01;
        faces
        (
        (12 13 15 14)
        (14 15 23 22)
        (30 12 14 31)
        (31 14 22 35)
        (42 30 31 43)
        (48 31 35 49)
        );
    }
    
    wallRight
    {
        //type wall;
        type cyclic;
    neighbourPatch wallLeft;
    matchTolerance 0.01;
        faces
        (
        (0 1 5 4)
        (4 5 17 16)
        (1 24 26 5)
        (5 26 32 17)
        (24 36 38 26)
        (26 38 44 32)
        );
    }
    
    top
    {
        type wall;
        faces
        (
        (16 17 18 19)
        (19 18 20 21)
        (21 20 22 23)
        (17 32 33 18)
        (18 33 34 20)
        (20 34 35 22)
        (32 44 45 33)
        (33 45 47 34)
        (34 47 49 35)
    );
    }
    
    bottom
    {
        type wall;
        faces
        (
            (0 3 2 1)
        (3 9 8 2)
        (9 13 12 8)
        (1 2 25 24)
        //(2 8 28 25)
        (8 12 30 28)
        (28 30 42 40)
        (25 28 40 37)
        (24 25 37 36)
        );
    }
    
     obstacle
    {
        type wall;
        faces
        (
        (8 28 29 10)
        (6 10 29 27)
        (2 6 27 25)
        (2 8 10 6)
        (25 27 29 28)
        
        );
    }
    
);

mergePatchPairs
(
);
I've paid attention during node definition. Theoretically there shouldn't be any default faces.
Each time I unintentionally create default faces the solver only solves for certain components of u! In this case: Uz is omitted.
Why?
If the node coordinates are correctly defined there should not appear any default faces.



Ayla
aylalisa is offline   Reply With Quote

Old   February 13, 2014, 14:57
Default
  #5
Senior Member
 
Alexey Matveichev
Join Date: Aug 2011
Location: Nancy, France
Posts: 1,132
Rep Power: 20
alexeym will become famous soon enoughalexeym will become famous soon enough
Hi,

All faces that are not described in your boundary sub-dictionary of blockMeshDict go to defaultFaces. By default type of this boundary is empty, so there are no boundary conditions on the patch, and that is why you've got problems with velocities.

In your case I've found duplicate vertices in blockMeshDict (43 and 48 for example, actually I've stopped after I found this pair, maybe there are more), so when you describe your blocks there appear two faces (though in paraview they look like one face) that can not be automatically merged by blockMesh (actually blockMesh thinks you've done this intentionally to have a wall inside domain). So they go to defaultFaces as you did not describe this faces in boundary sub-dictionary.

I'd suggest Gmsh for the mesh as there it is easy to avoid this type of errors (and yes, it can build hexagonal meshes with transfinite algorithm).
alexeym is offline   Reply With Quote

Reply

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
Is Playstation 3 cluster suitable for CFD work hsieh OpenFOAM 9 August 16, 2015 14:53
blockMesh fatal error, the default patch already has faces in it samid OpenFOAM Native Meshers: blockMesh 2 February 17, 2014 14:35
set of xyz data in blockMesh psk OpenFOAM Native Meshers: blockMesh 12 August 27, 2013 08:37
tutorial 2.2 Stress(...) trouble with blockMesh colinB OpenFOAM Native Meshers: blockMesh 8 January 22, 2012 11:32
Blockmesh cavity error message tonitoney OpenFOAM Installation 2 March 17, 2008 12:59


All times are GMT -4. The time now is 08:06.