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

[blockMesh] Mesh has 2 geometric (non-empty/wedge) directions (1 0 1)

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

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 29, 2025, 20:49
Question Mesh has 2 geometric (non-empty/wedge) directions (1 0 1)
  #1
New Member
 
Eray Sari
Join Date: Nov 2025
Location: Ankara, Turkey
Posts: 6
Rep Power: 2
eraysari is on a distinguished road
Hi everyone,


I am studying a benchmark problem and to learn better, I created a little bit complicated mesh to the system. Problem is that, with this mesh, OpenFOAM only sees 2 geometric directions as it can be understood from "Mesh has 2 geometric (non-empty/wedge) directions (1 0 1)" when I check it with checkMesh command. Also there is an error s.t. "***Number of edges not aligned with or perpendicular to non-empty directions: 157440 <<Writing 160638 points on non-aligned edges to set nonAlignedEdges"


I would really appreciate if someone can help me.


I added my blockMesh file as an attachment. When I open it on ParaView, everything looks OK, but it gave these errors in checkMesh command.


--------------------------------------------------------------------------------------------------------------------------------------------------


eray$ checkMesh
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2506 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : _615aae61-20250627 OPENFOAM=2506 version=2506
Arch : "LSB;label=32;scalar=64"
Exec : checkMesh
Date : Nov 30 2025
Time : 03:26:27
Host : eray-linux
PID : 13324
I/O : uncollated
Case : /home/eray/me485/2D
nProcs : 1
trapFpe: Floating point exception trapping enabled (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 5, maxFileModificationPolls 20)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Check mesh...

Time = 0

Mesh stats
points: 350960
faces: 1014700
internal faces: 977300
cells: 332000
faces per cell: 6
boundary patches: 5
point zones: 0
face zones: 0
cell zones: 0

Overall number of cells of each type:
hexahedra: 332000
prisms: 0
wedges: 0
pyramids: 0
tet wedges: 0
tetrahedra: 0
polyhedra: 0

Checking topology...
Boundary definition OK.
***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
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 5200 5412 ok (non-closed singly connected)
outlet 2800 2911 ok (non-closed singly connected)
frontAndBack 16600 17120 ok (non-closed singly connected)
pipeWall 10400 10783 ok (non-closed singly connected)
defaultFaces 2400 2460 ok (non-closed singly connected)
".*" 37400 37400 ok (closed singly connected)


Checking faceZone topology for multiply connected surfaces...
No faceZones found.

Checking basic cellZone addressing...
No cellZones found.

Checking basic pointZone addressing...
No pointZones found.

Checking geometry...
Overall domain bounding box (-0.12 -0.12 0) (0.33 0.06 0.12)
Mesh has 1 geometric (non-empty/wedge) directions (1 0 0)
Mesh has 1 solution (non-empty) directions (1 0 0)
***Number of edges not aligned with or perpendicular to non-empty directions: 157440
<<Writing 160638 points on non-aligned edges to set nonAlignedEdges
Boundary openness (-1.35734e-16 -2.18955e-15 -3.38552e-18) OK.
Max cell openness = 2.14357e-16 OK.
Max aspect ratio = 1 OK.
Minimum face area = 3.80027e-08. Maximum face area = 0.000209202. Face area magnitudes OK.
Min volume = 1.14008e-10. Max volume = 6.27607e-07. Total volume = 0.003672. Cell volumes OK.
Mesh non-orthogonality Max: 44.7121 average: 15.5994
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 2.0665 OK.
Coupled point location match (average 0) OK.

Failed 1 mesh checks.

End
Attached Files
File Type: txt blockMeshDict.txt (4.4 KB, 2 views)
eraysari is offline   Reply With Quote

Old   November 30, 2025, 05:37
Default
  #2
New Member
 
Michael Häckel
Join Date: Nov 2025
Posts: 16
Rep Power: 2
michael_h is on a distinguished road
I tested your blockMeshDict with OpenFOAM v13. There already blockMesh fails. The reason is that at the marked position the cells do not fit together.
blockMesh.jpg
michael_h is offline   Reply With Quote

Old   November 30, 2025, 08:09
Default
  #3
New Member
 
Eray Sari
Join Date: Nov 2025
Location: Ankara, Turkey
Posts: 6
Rep Power: 2
eraysari is on a distinguished road
Hi,


