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

scale   1;

r       1;
a       #eval{1./sqrt(2)*$r};
b       #eval{3*$r};

n       16;

vertices
(
    (-$b -$b 0) // 0
    ( $b -$b 0) // 1
    (-$a -$a 0) // 2
    ( $a -$a 0) // 3
    (-$a  $a 0) // 4
    ( $a  $a 0) // 5
    (-$b  $b 0) // 6
    ( $b  $b 0) // 7

    (-$b -$b 1) // 8
    ( $b -$b 1) // 9
    (-$a -$a 1) // 10
    ( $a -$a 1) // 11
    (-$a  $a 1) // 12
    ( $a  $a 1) // 13
    (-$b  $b 1) // 14
    ( $b  $b 1) // 15
);

blocks
(
    hex (0 1 3 2 8 9 11 10) ($n $n 1) simpleGrading (1 1 1)
    hex (1 7 5 3 9 15 13 11) ($n $n 1) simpleGrading (1 1 1)
    hex (7 6 4 5 15 14 12 13) ($n $n 1) simpleGrading (1 1 1)
    hex (6 0 2 4 14 8 10 12) ($n $n 1) simpleGrading (1 1 1)
);

edges
(
    arc  2  3 origin (0 0 0)
    arc  3  5 origin (0 0 0)
    arc  5  4 origin (0 0 0)
    arc  4  2 origin (0 0 0)

    arc 10 11 origin (0 0 1)
    arc 11 13 origin (0 0 1)
    arc 13 12 origin (0 0 1)
    arc 12 10 origin (0 0 1)
);

boundary
(
    walls
    {
        type wall;
        faces
        (
            (0 2)
            (2 2)
        );
    }
    cylinder
    {
        type wall;
        faces
        (
            (0 3)
            (1 3)
            (2 3)
            (3 3)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (1 2)
        );
    }
    inlet
    {
        type patch;
        faces
        (
            (3 2)
        );
    }
);

defaultPatch
{
    type    empty;
    name    frontAndBack;
}


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