/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/

FoamFile
{
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}

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

convertToMeters 0.1;

// Domain bounds
del 1;
xmin 0;
xmax #calc "19*$del";
ymin #calc "-2*$del";
ymax #calc "2*$del";
Ts #calc "5*$del";
Te #calc "6*$del";
ymid 0;
zmin 0;
zmax #calc "4.188*$del";

/*
// Mesh spacing
deltax  0.02;
deltay  0.02;
deltaz  0.02;

// Calculate lengths
lx #calc "$xmax - $xmin";
ly #calc "$ymax - $ymin";
lz #calc "$zmax - $zmin";

// Calculate number of cells
xcells #calc "round($lx / $deltax)";
ycells #calc "round($ly / $deltay)";
zcells #calc "round($lz / $deltaz)";


// Manually defining xcells and ycells (removes conflict)
xcells 129;
ycells 129;
zcells 1;*/

vertices
(
    ($xmin $ymid $zmin) //0
    ($Ts $ymid $zmin) //1
    ($Ts $ymin $zmin) //2
    ($Te $ymin $zmin) //3
    ($Te $ymid $zmin) //4
    ($xmax $ymid $zmin) //5
    ($xmax $ymax $zmin) //6
    ($Te $ymax $zmin) //7
    ($Ts $ymax $zmin) //8
    ($xmin $ymax $zmin) //9
    ($xmin $ymid $zmax) //10
    ($Ts $ymid $zmax) //11
    ($Ts $ymin $zmax) //12
    ($Te $ymin $zmax) //13
    ($Te $ymid $zmax) //14
    ($xmax $ymid $zmax) //15
    ($xmax $ymax $zmax) //16
    ($Te $ymax $zmax) //17
    ($Ts $ymax $zmax) //18
    ($xmin $ymax $zmax) //19    
    
);

blocks
(
    hex (0 1 8 9 10 11 18 19) (64 96 64)
    simpleGrading
      (
      (
        //x-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
      )
    
      (
        //y-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
      )
      (
         // Uniform in z-direction
         (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
      )
      )
    hex (2 3 4 1 12 13 14 11) (64 96 64)
    simpleGrading
    (
      (
        //x-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
      )
      ( 
        //y-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
      )
    
       // Uniform in z-direction
      (
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
      )
    )
    hex (4 5 6 7 14 15 16 17) (216 96 64)
    simpleGrading
    (
       (
        //x-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
       )
       (
        //y-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
       )
    
         // Uniform in z-direction
       (
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
       )
    )
    hex (1 4 7 8 11 14 17 18) (64 96 64)
    simpleGrading
    (
       (
        //x-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
       )
        (
        //y-direction grading
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
        )
    
       // Uniform in z-direction
       (
        (0.2 0.25 4)
        (0.6 0.50 1)
        (0.2 0.25 0.25)
       )
    )
);

  

edges
(
);

boundary
(
    inlet_1
    {
        type patch;
        faces
        (
            (0 10 19 9)
           
        );
    }
    
    inlet_2
    {
        type patch;
        faces
        (
          
            (3 2 12 13)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (6 16 15 5)
            
        );
    }
    fixedWalls
    {
        type wall;
        faces
        (
            (0 1 8 9)
            (1 2 3 4)
            (4 5 6 7)
            (1 4 7 8)
            (10 11 18 19)
            (11 12 13 14)
            (14 15 16 17)
            (18 11 14 17)
            (8 9 19 18)
            (6 7 17 16)
            (1 0 10 11)
            (5 4 14 15)
            (7 8 18 17)
            (1 2 12 11)
            (4 14 13 3)
        );
    }
    
);

mergePatchPairs
(
);

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