diff --git a/DiffractionGratings/grating3D.geo b/DiffractionGratings/grating3D.geo
index 28ab19d493c2715aa84edbbecd3ef5db32989eaf..a7b2a98e3e04de273b21eba0d6543b4653d18952 100644
--- a/DiffractionGratings/grating3D.geo
+++ b/DiffractionGratings/grating3D.geo
@@ -193,7 +193,7 @@ lc_PML = lambda_m/(paramaille*.5);
 list_lc(0) = lc_PML;
 For k In {1:6}
   n_L~{k}  = Sqrt(Abs(eps_re_L~{k}));
-  lc_L~{k} = lambda_m/(paramaille*n_L~{k});
+  lc_L~{k} = lambda_m/(paramaille*n_L~{k})/refine_mesh_L~{k};
   list_lc(7-k) = lc_L~{k};
 EndFor
 list_lc(7) = lc_PML;
diff --git a/DiffractionGratings/grating3D.pro b/DiffractionGratings/grating3D.pro
index 10d6a25e9dd75cc2b2ea40d0fc2b6b941c1d473f..8ca04fb612a82a55620ae6001d5128f57fbf2c13 100644
--- a/DiffractionGratings/grating3D.pro
+++ b/DiffractionGratings/grating3D.pro
@@ -122,13 +122,11 @@ Function{
   
 	epsr[PMLtop]  = Re[epsr1[]]*TensorDiag[sz[]*sy/sx,sx*sz[]/sy,sx*sy/sz[]];
 	mur[PMLtop]   =             TensorDiag[sz[]*sy/sx,sx*sz[]/sy,sx*sy/sz[]];
-	epsr[PMLbot]  = Re[epsr2[]]*TensorDiag[sz[]*sy/sx,sx*sz[]/sy,sx*sy/sz[]];
-	mur[PMLbot]   =             TensorDiag[sz[]*sy/sx,sx*sz[]/sy,sx*sy/sz[]];
+  epsr[PMLbot]  = Re[epsr2[]]*TensorDiag[sz[]*sy/sx,sx*sz[]/sy,sx*sy/sz[]];
+  mur[PMLbot]   =             TensorDiag[sz[]*sy/sx,sx*sz[]/sy,sx*sy/sz[]];
 
-	// epsr[PMLtop]     = TensorDiag[sz_bermutop[]*sy/sx,sx*sz_bermutop[]/sy,sx*sy/sz_bermutop[]];
-	// mur[PMLtop]      = TensorDiag[sz_bermutop[]*sy/sx,sx*sz_bermutop[]/sy,sx*sy/sz_bermutop[]];
-	// epsr[PMLbot]     = TensorDiag[sz_bermubot[]*sy/sx,sx*sz_bermubot[]/sy,sx*sy/sz_bermubot[]];
-	// mur[PMLbot]      = TensorDiag[sz_bermubot[]*sy/sx,sx*sz_bermubot[]/sy,sx*sy/sz_bermubot[]];
+  // epsr[PMLbot] = epsr2[];
+  // mur[PMLbot]  = TensorDiag[1,1,1];
 	
 	epsr_annex[PMLbot]       = epsr[];
 	epsr_annex[PMLtop]       = epsr[];
@@ -405,18 +403,9 @@ PostOperation {
         Print [ Poy_tot , OnPlane { {-period_x/2,0,hh_L_6} {period_x/2,0,hh_L_6} {-period_x/2,0,hh_L_1+thick_L_1} } {npts_interpX,npts_interpZTot} , File StrCat[myDir,"Poy_tot_cut_Y=0.pos"], Name "Poy_tot_cut_Y=0"];
         Print [ Poy_tot , OnPlane { {0,-period_y/2,hh_L_6} {0,period_y/2,hh_L_6} {0,-period_y/2,hh_L_1+thick_L_1} } {npts_interpY,npts_interpZTot} , File StrCat[myDir,"Poy_tot_cut_X=0.pos"], Name "Poy_tot_cut_X=0"];
       EndIf
-      // // For DEBUG
-      Print [ H1y , OnElementsOf Omega, File StrCat[myDir,"H1y.pos"]];
-      Print [ Etot , OnElementsOf Omega, File StrCat[myDir,"Etot.pos"]];
-      // Print [ epsr_xx , OnElementsOf Omega, File StrCat[myDir,"epsr_xx.pos"]];
-      // Print [ epsr_0xx , OnElementsOf Scat, File StrCat[myDir,"epsr_xx.pos"]];
-      // Print [ Ecm , OnElementsOf Omega_plot, File StrCat[myDir,"Ecm.pos"]];
-      // Print [ E1, OnElementsOf Omega_plot, File StrCat[myDir,"E1.pos"]];
-      // Print [ Damp_pml_top, OnElementsOf PMLtop, File StrCat[myDir,"Damp_pml_top.pos"]];
-      // For i In {0:nb_slice-1}
-      //   Print [ Etot , OnPlane { {-period_x/2+small_delta,-period_y/2+small_delta,zcut_sub~{i}} {-period_x/2+small_delta,period_y/2-small_delta,zcut_sub~{i}} {period_x/2-small_delta,-period_y/2+small_delta,zcut_sub~{i}} } {ninterv_integ,ninterv_integ} , File StrCat[myDir,> "./Views/Etot_XYcut.out",Format Table];
-      //   Print [ Edif , OnPlane { {-period_x/2+small_delta,-period_y/2+small_delta,zcut_sup~{i}} {-period_x/2+small_delta,period_y/2-small_delta,zcut_sup~{i}} {period_x/2-small_delta,-period_y/2+small_delta,zcut_sup~{i}} } {ninterv_integ,ninterv_integ} , File StrCat[myDir,> "./Views/Edif_XYcut.out",Format Table];
-      // EndFor
+      // // // For DEBUG
+      // Print [ H1y , OnElementsOf Omega, File StrCat[myDir,"H1y.pos"]];
+      // Print [ Etot , OnElementsOf Omega, File StrCat[myDir,"Etot.pos"]];
       For k In {2:6}
         Print[ Abs_L~{k}[L~{k}], OnGlobal, File > StrCat[myDir,Sprintf["temp-Q_L_%g.txt",k]], Format Table ];
       EndFor
diff --git a/DiffractionGratings/grating3D_data_2Dlamellar.geo b/DiffractionGratings/grating3D_data_2Dlamellar.geo
index 84257371523303dd55d32efa8ea042ebb48268b2..d43b245635e0e465a5ec07b0151384eb3f71758b 100644
--- a/DiffractionGratings/grating3D_data_2Dlamellar.geo
+++ b/DiffractionGratings/grating3D_data_2Dlamellar.geo
@@ -14,10 +14,10 @@ DefineConstant[
     period_y      = {20    , Name StrCat[pp2,"/2Y period [nm]"]},
     thick_L_1     = {200    , Name StrCat[pp2,"/3thickness layer 1 [nm] (superstrate)"]},
     thick_L_2     = {200    , Name StrCat[pp2,"/4thickness layer 2 [nm]"]},
-    thick_L_3     = {1050  , Name StrCat[pp2,"/5thickness layer 3 [nm]"]},
-    thick_L_4     = {250    , Name StrCat[pp2,"/6thickness layer 4 [nm]"]},
-    thick_L_5     = {250    , Name StrCat[pp2,"/7thickness layer 5 [nm]"]},
-    thick_L_6     = {500    , Name StrCat[pp2,"/8thickness layer 6 [nm] (substrate)"]},
+    thick_L_3     = {1050   , Name StrCat[pp2,"/5thickness layer 3 [nm]"]},
+    thick_L_4     = {50     , Name StrCat[pp2,"/6thickness layer 4 [nm]"]},
+    thick_L_5     = {50     , Name StrCat[pp2,"/7thickness layer 5 [nm]"]},
+    thick_L_6     = {100    , Name StrCat[pp2,"/8thickness layer 6 [nm] (substrate)"]},
 
     tag_geom      = {  7      , Name StrCat[pp3,"/0Shape"], Choices {1="Pyramid",2="Cylindrical Hole",3="Torus",4="HalfEllipspoid",5="Checkerboard",6="bi-sinusoidal",7="2D lamellar"}},
     rx            = {500      , Name StrCat[pp3,"/1rx"]},
@@ -46,17 +46,17 @@ DefineConstant[
     eps_re_L_6    = {-44.9757 , Name StrCat[pp4,"/layer 6: real part of relative permittivity"]},
     eps_im_L_6    = {2.9524   , Name StrCat[pp4,"/layer 6: imag part of relative permittivity"]},
     
-    paramaille    = {8         , Name StrCat[pp5,"/1Number of mesh elements per wavelength [-]"]},
-    scat_lc       = {10        , Name StrCat[pp5,"/2Scatterer absolute mesh size [nm]"]},
+    paramaille    = {15         , Name StrCat[pp5,"/1Number of mesh elements per wavelength [-]"]},
+    lc_scat       = {30        , Name StrCat[pp5,"/2Scatterer absolute mesh size [nm]"]},
     PML_top       = {lambda0   , Name StrCat[pp5,"/4PML top thickness [nm]"]},
-    PML_bot       = {lambda0/10, Name StrCat[pp5,"/5PML bot thickness [nm]"]},
+    PML_bot       = {lambda0   , Name StrCat[pp5,"/5PML bot thickness [nm]"]},
     Nmax          = {1         , Name StrCat[pp5,"/6Number of non specular order to output [-]"]},
-    refine_mesh_L1= {1         , Name StrCat[pp5,"/7refine layers/1refine mesh layer 1 [-]"]},
-    refine_mesh_L2= {1         , Name StrCat[pp5,"/7refine layers/2refine mesh layer 2 [-]"]},
-    refine_mesh_L3= {1         , Name StrCat[pp5,"/7refine layers/3refine mesh layer 3 [-]"]},
-    refine_mesh_L4= {2         , Name StrCat[pp5,"/7refine layers/4refine mesh layer 4 [-]"]},
-    refine_mesh_L5= {2         , Name StrCat[pp5,"/7refine layers/5refine mesh layer 5 [-]"]},
-    refine_mesh_L6= {2         , Name StrCat[pp5,"/7refine layers/6refine mesh layer 6 [-]"]},
+    refine_mesh_L_1= {1         , Name StrCat[pp5,"/7refine layers/1refine mesh layer 1 [-]"]},
+    refine_mesh_L_2= {1         , Name StrCat[pp5,"/7refine layers/2refine mesh layer 2 [-]"]},
+    refine_mesh_L_3= {1         , Name StrCat[pp5,"/7refine layers/3refine mesh layer 3 [-]"]},
+    refine_mesh_L_4= {0.5       , Name StrCat[pp5,"/7refine layers/4refine mesh layer 4 [-]"]},
+    refine_mesh_L_5= {0.5       , Name StrCat[pp5,"/7refine layers/5refine mesh layer 5 [-]"]},
+    refine_mesh_L_6= {0.5       , Name StrCat[pp5,"/7refine layers/6refine mesh layer 6 [-]"]},
     
     InterpSampling     = { 30   , Name StrCat[pp6,"/0Interpolation grid step [nm]"]},
     Flag_interp_cubic  = { 0    , Name StrCat[pp6,"/1Interpolate on cubic grid?"], Choices {0,1} },