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

scale   0.001;

zmin -25;
zmax 25;

vertices
(
    // front-plane:
    // inlet region
    (   -50  25   $zmax)    // pt 0
    (     0  25   $zmax)    // pt 1
    (   -50  75   $zmax)    // pt 2
    (     0  75   $zmax)    // pt 3
    // outlet region
    (  -500 -75   $zmax)    // pt 4
    (     0 -75   $zmax)    // pt 5
    (  -500 -25   $zmax)    // pt 6
    (     0 -25   $zmax)    // pt 7
    // bend mid-points
    (    25   0   $zmax)    // pt 8
    (    75   0   $zmax)    // pt 9
    // back-plane:
    // inlet region
    (   -50  25   $zmin)    // pt 0 + 10
    (     0  25   $zmin)    // pt 1 + 10
    (   -50  75   $zmin)    // pt 2 + 10
    (     0  75   $zmin)    // pt 3 + 10
    // outlet region
    (  -500 -75   $zmin)    // pt 4 + 10
    (     0 -75   $zmin)    // pt 5 + 10
    (  -500 -25   $zmin)    // pt 7 + 10
    (     0 -25   $zmin)    // pt 8 + 10
    // bend mid-points
    (    25   0   $zmin)    // pt 8 + 10
    (    75   0   $zmin)    // pt 9 + 10
);

blocks
(
    hex (0 1 11 10  2 3 13 12) inlet  ( 20 20 20)  simpleGrading (1 1 1)
    hex (4 5 15 14  6 7 17 16) outlet (200 20 20)  simpleGrading (1 1 1)

    hex (1 8 18 11  3 9 19 13) bend1  ( 30 20 20)  simpleGrading (1 1 1)
    hex (5 9 19 15  7 8 18 17) bend2  ( 30 20 20)  simpleGrading (1 1 1)
);

edges
(
    // block 2
    arc  1  8  origin (0 0 $zmax)
    arc  3  9  origin (0 0 $zmax)
    arc 11 18  origin (0 0 $zmin)
    arc 13 19  origin (0 0 $zmin)
    // block 3
    arc  7  8  origin (0 0 $zmax)
    arc  5  9  origin (0 0 $zmax)
    arc 17 18  origin (0 0 $zmin)
    arc 15 19  origin (0 0 $zmin)
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 2 12 10)
        );
    }

    outlet
    {
        type patch;
        faces
        (
            (4 6 16 14)
        );
    }
);

mergePatchPairs
(
);


// The defaultFaces == outside "walls"
defaultPatch
{
    name walls;
    type wall;
}


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