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

convertToMeters 0.001;	// From mm to m

aLx   40.00000000000000000000;	// x left
bLx  -40.00000000000000000000;	// x right
aLy  0.05;	// y - L/2 - left
bLy -0.05;	// y - L/2 - right

h0z 0.0;		// z = 0
hPz 10;		// z = h_P Positive electrode upper interface.
hEz 20;		// z = h_E Electrolyte upper interface.
hNz 60;		// z = h_N Negative electrode upper interface.

nLx 1600;	        // cells on x-direction
nP  256;		// number of vertical cells on Positive electrode
nE  128;		// number of vertical cells on Electrolyte
nN  256;               // number of vertical cells on Negative electrode

vertices
(
  ($aLx $aLy $h0z)     // vertex 0
  ($bLx $aLy $h0z)     // vertex 1
  ($bLx $bLy $h0z)     // vertex 2
  ($aLx $bLy $h0z)     // vertex 3

  ($aLx $aLy $hPz)     // vertex 4
  ($bLx $aLy $hPz)     // vertex 5
  ($bLx $bLy $hPz)     // vertex 6
  ($aLx $bLy $hPz)     // vertex 7

  ($aLx $aLy $hEz)     // vertex 8
  ($bLx $aLy $hEz)     // vertex 9
  ($bLx $bLy $hEz)     // vertex 10
  ($aLx $bLy $hEz)     // vertex 11

  ($aLx $aLy $hNz)     // vertex 12
  ($bLx $aLy $hNz)     // vertex 13
  ($bLx $bLy $hNz)     // vertex 14
  ($aLx $bLy $hNz)     // vertex 15
);

blocks
(
  hex (0 1 2 3 4 5 6 7)         ($nLx 1 $nP)
   simpleGrading (
      (
   (0.1 0.15 2)
   (0.8 0.7 1)
   (0.1 0.15 0.5)
   )	// Along x
   (1) 	// Along y
   (
   (0.1 0.20 2)
   (0.4 0.225 1.5)
   (0.4 0.275 0.75)
   (0.1 0.30 0.5)
   )
   )   // Along z
  hex (4 5 6 7 8 9 10 11)       ($nLx 1 $nE )
   simpleGrading (
      (
   (0.1 0.15 2)
   (0.8 0.7 1)
   (0.1 0.15 0.5)
   ) 	// Along x
   (1) 	// Along y
   (
   (0.5 0.5 1.6)
   (0.5 0.5 0.625)
   )
   )   // Along z
  hex (8 9 10 11 12 13 14 15 )  ($nLx 1 $nN)
    simpleGrading (
      (
   (0.1 0.15 2)
   (0.8 0.7 1)
   (0.1 0.15 0.5)
   ) 	// Along x
   (1) 	// Along y
   (
   (0.05 0.15 2)
   (0.45 0.40 1.5)
   (0.45 0.35 0.75)
   (0.05 0.10 0.5)
   )
   )   // Along z
);

edges
(
);
boundary
(
  zmFace
  {
    type wall;
    faces
    (
      (0 1 2 3)
    );
  }
  zpFace
  {
    type wall;
    faces
    (
      (12 13 14 15)
    );
  }
  xmFace
  {
    type wall;
    faces
    (
      (1  2  6  5)
      (5  6 10  9)
      (9 10 14 13)
    );
  }
  xpFace
  {
    type wall;
    faces
    (
      (0  3  7  4)
      (4  7 11  8)
      (8 11 15 12)
    );
  }
  ypFace
  {
    type empty;
    faces
    (
      (0 4 5 1)
      (4 8 9 5)
      (8 12 13 9)
    );
  }
  ymFace
  {
    type empty;
    faces
    (
      (3 7 6 2)
      (7 11 10 6)
      (11 15 14 10)
    );
  }
);
mergePatchPairs
(
);

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