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

scale   1;

vertices
(
    (-3.25 -4 0)     // 0
    (0.5 -4 0)       // 1
    (1.5 -4 0)       // 2
    (26.25 -4 0)     // 3

    (-3.25 -0.25 0)  // 4
    (0.5 -0.25 0)    // 5
    (1.5 -0.25 0)    // 6
    (26.25 -0.25 0)  // 7

    (-3.25 0.75 0)   // 8
    (0.5 0.75 0)     // 9
    (1.5 0.75 0)     // 10
    (26.25 0.75 0)   // 11

    (-3.25 4.5 0)    // 12
    (0.5 4.5 0)      // 13
    (1.5 4.5 0)      // 14
    (26.25 4.5 0)    // 15

    (-3.25 -4 0.1)   // 16
    (0.5 -4 0.1)     // 17
    (1.5 -4 0.1)     // 18
    (26.25 -4 0.1)   // 19

    (-3.25 -0.25 0.1) // 20
    (0.5 -0.25 0.1)  // 21
    (1.5 -0.25 0.1)  // 22
    (26.25 -0.25 0.1) // 23

    (-3.25 0.75 0.1) // 24
    (0.5 0.75 0.1)   // 25
    (1.5 0.75 0.1)   // 26
    (26.25 0.75 0.1) // 27

    (-3.25 4.5 0.1)  // 28
    (0.5 4.5 0.1)    // 29
    (1.5 4.5 0.1)    // 30
    (26.25 4.5 0.1)  // 31
);

blocks
(
    // Row 1 (bottom)
    hex (0 1 5 4  16 17 21 20) (63 65 1) simpleGrading (0.2 0.2 1)
    hex (1 2 6 5  17 18 22 21) (126 65 1) simpleGrading (1   0.2 1)
    hex (2 3 7 6  18 19 23 22) (316 65 1) simpleGrading (5   0.2 1)

    // Row 2 (middle)
    hex (4 5 9 8  20 21 25 24) (63 132 1) simpleGrading (0.2 1   1)
    hex (5 6 10 9 21 22 26 25) (126 132 1) simpleGrading (1   1   1)
    hex (6 7 11 10 22 23 27 26) (316 132 1) simpleGrading (5   1   1)

    // Row 3 (top)
    hex (8 9 13 12 24 25 29 28) (63 65 1) simpleGrading (0.2 5   1)
    hex (9 10 14 13 25 26 30 29) (126 65 1) simpleGrading (1   5   1)
    hex (10 11 15 14 26 27 31 30) (316 65 1) simpleGrading (5   5   1)
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 4 20 16)
            (4 8 24 20)
            (8 12 28 24)
        );
    }

    outlet
    {
        type patch;
        faces
        (
            (3 7 23 19)
            (7 11 27 23)
            (11 15 31 27)
        );
    }

    top
    {
        type symmetryPlane;
        faces
        (
            (12 13 29 28)
            (13 14 30 29)
            (14 15 31 30)
        );
    }

    bottom
    {
        type symmetryPlane;
        faces
        (
            (0 1 17 16)
            (1 2 18 17)
            (2 3 19 18)
        );
    }

    frontAndBack
    {
        type empty;
        faces
        (
            // Lower faces (z = 0)
            (0 1 5 4)
            (1 2 6 5)
            (2 3 7 6)
            (4 5 9 8)
            (5 6 10 9)
            (6 7 11 10)
            (8 9 13 12)
            (9 10 14 13)
            (10 11 15 14)
            // Upper faces (z = 0.1)
            (16 17 21 20)
            (17 18 22 21)
            (18 19 23 22)
            (20 21 25 24)
            (21 22 26 25)
            (22 23 27 26)
            (24 25 29 28)
            (25 26 30 29)
            (26 27 31 30)
        );
    }
);

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