/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  14
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      blockMeshDict;
}

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

scale 0.1;

vertices
(
    (0.5   1     0)
    (0.369 1.338 0)
    (0.338 1.369 0)
    (0     1.5   0)
    (0.737 1.676 0)
    (0.074 1.068 0)
    (0.676 1.737 0)
    (0.068 1.074 0)
    (0     2     0)
    (1     1     0)
    (0.1   1     0)
    (0     1.1   0)
    (0.5   1     2)
    (0.369 1.338 2)
    (0.338 1.369 2)
    (0     1.5   2)
    (0.737 1.676 2)
    (0.074 1.068 2)
    (0.676 1.737 2)
    (0.068 1.074 2)
    (0     2     2)
    (1     1     2)
    (0.1   1     2)
    (0     1.1   2)
);

blocks
(
    hex ( 1  0  9  4 13 12 21 16) (10 20 40) simpleGrading (1 1 1)
    hex ( 2  1  4  6 14 13 16 18) ( 2 20 40) simpleGrading (1 1 1)
    hex ( 3  2  6  8 15 14 18 20) (10 20 40) simpleGrading (1 1 1)
    hex ( 5 10  0  1 17 22 12 13) (10 20 40) simpleGrading (1 1 1)
    hex (11  7  2  3 23 19 14 15) (10 20 40) simpleGrading (1 1 1)
);

edges
(
    arc   0  1 (0.47  1.171 0)
    arc  12 13 (0.47  1.171 2)
    arc   2  3 (0.171 1.47  0)
    arc  14 15 (0.171 1.47  2)
    arc   9  4 (0.94  1.342 0)
    arc  21 16 (0.94  1.342 2)
    arc   5 10 (0.094 1.034 0)
    arc  17 22 (0.094 1.034 2)
    arc   6  8 (0.342 1.94  0)
    arc  18 20 (0.342 1.94  2)
    arc  11  7 (0.034 1.094 0)
    arc  23 19 (0.034 1.094 2)
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (13 12 21 16)
            (14 13 16 18)
            (15 14 18 20)
            (17 22 12 13)
            (23 19 14 15)
        );
    }

    outlet
    {
        type patch;
        faces
        (
            (1 4 9 0)
            (2 6 4 1)
            (3 8 6 2)
            (5 1 0 10)
            (11 3 2 7)
        );
    }

    rotor
    {
        type wall;
        faces
        (
            (2 1 13 14)
            (5 10 22 17)
            (5 17 13 1)
            (11 7 19 23)
            (7 2 14 19)
        );
    }

    outerWall
    {
        type wall;
        faces
        (
            (4 16 21 9)
            (6 18 16 4)
            (8 20 18 6)
        );
    }

    cyclic_half0
    {
        type cyclic;
        neighbourPatch cyclic_half1;
        transformType rotational;
        rotationAxis (0 0 1);
        rotationCentre (0 1 0);
        faces
        (
            (0 9 21 12)
            (10 0 12 22)
        );
    }

    cyclic_half1
    {
        type cyclic;
        neighbourPatch cyclic_half0;
        transformType rotational;
        rotationAxis (0 0 1);
        rotationCentre (0 1 0);
        faces
        (
            (3 15 20 8)
            (11 23 15 3)
        );
    }
);


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