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

scale 1;

vertices
(
    // backgroundMesh
    ( -1.00   -1    -1) // 0
    (  1.00   -1    -1)
    (  1.00    1.0  -1)
    ( -1.00    1.0  -1)
    ( -1.00   -1     1) // 4
    (  1.00   -1     1)
    (  1.00    1.0   1)
    ( -1.00    1.0   1)

    // hullBox
    (  0.0  -0.20  -0.2)  // 8
    (  0.80  -0.20  -0.2)
    (  0.80   0.20  -0.2)  // 10
    (  0.0   0.20  -0.2)
    (  0.0  -0.20   0.2)  // 12
    (  0.80  -0.20   0.2)
    (  0.80   0.20   0.2)  // 14
    (  0.0   0.20   0.2)

    // propeller
    ( -0.03   -0.08  -0.08)  // 16
    (  0.04   -0.08  -0.08)
    (  0.04    0.08  -0.08)  // 18
    ( -0.03    0.08  -0.08)
    ( -0.03   -0.08   0.08)  // 20
    (  0.04   -0.08  0.08)
    (  0.04    0.08  0.08)  // 22
    ( -0.03    0.08  0.08)

    // rudder
    ( -0.15   -0.1  -0.05)  // 24
    ( -0.028   -0.1  -0.05)
    ( -0.028    0.1  -0.05)  // 26
    ( -0.15    0.1  -0.05)
    ( -0.15   -0.1   0.05)  // 28
    ( -0.028   -0.1  0.05)
    ( -0.028    0.1  0.05)  // 30
    ( -0.15    0.1  0.05)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) background (80 80 40) simpleGrading (1 1 1)

    hex (8 9 10 11 12 13 14 15) hullBox (20 20 20) simpleGrading (1 1 1)

    hex (16 17 18 19 20 21 22 23) propeller (10 20 20) simpleGrading (1 1 1)

    hex (24 25 26 27 28 29 30 31) rudder (20 20 20) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    overset1  //oversetHull
    {
        type        overset;
        faces
        (
            ( 8 12 15 11)
            (10 14 13  9)
            (11 15 14 10)
            ( 9 13 12  8)
            ( 9  8 11 10)
            (12 13 14 15)
        );
    }

    overset2   //oversetPropeller
    {
        type        overset;
        faces
        (
            (16 20 23 19)
            (18 22 21 17)
            (19 23 22 18)
            (17 21 20 16)
            (20 21 22 23)
            (19 18 17 16)
        );
    }

    overset3   //oversetRudder
    {
        type        overset;
        faces
        (
            (24 28 31 27)
            (26 30 29 25)
            (28 29 30 31)
            (25 24 27 26)
            (27 31 30 26)
            (24 25 29 28)
        );
    }


        // Populated by subsetMesh
        hullWall
        {
            type wall;
            faces ();
        }
        propellerWall
        {
            type wall;
            faces ();
        }
        rudderWall
        {
            type wall;
            faces ();
        }


    atmosphere
    {
        type patch;
        faces
        (
            (3 7 6 2)
        //    (1 5 4 0)
        );
    }

    defaultFaces
    {
      type wall;
      faces
      ();
    }
);

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