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

scale   1;

// Geometric parameters
ri    0.012;
ro    0.015;
zmin  -0.0;
zmax   0.12;

//ri2   ${{ $ri/2 }};
ri2   ${{ $ri*0.75 }};

// Divisions in x/y/z directions. Can be unequal.
nq   12;
nr    4;
ni    4;
nz   40;

rdiv1  0.5;
rdiv2  0.5;

geometry
{
    cyl_o
    {
        type   cylinder;
        point1 (0 0 $zmin);
        point2 (0 0 $zmax);
        radius $ro;
    }
    cyl_i
    {
        type   cylinder;
        point1 (0 0 $zmin);
        point2 (0 0 $zmax);
        radius $ri;
    }
}

vertices
(
    ( $ri2   0   $zmin)
    ( $ri    0   $zmin)
    ( $ro    0   $zmin)

    ( 0   $ri2   $zmin)
    ( 0   $ri    $zmin)
    ( 0   $ro    $zmin)

    (-$ri2   0   $zmin)
    (-$ri    0   $zmin)
    (-$ro    0   $zmin)

    ( 0  -$ri2   $zmin)
    ( 0  -$ri    $zmin)
    ( 0  -$ro    $zmin)


    ( $ri2   0   $zmax)
    ( $ri    0   $zmax)
    ( $ro    0   $zmax)

    ( 0   $ri2   $zmax)
    ( 0   $ri    $zmax)
    ( 0   $ro    $zmax)

    (-$ri2   0   $zmax)
    (-$ri    0   $zmax)
    (-$ro    0   $zmax)

    ( 0  -$ri2   $zmax)
    ( 0  -$ri    $zmax)
    ( 0  -$ro    $zmax)


);

blocks
(
    hex (0 3 6 9  12 15 18 21 ) ($nq $nq $nz) simpleGrading
    (
        1
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )

// inner ring
    hex (0 1 4 3  12 13 16 15 ) ($ni $nq $nz) simpleGrading
    (
        1
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
    hex (3 4 7 6  15 16 19 18 ) ($ni $nq $nz) simpleGrading
    (
        1
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
    hex (6 7 10 9  18 19 22 21) ($ni $nq $nz) simpleGrading
    (
        1
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
    hex (9 10 1 0  21 22 13 12) ($ni $nq $nz) simpleGrading
    (
        1
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )

// outer ring
    hex (1 2 5 4  13 14 17 16 )   ($nr $nq $nz) simpleGrading
    (
//        (//  rleng  rdiv expansion
//            (0.5 $rdiv1  1.0)
//            (0.5 $rdiv2  0.5)
//        )
        0.5
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
    hex (4 5 8 7  16 17 20 19 )   ($nr $nq $nz) simpleGrading
    (
//        (//  rleng  rdiv expansion
//            (0.5 $rdiv1  1.0)
//            (0.5 $rdiv2  0.5)
//        )
        0.5
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
    hex (7 8 11 10  19 20 23 22 ) ($nr $nq $nz) simpleGrading
    (
//        (//  rleng  rdiv expansion
//            (0.5 $rdiv1  1.0)
//            (0.5 $rdiv2  0.5)
//        )
        0.5
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
    hex (10 11 2 1  22 23 14 13 ) ($nr $nq $nz) simpleGrading
    (
//        (//  rleng  rdiv expansion
//            (0.5 $rdiv1  1.0)
//            (0.5 $rdiv2  0.5)
//        )
        0.5
        1
        (//  rleng  rdiv expansion
            (0.5 0.5  2.0)
            (0.5 0.5  0.5)
        )
    )
);

edges
(
    arc  1  4  origin (0 0 $zmin)
    arc  4  7  origin (0 0 $zmin)
    arc  7 10  origin (0 0 $zmin)
    arc 10  1  origin (0 0 $zmin)

    arc 13 16   origin (0 0 $zmax)
    arc 16 19   origin (0 0 $zmax)
    arc 19 22   origin (0 0 $zmax)
    arc 22 13   origin (0 0 $zmax)


    arc  2  5   origin (0 0 $zmin)
    arc  5  8   origin (0 0 $zmin)
    arc  8 11   origin (0 0 $zmin)
    arc 11  2   origin (0 0 $zmin)

    arc 14 17   origin (0 0 $zmax)
    arc 17 20   origin (0 0 $zmax)
    arc 20 23   origin (0 0 $zmax)
    arc 23 14   origin (0 0 $zmax)

);

boundary
(
    walls
    {
        type wall;
        faces
        (
            (2 5 17 14)
            (5 8 20 17)
            (8 11 23 20)
            (11 2 14 23)
        );
    }
    inlet
    {
        type patch;
        faces
        (
            (0 9 6 3)

            (1 0 3 4)
            (4 3 6 7)
            (7 6 9 10)
            (10 9 0 1)

            (1 4 5 2)
            (4 7 8 5)
            (7 10 11 8)
            (10 1 2 11)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (12 15 18 21)

            (12 13 16 15)
            (15 16 19 18)
            (18 19 22 21)
            (21 22 13 12)

            (13 14 17 16)
            (16 17 20 19)
            (19 20 23 22)
            (22 23 14 13)
        );
    }
);


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