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

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

x 128;	// cells in x
y 128;	// cells in y
ni 11;	// cells in z, interconnect
ng 11;	// cells in z, gas diffusion layer
h1 0.25; // thickness GDL
mh1 -0.25;
h2 3.25; // thickness GDL plus monopolar plate
mh2 -3.25;

scale 1e-3;

vertices
(
    ( 0 0  $mh2) ( 42 0 $mh2) ( 42 42 $mh2) ( 0 42 $mh2)
    ( 0 0  $mh1) ( 42 0 $mh1) ( 42 42 $mh1) ( 0 42 $mh1)
    ( 0 0   0.0) ( 42 0  0.0) ( 42 42  0.0) ( 0 42  0.0)
    ( 0 0   $h1) ( 42 0  $h1) ( 42 42  $h1) ( 0 42  $h1)
    ( 0 0   $h2) ( 42 0  $h2) ( 42 42  $h2) ( 0 42  $h2)
);

blocks
(
    hex ( 0  1  2  3  4  5  6  7) interconnect1 ($x $y $ni) simpleGrading (1 1 1)
    hex ( 4  5  6  7  8  9 10 11) fuel          ($x $y $ng) simpleGrading (1 1 1)
    hex ( 8  9 10 11 12 13 14 15) air           ($x $y $ng) simpleGrading (1 1 1)
    hex (12 13 14 15 16 17 18 19) interconnect0 ($x $y $ni) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    interconnectSides
    {
        type patch;
        faces
        (
            (3 7 6 2)
            (1 5 4 0)
            (0 4 7 3)
            (2 6 5 1)

            (15 19 18 14)
            (13 17 16 12)
            (12 16 19 15)
            (14 18 17 13)
        );
    }

    anodeSides
    {
        type wall;
        faces
        (
            (7 11 10 6)
            (5  9  8 4)
            (4  8 11 7)
            (6 10  9 5)
        );
    }

    cathodeSides
    {
        type wall;
        faces
        (
            (11 15 14 10)
            ( 9 13 12  8)
            ( 8 12 15 11)
            (10 14 13  9)
        );
    }

    interconnect1
    {
        type wall;
        faces
        (
            (0 3 2 1)
        );
    }
    interconnect0
    {
        type patch;
        faces
        (
            (16 17 18 19)
        );
    }
);

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