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

// Geometry of Tank and T-Baffle Details

// Lx = Length of tank
// Ly = Breadth of tank
// Lz = Height of tank
// c  = factor multiplier to height i.e. for fill level of tank = h/Lz
// h  = c * Lz  // Fill level of tank
// k  = factor multiplier to fill level i.e. for web height of T baffle = $hw/Lz
// hw = k*h // height of web of T Baffle
// hf = height of flange of T Baffle
// bw = breadth of web of T Baffle
// bf = breadth of flange of T Baffle
// dely = horizontal position of baffle with respect to centroid of tank

 // 2D Domain representation of T baffle in tank model ( Y-Z Plane ) - baffle in centre of the tank
 
//                                         Ly
//  <-------------------------------------------------------------------------------->
//   _________________________________________________________________________________     
//  |                  |                                           |                  |    ^
//  |                  |                                           |                  |    | 
//  |                  |                                           |                  |    |
//  |       //3        |                     //4                   |         //5      |    |
//  |                  |                                           |                  |    |
//  |                  |                                           |                  |    |
//  |__________________|___________________________________________|__________________|    |
//  |         //2      |                   flange                  |         //6      |    |Lz
//  |__________________|___________________________________________|_ ________________|    |
//  |                  |                   | |                     |                  |    |
//  |                  |                   | |                     |                  |    |
//  |        //1       |        //0        |w|            //8      |         //7      |    |       
//  |                  |                   |e|                     |                  |    |
//  |                  |                   |b|                     |                  |    |
//  |__________________|___________________|_|_____________________|__________________|    v
//
                                                                                          
convertToMeters 1;

Lx  0.0046 ;
Ly  0.92 ;
Lz  0.62 ;
c   0.5 ;
h   0.31; //#calc"$c * $Lz" ;
k   1.5 ;
hw  0.465; //#calc"$k * $h"  ;
hf  0.01 ;
bw  0.01 ;
bf  0.46 ;
dely  0;
nx	15;	

ny  #calc "1*$nx";	
nz  #calc "1*$nx"; 
      
nx1  #calc "2*$nx";
ny1  #calc "3*$ny";  

x1 #calc "-0.5*$Lx";
x2 #calc "0.5*$Lx";

y1 #calc "-0.5*$Ly";
y2 #calc "-0.5*$bf";
y3 #calc "-0.5*$bw";
y4 #calc "0.5*$bf";
y5 #calc "0.5*$bw";
y6 #calc "0.5*$Ly";
y7 #calc "$y2+$dely";
y8 #calc "$y3+$dely";
y9 #calc "$y5+$dely";
y10 #calc "$y4+$dely";

z1 #calc "-0.5*$Lz";
z2 #calc "0.5*$Lz";
z3 #calc "$z1+$hw";
z4 #calc "$z3+$hf";


// tank initial position
vertices
(

    ( $x1 $y1 $z1 ) // Point 0
    ( $x1 $y1 $z3 ) // Point 1
    ( $x1 $y1 $z4 ) // Point 2
    ( $x1 $y1  $z2 )  // Point 3
    ( $x1 $y7 $z1 ) // Point 4
    ( $x1 $y7 $z3 ) // Point 5
    ( $x1 $y7 $z4 ) // Point 6
    ( $x1 $y7 $z2 ) // Point 7
    ( $x1 $y8 $z1 ) // Point 8
    ( $x1 $y8 $z3 ) // Point 9
    ( $x1 $y9 $z1 ) // Point 10
    ( $x1 $y9 $z3 ) // Point 11
    ( $x1 $y10 $z1 ) // Point 12
    ( $x1 $y10 $z3 ) // Point 13
    ( $x1 $y10 $z4 ) // Point 14
    ( $x1 $y10 $z2 ) // Point 15
    ( $x1 $y6 $z1 ) // Point 16
    ( $x1 $y6 $z3 ) // Point 17
    ( $x1 $y6 $z4 ) // Point 18
    ( $x1 $y6 $z2 ) // Point 19

    ( $x2 $y1 $z1 ) // Point 20
    ( $x2 $y1 $z3 ) // Point 21
    ( $x2 $y1 $z4 ) // Point 22
    ( $x2 $y1  $z2 )  // Point 23
    ( $x2 $y7 $z1 ) // Point 24
    ( $x2 $y7 $z3 ) // Point 25
    ( $x2 $y7 $z4 ) // Point 26
    ( $x2 $y7 $z2 ) // Point 27
    ( $x2 $y8 $z1 ) // Point 28
    ( $x2 $y8 $z3 ) // Point 29
    ( $x2 $y9 $z1 ) // Point 30
    ( $x2 $y9 $z3 ) // Point 31
    ( $x2 $y10 $z1 ) // Point 32
    ( $x2 $y10 $z3 ) // Point 33
    ( $x2 $y10 $z4 ) // Point 34
    ( $x2 $y10 $z2 ) // Point 35
    ( $x2 $y6 $z1 ) // Point 36
    ( $x2 $y6 $z3 ) // Point 37
    ( $x2 $y6 $z4 ) // Point 38
    ( $x2 $y6 $z2 ) // Point 39    

);

blocks
(
     //block0
    hex (4 8 9 5 24 28 29 25)
    ($nx $ny $nz)
    simpleGrading (1 1 1)

     //block1
    hex (0 4 5 1 20 24 25 21)
    ($nx $ny $nz)
    simpleGrading (1 1 1)
    
    //block2
    hex (1 5 6 2 21 25 26 22)
     ($nx 5 $nz)
    simpleGrading (1 1 1)
    
    //block3
    hex (2 6 7 3 22 26 27 23)
     ($nx $ny1 $nz)
    simpleGrading (1 1 1)
    
    //block4
    hex (6 14 15 7 26 34 35 27)
     ($nx1 $ny1 $nz)
    simpleGrading (1 1 1)
    
    //block5
    hex (14 18 19 15 34 38 39 35)
     ($nx $ny1 $nz)
    simpleGrading (1 1 1)
    
    //block6
    hex (13 17 18 14 33 37 38 34)
     ($nx 5 $nz)
    simpleGrading (1 1 1)
    
    //block7
    hex (12 16 17 13 32 36 37 33)
     ($nx $ny $nz)
    simpleGrading (1 1 1)
    
    //block8
    hex (10 12 13 11 30 32 33 31)
     ($nx $ny $nz)
    simpleGrading (1 1 1)
);

patches
(
    patch walls
    (
        // lower walls
        (0 4 24 20)
        (4 8 28 24)
        //(8 10 30 28)
        (10 12 32 30)
        (12 16 36 32)
        // left walls
        (0 1 21 20)
        (1 2 22 21)
        (2 3 23 22)
        // right walls
        (16 17 37 36)
        (17 18 38 37)
        (18 19 39 38)
        // upper walls
        (3 7 27 23)
        (7 15 35 27)
        (15 19 39 35)
        // baffle web walls
        (8 9 29 28)
        (10 11 31 30)
        //baffle flange walls
        (5 9 29 25)
        (5 6 26 25)
        (6 14 34 26)
        (13 14 34 33)
        (11 13 33 31)
    )

    empty front
    (
        (0 4 5 1)
        (1 5 6 2)
        (2 6 7 3)
        (4 8 9 5)
        (6 14 15 7)
        (10 12 13 11)
        (12 16 17 13)
        (13 17 18 14)
        (14 18 19 15)

    )

    empty back
    (

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

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