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

convertToMeters 1;

x 0.2;
y 1.2;
a -0.2;
b -1.2;

vertices
(
    (-23 -25 0)				// vertex 0
    ($a -25 0)                    	// vertex 1
    ($x -25 0)				// vertex 2
    (40 -25 0)				// vertex 3

    (-23 -1 0)				// vertex 4
    ($a -1 0)                    	// vertex 5
    ($x -1 0)				// vertex 6
    (40 -1 0)				// vertex 7

    (-23 0 0)				// vertex 8
    ($b 0 0)                    	// vertex 9
    ($y 0 0)				// vertex 10
    (40 0 0)				// vertex 11

    (-23 1 0)				// vertex 12
    ($a 1 0)                    	// vertex 13
    ($x 1 0)				// vertex 14
    (40 1 0)				// vertex 15
	
    (-23 25 0)				// vertex 16
    ($a 25 0)                    	// vertex 17
    ($x 25 0)				// vertex 18
    (40 25 0)				// vertex 19

    (-23 -25 1)				// vertex 20
    ($a -25 1)                     	// vertex 21
    ($x -25 1) 				// vertex 22
    (40 -25 1) 				// vertex 23

    (-23 -1 1) 			// vertex 24
    ($a -1 1)                     	// vertex 25
    ($x -1 1) 				// vertex 26
    (40 -1 1) 				// vertex 27

    (-23 0 1) 				// vertex 28
    ($b 0 1)                     	// vertex 29
    ($y 0 1) 				// vertex 30
    (40 0 1) 				// vertex 31

    (-23 1 1) 				// vertex 32
    ($a 1 1)                     	// vertex 33
    ($x 1 1) 				// vertex 34
    (40 1 1) 				// vertex 35
	
    (-23 25 1) 				// vertex 36
    ($a 25 1)                     	// vertex 37
    ($x 25 1) 				// vertex 38
    (40 25 1) 				// vertex 39

    ($a -1 0)				// vertex 40			
    ($x -1 0)				// vertex 41
    ($a 0 0)				// vertex 42
    ($x 0 0)				// vertex 43
    ($a 1 0)				// vertex 44
    ($x 1 0)				// vertex 45

    ($a -1 1)				// vertex 46
    ($x -1 1)				// vertex 47
    ($a 0 1)				// vertex 48
    ($x 0 1)				// vertex 49
    ($a 1 1)				// vertex 50
    ($x 1 1)				// vertex 51

);

blocks
(
	hex (0 1 5 4 20 21 25 24) (200 200 1) simpleGrading (1 1 1)
	hex (4 5 9 8 24 25 29 28) (200 20 1) simpleGrading (1 1 1)
	hex (8 9 13 12 28 29 33 32) (200 20 1) simpleGrading (1 1 1)
	hex (12 13 17 16 32 33 37 36) (200 200 1) simpleGrading (1 1 1)
	hex (1 2 41 40 21 22 47 46) (5 200 1) simpleGrading (1 1 1)
	hex (44 45 18 17 50 51 38 37) (5 200 1) simpleGrading (1 1 1)
	hex (2 3 7 6 22 23 27 26) (300 200 1) simpleGrading (1 1 1)
	hex (6 7 11 10 26 27 31 30) (300 20 1) simpleGrading (1 1 1)
	hex (10 11 15 14 30 31 35 34) (300 20 1) simpleGrading (1 1 1)
	hex (14 15 19 18 34 35 39 38) (300 200 1) simpleGrading (1 1 1)
	hex (40 41 43 42 46 47 49 48) (5 10 1) simpleGrading (1 1 1)
	hex (42 43 45 44 48 49 51 50) (5 10 1) simpleGrading (1 1 1)

);

edges
(
    arc 13 9 (-0.9071 0.7071 0)
    arc 9 5 (-0.9071 -0.7071 0) 
    arc 14 10 (0.9071 0.7071 0)
    arc 10 6 (0.9071 -0.7071 0)

    arc 33 29 (-0.9071 0.7071 1)
    arc 29 25 (-0.9071 -0.7071 1) 
    arc 34 30 (0.9071 0.7071 1)
    arc 30 26 (0.9071 -0.7071 1)
);

boundary
(
    inlet
    {
        type wall;
        faces
        (
            (16 36 32 12)
	    (8 12 32 28)
            (4 8 28 24)
       	    (0 4 24 20)
        );
    }

    outlet
    {
        type wall;
        faces
        (
            (3 7 27 23)
	    (7 11 31 27)
            (11 15 35 31)
       	    (15 19 39 35)
        );
    }

    top
    {
        type wall;
        faces
        (
           (16 17 37 36)
	    (17 18 38 37)
            (18 19 39 38)
       	   
        );
    }

    bottom
    {
        type wall;
        faces
        (
           (0 1 21 20)
	    (1 2 22 21)
            (2 3 23 22)
        );
    }

    cylinder
    {
        type wall;
        faces
        (

            (5 9 29 25)
            (9 13 33 29)
            (6 10 30 26)
            (10 14 34 30)
	    (42 48 46 40)
            (44 50 48 42)
            (43 49 47 41)
            (45 51 49 43)

        );
    }

    sides
    {
        type empty;
        faces
        (
            (0 1 5 4)
            (4 5 9 8)
            (8 9 13 12)
            (12 13 17 16)
            (20 21 25 24)
            (24 25 29 28)
            (28 29 33 32)
            (32 33 37 36)

            (2 3 7 6)
            (6 7 11 10)
            (10 11 15 14)
            (14 15 19 18)
            (22 23 27 26)
            (26 27 31 30)
            (30 31 35 34)
            (34 35 39 38)
            
            (1 2 41 40)
            (40 41 43 42)
            (42 43 45 44)
            (44 45 18 17)
            (21 22 47 46)
            (46 47 49 48)
            (48 49 51 50)
            (50 51 38 37)
        );
    }

    master_l
    {
	type patch;
	faces
	(
		(37 50 44 17)
	);
    }

    master_r
    {
	type patch;
	faces
	(
		(38 51 45 18)
	);
    }

    slave_l
    {
	type patch;
	faces
	(
		(17 13 33 37)
	);
    }

    slave_r
    {
	type patch;
	faces
	(
		(18 14 34 38)
	);
    }

   master2_l
    {
	type patch;
	faces
	(
		(21 46 40 1)
	);
    }

    master2_r
    {
	type patch;
	faces
	(
		(22 47 41 2)
	);
    }

    slave2_l
    {
	type patch;
	faces
	(
		(21 25 5 1)
	);
    }

    slave2_r
    {
	type patch;
	faces
	(
		(26 22 2 6)
	);
    }

);

mergePatchPairs
(
	(master_r slave_r)
	(master_l slave_l)
	(master2_r slave2_r)
	(master2_l slave2_l)
);
// ************************************************************************* //
