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

backgroundMesh
{
    length  3.5;
    rA     0.0096;
    rB     0.0106;
    lengthCells 350;
    rAcells 40;
    rBcells 10;
}

convertToMeters 1;

vertices
(
    (                      0                   0 -1)
    ($!backgroundMesh/length                   0 -1)
    (                      0 $!backgroundMesh/rA -1)
    ($!backgroundMesh/length $!backgroundMesh/rA -1)

    (                      0                   0  0)
    ($!backgroundMesh/length                   0  0)
    (                      0 $!backgroundMesh/rA  0)
    ($!backgroundMesh/length $!backgroundMesh/rA  0)

    (                      0 $!backgroundMesh/rA -1)
    ($!backgroundMesh/length $!backgroundMesh/rA -1)
    (                      0 $!backgroundMesh/rB -1)
    ($!backgroundMesh/length $!backgroundMesh/rB -1)

    (                      0 $!backgroundMesh/rA  0)
    ($!backgroundMesh/length $!backgroundMesh/rA  0)
    (                      0 $!backgroundMesh/rB  0)
    ($!backgroundMesh/length $!backgroundMesh/rB  0)
);

blocks
(
    hex (0 1  3  2  4  5  7  6) fluid ($!backgroundMesh/lengthCells $!backgroundMesh/rAcells 1) simpleGrading (1 0.5 1)
    hex (8 9 11 10 12 13 15 14) solid ($!backgroundMesh/lengthCells $!backgroundMesh/rBcells 1) simpleGrading (1 2 1)
);

boundary
(
    inlet
    {
        type mappedInternal;
        neighbourRegion fluid;
        offset (0.05 0 0);
        faces
        (
            (0 4 6 2)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (1 5 7 3)
        );
    }
    front
    {
        type symmetry;
        faces
        (
            (4 5 7 6)
            (12 13 15 14)
        );
    }

    back
    {
        type symmetry;
        faces
        (
            (0 1 3 2)
            (8 9 11 10)
        );
    }

    wall
    {
        type mappedWall;
        neighbourRegion solid;
        neighbourPatch wall_inner;
        faces
        (
            (3 2 6 7)
            (1 0 4 5)
        );
    }
    bottom
    {
        type wall;
        faces
        (
            (8 12 14 10)
        );
    }
    top
    {
        type wall;
        faces
        (
            (9 13 15 11)
        );
    }
    wall_inner
    {
        type mappedWall;
        neighbourRegion fluid;
        neighbourPatch wall;
        faces
        (
            (9 8 12 13)
        );
    }
    wall_outer
    {
        type wall;
        faces
        (
            (11 10 14 15)
        );
    }
);


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