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

#include "../../constant/include/CaseSetupValue";

vertices
(
	($ra	$ra 	$zMin)
	($nra	$ra	$zMin) 
	($nra	$nra	$zMin)
	($ra	$nra	$zMin)
	($r2a	$r2a	$zMin)
       	($nr2a	$r2a	$zMin)
	($nr2a	$nr2a	$zMin)
	($r2a	$nr2a	$zMin)
	($xMin	$r2a	$zMin)
	($xMin	$yMax	$zMin)
	($nr2a	$yMax	$zMin)		
	($r2a	$yMax	$zMin)		
	($xMax	$yMax	$zMin)		
	($xMax	$r2a	$zMin)		
	($xMax	$nr2a	$zMin)		
	($xMax	$yMin	$zMin)		
	($r2a	$yMin	$zMin)		
	($nr2a	$yMin	$zMin)		
	($xMin	$yMin	$zMin)
	($xMin	$nr2a	$zMin)
 

	($ra	$ra 	$zMax)
	($nra	$ra	$zMax) 
	($nra	$nra	$zMax)
	($ra	$nra	$zMax)
	($r2a	$r2a	$zMax)
       	($nr2a	$r2a	$zMax)
	($nr2a	$nr2a	$zMax)
	($r2a	$nr2a	$zMax)
	($xMin	$r2a	$zMax)
	($xMin	$yMax	$zMax)
	($nr2a	$yMax	$zMax)		
	($r2a	$yMax	$zMax)		
	($xMax	$yMax	$zMax)		
	($xMax	$r2a	$zMax)		
	($xMax	$nr2a	$zMax)		
	($xMax	$yMin	$zMax)		
	($r2a	$yMin	$zMax)		
	($nr2a	$yMin	$zMax)		
	($xMin	$yMin	$zMax)
	($xMin	$nr2a	$zMax)
);

Pna	#calc "1-$Ppa";
Nna	#calc "1-$Npa";

blocks
(
    hex (2 6 5 1 22 26 25 21) ($cellsr $cellst 1) simpleGrading ((($Ppa $Npa $ratiora)($Pna $Nna $ratior)) 1 1)
    hex (1 5 4 0 21 25 24 20) ($cellsr $cellst 1) simpleGrading ((($Ppa $Npa $ratiora)($Pna $Nna $ratior)) 1 1)
    hex (0 4 7 3 20 24 27 23) ($cellsr $cellst 1) simpleGrading ((($Ppa $Npa $ratiora)($Pna $Nna $ratior)) 1 1)
    hex (3 7 6 2 23 27 26 22) ($cellsr $cellst 1) simpleGrading ((($Ppa $Npa $ratiora)($Pna $Nna $ratior)) 1 1)
    hex (6 19 8 5 26 39 28 25) ($cellsXMin $cellst 1) simpleGrading (1 1 1)
    hex (5 8 9 10 25 28 29 30) ($cellsXMin $cellsYMax 1) simpleGrading (1 1 1)
    hex (5 10 11 4 25 30 31 24) ($cellsYMax $cellst 1) simpleGrading (1 1 1)
    hex (4 11 12 13 24 31 32 33) ($cellsYMax $cellsXMax 1) simpleGrading (1 1 1)
    hex (4 13 14 7 24 33 34 27) ($cellsXMax $cellst 1) simpleGrading (1 1 1)
    hex (7 14 15 16 27 34 35 36) ($cellsXMax $cellsYMin 1) simpleGrading (1 1 1)
    hex (7 16 17 6 27 36 37 26) ($cellsYMin $cellst 1) simpleGrading (1 1 1)
    hex (6 17 18 19 26 37 38 39) ($cellsYMin $cellsXMin 1) simpleGrading (1 1 1)
);

edges
(
    arc	0 1 (0 	$r	$zMin)
    arc	1 2 ($nr 	0 	$zMin)
    arc	2 3 (0 	$nr 	$zMin)
    arc	3 0 ($r 	0 	$zMin)
    arc	4 5 (0 	$r2	$zMin)
    arc	5 6 ($nr2 	0 	$zMin)
    arc	6 7 (0 	$nr2 	$zMin)
    arc	7 4 ($r2 	0 	$zMin)

    arc	20 21 (0 	$r	$zMax)
    arc	21 22 ($nr 	0 	$zMax)
    arc	22 23 (0 	$nr 	$zMax)
    arc	23 20 ($r 	0 	$zMax)
    arc	24 25 (0 	$r2	$zMax)
    arc	25 26 ($nr2 	0 	$zMax)
    arc	26 27 (0 	$nr2 	$zMax)
    arc	27 24 ($r2 	0 	$zMax)
);

boundary
(
 Inlet
 {
 	type patch;
	faces
	(
		(18 19 39 38)
		(19 8 28 39)
		(8 9 29 28)
	);
 }
 Outlet
 {
 	type patch;
	faces
	(
		(12 13 33 32)
		(13 14 34 33)
		(14 15 35 34)
	);
 }
 Top
 {
 	type patch;
	faces
	(
		(9 10 30 29)
		(10 11 31 30)
		(11 12 32 31)
	);
 }
 Bottom
 {
 	type patch;
	faces
	(
		(15 16 36 35)
		(16 17 37 36)
		(17 18 38 37)
	);
 }
 FrontBack
 {
 	type empty;
	faces
	(
		(0 1 5 4)
		(1 2 6 5)
		(2 6 7 3)
		(3 7 4 0)
		(5 8 9 10)
		(4 5 10 11)
		(13 4 11 12)
		(14 7 4 13)
		(14 15 16 7)
		(16 17 6 7)
		(17 18 19 6)
		(6 19 8 5)

		(20 21 25 24)
		(21 22 26 25)
		(22 26 27 23)
		(23 27 24 20)
		(25 28 29 30)
		(24 25 30 31)
		(33 24 31 32)
		(34 27 24 33)
		(34 35 36 27)
		(36 37 26 27)
		(37 38 39 26)
		(26 39 28 25)
	);
 }

 InterfaceFluid
 {
 	type 		mappedWall;
	sampleMode	nearestPatchFace;
	sampleRegion	solid;
	samplePatch	InterfaceSolid;
	faces
	(
		(0 1 21 20)
		(1 2 22 21)
		(2 3 23 22)
		(3 0 20 23)
	);
 }
);

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