/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  7                                     |
|   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/

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

convertToMeters 0.25;

vertices
(
    //block0 vertices
    (-0.65 0.65 0) //0
    (-1.414212 1.414212 0) //1
    (1.414212 1.414212 0) //2
    (0.65 0.65 0) //3
    (-0.65 0.65 25) //4
    (-1.414212 1.414212 25) //5
    (1.414212 1.414212 25) //6
    (0.65 0.65 25) //7

    //block1 new vertices
    (0.65 - 0.65 0) //8
    (1.414212 - 1.414212 0) //9
    (0.65 - 0.65 25) //10
    (1.414212 - 1.414212 25) //11

    //block3 new vertices
    (-0.65 - 0.65 0) //12
    (-1.414212 - 1.414212 0) //13
    (-0.65 - 0.65 25) //14
    (-1.414212 - 1.414212 25) //15
);

xcells 7;
ycells 7;
zcells 70;

xcells1 7;
ycells1 7;
zcells1 70;

stretch 1;

blocks
(
    //block0
     hex (0 3 2 1 4 7 6 5) ($xcells $ycells $zcells) simpleGrading (1 $stretch 1)
    //block1
    hex (3 8 9 2 7 10 11 6) ($xcells $ycells $zcells) simpleGrading (1 $stretch 1)
    //block2
    hex (8 12 13 9 10 14 15 11) ($xcells $ycells $zcells) simpleGrading (1 $stretch 1)
    //block3
    hex (12 0 1 13 14 4 5 15) ($xcells $ycells $zcells) simpleGrading (1 $stretch 1)
    //block4
    hex (0 12 8 3 4 14 10 7) ($xcells1 $ycells1 $zcells1) simpleGrading (1 1 1)
);

edges
(
    //block0 arc
    arc 1 2 (0 2 0)
    arc 5 6 (0 2 25)

    //block1 arc
    arc 2 9 (2 0 0)
    arc 6 11 (2 0 25)

    //block2 arc
    arc 9 13 (0 -2 0)
    arc 11 15 (0 -2 25)

    //block3 arc
    arc 1 13 (-2 0 0)
    arc 5 15 (-2 0 25)
 
    //block4 arc
    arc 0 3 (0 0.7 0)
    arc 0 12 (-0.7 0 0)
    arc 8 12 (0 -0.7 0)
    arc 8 3 (0.7 0 0)

    arc 4 7 (0 0.7 25)
    arc 4 14 (-0.7 0 25)
    arc 10 14 (0 -0.7 25)
    arc 10 7 (0.7 0 25)
);

boundary
(
    inlet
    {
		type patch;
		faces
		(
		(0 1 2 3)
		(2 3 8 9)
		(8 9 13 12)
		(13 12 0 1)
		(0 3 8 12)
		);
	}
	
	outlet
	{
		type patch;
		faces
		(
		(4 5 6 7)
		(6 7 10 11)
		(15 11 10 14)
		(15 14 4 5)
		(4 7 10 14)
		);
	}
	
	walls
	{
		type wall;
		faces
		(
		(1 5 6 2)
		(2 6 11 9)
		(9 11 15 13)
		(15 13 5 1)
		);
	}
);

mergePatchPairs
(
);
