FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}

x0 -3.;
x1 -0.05;
x2 0.05;
x3 3.;

y0 0.;
y1 1.;
y2 4.;

z0 0;
z1 1;

vertices
(
    ($x0 $y0 $z0 )         // 0
    ($x1 $y0 $z0 )         // 1
    ($x2 $y0 $z0 )         // 2
    ($x3 $y0 $z0 )         // 3
    ($x0 $y1 $z0 )         // 4
    ($x1 $y1 $z0 )         // 5
    ($x2 $y1 $z0 )         // 6
    ($x3 $y1 $z0 )         // 7
    ($x0 $y2 $z0 )         // 8
    ($x1 $y2 $z0 )         // 9
    ($x2 $y2 $z0 )         // 10
    ($x3 $y2 $z0 )         // 11

    ($x0 $y0 $z1 )         // 12
    ($x1 $y0 $z1 )         // 13
    ($x2 $y0 $z1 )         // 14
    ($x3 $y0 $z1 )         // 15
    ($x0 $y1 $z1 )         // 16
    ($x1 $y1 $z1 )         // 17
    ($x2 $y1 $z1 )         // 18
    ($x3 $y1 $z1 )         // 19
    ($x0 $y2 $z1 )         // 20
    ($x1 $y2 $z1 )         // 21
    ($x2 $y2 $z1 )         // 22
    ($x3 $y2 $z1 )         // 23
);

// Grading
h1 30;
h2 3;
v1 15;
v2 30;

blocks
(
    hex (   0   1   5   4   12  13  17  16  )
    ($h1 $v1 1 )
    simpleGrading (0.5 1 1)

    hex (   2   3   7   6   14  15  19  18  )
    ($h1 $v1 1)
    simpleGrading (2 1 1)

    hex (   4   5   9   8   16  17  21  20  )
    ($h1 $v2 1)
    simpleGrading (0.5 2 1)

    hex (   5   6   10  9   17  18  22  21  )
    ($h2 $v2 1)
    simpleGrading (1 2 1)

    hex (   6   7   11  10  18  19  23  22  )
    ($h1 $v2 1 )
    simpleGrading (2 2 1)
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (  0   4   16  12  )
            (  4   8   20  16  )
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (   3   7   19  15  )
            (   7   11  23  19  )
        );
    }
    flap
    {
        type wall;
        faces
        (
            (   1   5   17  13  )
            (   5   6   18  17  )
            (   6   2   14  18  )
        );
    }
    upperWall
    {
        type wall;
        faces
        (
            (   8   9   21  20  )
            (   9   10  22  21  )
            (   10  11  23  22  )
        );
    }
    lowerWall
    {
        type wall;
        faces
        (
            (   0   1   13  12  )
            (   2   3   15  14  )
        );
    }
    frontAndBack
    {
        type empty;
        faces
        (
            (   0   1   5   4   )
            (   2   3   7   6   )
            (   4   5   9   8   )
            (   5   6   10  9   )
            (   6   7   11  10  )
            (   12  13  17  16  )
            (   14  15  19  18  )
            (   16  17  21  20  )
            (   17  18  22  21  )
            (   18  19  23  22  )
        );
    }
);