First thank you very much for testing my code. Yeah I corrected what you mentioned and there are some other issues that I found out. (I have been searching for the problem for like 4 hrs idk) Because of my weird blocking, blockMesh creates a defaultFace in the flow area and it also creates a problem. I cannot figure out by editting the code since it became to messy, so I rewrote the code and now it works perfectly. If anyone interested, I attached the new version of it.


Thank you Michael.
Have a nice day.


Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  v2506                                 |
|   \\  /    A nd           | Website:  www.openfoam.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//Editted at 30 Nov 2025, 2:12 PM//
scale 0.03;

vertices
(
    (-4 2 0)
    (-0.5 2 0)
    (0.5 2 0)
    (1.5 2 0)
    (11 2 0)
    (-4 1.5 0)
    (-0.5 1.5 0)
    (0.5 1.5 0)
    (1.5 1.5 0)
    (11 1.5 0)
    (-4 0.5 0)
    (-0.5 0.5 0)
    (0.5 0.5 0)
    (1.5 0.5 0)
    (11 0.5 0)
    (-4 0 0)
    (-0.5 0 0)
    (0 0 0)
    (1 0 0)
    (1.5 0 0)
    (11 0 0)
    (0 -0.5 0)
    (0.5 -0.5 0)
    (1 -0.5 0)
    (0 -4 0)
    (0.5 -4 0)
    (1 -4 0)

    (-4 2 2)
    (-0.5 2 2)
    (0.5 2 2)
    (1.5 2 2)
    (11 2 2)
    (-4 1.5 2)
    (-0.5 1.5 2)
    (0.5 1.5 2)
    (1.5 1.5 2)
    (11 1.5 2)
    (-4 0.5 2)
    (-0.5 0.5 2)
    (0.5 0.5 2)
    (1.5 0.5 2)
    (11 0.5 2)
    (-4 0 2)
    (-0.5 0 2)
    (0 0 2)
    (1 0 2)
    (1.5 0 2)
    (11 0 2)
    (0 -0.5 2)
    (0.5 -0.5 2)
    (1 -0.5 2)
    (0 -4 2)
    (0.5 -4 2)
    (1 -4 2)
);

//Boundary Layer
bl_y    30;
bl_grading 10; // >1

bl_gra_z 0.1; // <1

bl_gra_b #eval{1/$bl_grading};
bl_gra_t #eval{1*$bl_grading};
bl_gra_l #eval{1*$bl_grading};
bl_gra_r #eval{1/$bl_grading};

//Mid Blocks
mid_y    10;
mid_x   15;
mid_xt #eval{2*$mid_x};

//Right-Hand Side of the Mid Block
right_x 10;
right_gra 10;  // >1

//Left-Hand Side of the Mid Block
left_x 10;
left_gra 0.1;  // <1

//Small Pipe Joint
pipe_joint 50;

//Small Pipe Far
pipe_far 30; 
pipe_gra 5;  // <1

//z-Axis
z_mesh 40;

blocks
(
    hex (0 5 6 1 27 32 33 28) ($bl_y $left_x $z_mesh) simpleGrading ($bl_gra_t $left_gra $bl_gra_z) //1
    hex (1 6 7 2 28 33 34 29) ($bl_y $mid_x $z_mesh) simpleGrading ($bl_gra_t 1 $bl_gra_z) //2
    hex (2 7 8 3 29 34 35 30) ($bl_y $mid_x $z_mesh) simpleGrading ($bl_gra_t 1 $bl_gra_z) //3
    hex (3 8 9 4 30 35 36 31) ($bl_y $right_x $z_mesh) simpleGrading ($bl_gra_t $right_gra $bl_gra_z) //4
    hex (5 10 11 6 32 37 38 33) ($mid_y $left_x $z_mesh) simpleGrading (1 $left_gra $bl_gra_z) //5
    hex (6 11 12 7 33 38 39 34) ($mid_y $mid_x $z_mesh) simpleGrading (1 1 $bl_gra_z) //6
    hex (7 12 13 8 34 39 40 35) ($mid_y $mid_x $z_mesh) simpleGrading (1 1 $bl_gra_z) //7
    hex (8 13 14 9 35 40 41 36) ($mid_y $right_x $z_mesh) simpleGrading (1 $right_gra $bl_gra_z) //8
    hex (10 15 16 11 37 42 43 38) ($bl_y $left_x $z_mesh) simpleGrading ($bl_gra_b $left_gra $bl_gra_z) //9
    hex (11 16 17 12 38 43 44 39) ($bl_y $mid_x $z_mesh) simpleGrading ($bl_gra_b 1 $bl_gra_z) //10
    hex (12 18 19 13 39 45 46 40) ($bl_y $mid_x $z_mesh) simpleGrading ($bl_gra_b 1 $bl_gra_z) //11
    hex (13 19 20 14 40 46 47 41) ($bl_y $right_x $z_mesh) simpleGrading ($bl_gra_b $right_gra $bl_gra_z) //12
    hex (17 21 22 12 44 48 49 39) ($pipe_joint $bl_y $z_mesh) simpleGrading (1 $bl_gra_l $bl_gra_z) //13
    hex (12 22 23 18 39 49 50 45) ($pipe_joint $bl_y $z_mesh) simpleGrading (1 $bl_gra_r $bl_gra_z) //14
    hex (21 24 25 22 48 51 52 49) ($pipe_far $bl_y $z_mesh) simpleGrading ($pipe_gra $bl_gra_l $bl_gra_z) //15
    hex (22 25 26 23 49 52 53 50) ($pipe_far $bl_y $z_mesh) simpleGrading ($pipe_gra $bl_gra_r $bl_gra_z) //16

);


boundary
(
    
    inletMain
    {
        type patch;
        faces
        (
        (0 5 32 27)
        (5 10 37 32)
        (10 15 42 37)
        );
    }
    inletSmall
    {
        type patch;
        faces
        (
        (24 25 52 51)
        (25 26 53 52)
        );
    }


    outlet
    {
        type patch;
        faces
        (
        (4 9 36 31)
        (9 14 41 36)
        (14 20 47 41)
        
        );
    }

    symmetryWall
    {
        type wall;
        faces
        (
        (0 5 6 1)
        (1 6 7 2)
        (2 7 8 3)
        (3 8 9 4)
        (5 10 11 6)
        (6 11 12 7)
        (7 12 13 8)
        (8 13 14 9)
        (10 15 16 11)
        (11 16 17 12)
        (12 18 19 13)
        (13 19 20 14)
        (17 21 22 12)
        (12 22 23 18)
        (21 24 25 22)
        (22 25 26 23)
        
        );
    }
    

    pipeWall
    {
        type wall;
        faces
        (
        //Front Face
        (27 28 33 32)
        (28 29 34 33)
        (29 30 35 34)
        (30 31 36 35)
        (32 33 38 37)
        (33 34 39 38)
        (34 35 40 39)
        (35 36 41 40)
        (37 38 43 42)
        (38 39 44 43)
        (39 40 46 45)
        (40 41 47 46)
        (44 39 49 48)
        (39 45 50 49)
        (48 49 52 51)
        (49 50 53 52)
        //Top Face
        (0 27 28 1)
        (1 28 29 2)
        (2 29 30 3)
        (3 30 31 4)
        //Bottom Face
        (15 16 43 42)
        (16 17 44 43)
        (18 19 46 45)
        (19 20 47 46)
        //Inlet Left
        (17 21 48 44)
        (21 24 51 48)
        //Inlet Right
        (23 18 45 50)
        (26 23 50 53)
        );
    }

);


// ************************************************************************* //
Attached Images
File Type: jpg blocks.jpg (63.4 KB, 7 views)
Attached Files
File Type: txt blockMeshDict.txt (4.8 KB, 2 views)
eraysari is offline   Reply With Quote

Reply

Tags
blockmesh, checkmesh, openfoam

Thread Tools Search this Thread
Search this Thread:

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
GeometricField -> mesh() Function Tobi OpenFOAM Programming & Development 10 November 19, 2020 12:33
how to set periodic boundary conditions Ganesh FLUENT 15 November 18, 2020 07:09
decomposePar problem: Cell 0contains face labels out of range vaina74 OpenFOAM Pre-Processing 37 July 20, 2020 06:38
Simulating fire in a tunnel luca1992 OpenFOAM 14 August 16, 2017 14:50
[Gmsh] 2D Mesh Generation Tutorial for GMSH aeroslacker OpenFOAM Meshing & Mesh Conversion 12 January 19, 2012 04:52


All times are GMT -4. The time now is 22:10.