From e31fb65bfe6c571b14f9ced9b97669073e65d21c Mon Sep 17 00:00:00 2001
From: Guillaume Demesy <guillaume.demesy@fresnel.fr>
Date: Mon, 25 Nov 2019 13:23:05 +0100
Subject: [PATCH] testlink facets

---
 DiffractionGratings/grating3D.pro             | 22 ++++++++++---------
 .../grating3D_data_2Dlamellar.geo             | 18 +++++++--------
 2 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/DiffractionGratings/grating3D.pro b/DiffractionGratings/grating3D.pro
index df82f27..06f8549 100644
--- a/DiffractionGratings/grating3D.pro
+++ b/DiffractionGratings/grating3D.pro
@@ -31,7 +31,8 @@ Group {
 
   
 	SurfDirichlet  = Region[{401,402}];
-  SurfBloch      = Region[{SurfBlochYm,SurfBlochYp}];
+  SurfBloch      = Region[{}];
+  // SurfBloch      = Region[{SurfBlochXm,SurfBlochXp,SurfBlochYm,SurfBlochYp}];
 
   L_1 = Region[{L_1_temp,SurfIntTop}];
   L_6 = Region[{L_6_temp,SurfIntBot}];
@@ -214,8 +215,8 @@ Constraint {
   }
   { Name BlochX;
     Case {
-    // { Region SurfBlochXp; Type LinkCplx ; RegionRef SurfBlochXm;
-    //   Coefficient dephX[]; Function Vector[$X-period_x,$Y,$Z] ; }
+    { Region SurfBlochXp; Type LinkCplx ; RegionRef SurfBlochXm;
+      Coefficient dephX[]; Function Vector[$X-period_x,$Y,$Z] ; }
     }
   }
   { Name BlochY;
@@ -269,7 +270,7 @@ FunctionSpace {
       If(oi==2)
         { Name sn3; NameOfCoef un3; Function BF_Edge_3F_b; Support Region[Omega]; Entity FacetsOf[Omega, Not SurfBloch]; }
         { Name sn4; NameOfCoef un4; Function BF_Edge_3F_c; Support Region[Omega]; Entity FacetsOf[Omega, Not SurfBloch]; }
-        { Name sn5; NameOfCoef un5; Function BF_Edge_4E  ; Support Region[Omega]; Entity EdgesOf[Omega, Not SurfBloch]; }
+        { Name sn5; NameOfCoef un5; Function BF_Edge_4E  ; Support Region[Omega]; Entity  EdgesOf[Omega, Not SurfBloch]; }
       EndIf
     }
     Constraint {
@@ -280,14 +281,14 @@ FunctionSpace {
       { NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochY; }
       { NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint Dirichlet; }
       If(oi==2)
-        // { NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochX; }
-        // { NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochY; }
+        { NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochX; }
+        { NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochY; }
         { NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint Dirichlet; }
-        // { NameOfCoef un4; EntityType FacetsOf ; NameOfConstraint BlochX; }
-        // { NameOfCoef un4; EntityType FacetsOf ; NameOfConstraint BlochY; }
+        { NameOfCoef un4; EntityType FacetsOf ; NameOfConstraint BlochX; }
+        { NameOfCoef un4; EntityType FacetsOf ; NameOfConstraint BlochY; }
         { NameOfCoef un4; EntityType FacetsOf ; NameOfConstraint Dirichlet; }
-        // { NameOfCoef un5; EntityType EdgesOf ; NameOfConstraint BlochX; }
-        // { NameOfCoef un5; EntityType EdgesOf ; NameOfConstraint BlochY; }
+        { NameOfCoef un5; EntityType EdgesOf ; NameOfConstraint BlochX; }
+        { NameOfCoef un5; EntityType EdgesOf ; NameOfConstraint BlochY; }
         { NameOfCoef un5; EntityType EdgesOf ; NameOfConstraint Dirichlet; }
       EndIf
     }
@@ -414,6 +415,7 @@ PostOperation {
       // Print [ epsr_xx , OnElementsOf Omega, File StrCat[myDir,"epsr_xx.pos"]];
       // Print [ H1x , OnElementsOf Omega, File StrCat[myDir,"H1x.pos"]];
       // Print [ Etot , OnElementsOf Omega, File StrCat[myDir,"Etot.pos"]];
+      Print [ u , OnElementsOf Omega, File StrCat[myDir,"u.pos"]];
       // Print [ Htotx , OnElementsOf Omega, File StrCat[myDir,"Htotx.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 ];
diff --git a/DiffractionGratings/grating3D_data_2Dlamellar.geo b/DiffractionGratings/grating3D_data_2Dlamellar.geo
index 3fd4f28..3ba4dce 100644
--- a/DiffractionGratings/grating3D_data_2Dlamellar.geo
+++ b/DiffractionGratings/grating3D_data_2Dlamellar.geo
@@ -10,8 +10,8 @@ DefineConstant[
     thetadeg      = {30    , Name StrCat[pp1,"/2theta0 [deg]"]},
     phideg        = {90     , Name StrCat[pp1,"/3phi0 [deg]"]},
     psideg        = {0     , Name StrCat[pp1,"/4psi0 [deg]"]},
-    period_x      = {10    , Name StrCat[pp2,"/1X period [nm]"]},
-    period_y      = {1000  , Name StrCat[pp2,"/2Y period [nm]"]},
+    period_x      = {100    , Name StrCat[pp2,"/1X period [nm]"]},
+    period_y      = {100  , 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]"]},
@@ -48,17 +48,17 @@ DefineConstant[
      
     og            = {0          , Name StrCat[pp5,"/0geometrical order [-]"]  , Choices {0="1",1="2"} },
     oi            = {1          , Name StrCat[pp5,"/0interpolation order [-]"], Choices {0="1",1="2"} },
-    paramaille    = {10         , Name StrCat[pp5,"/1Number of mesh elements per wavelength [-]"]},
-    lc_scat       = {20         , Name StrCat[pp5,"/2Scatterer absolute mesh size [nm]"]},
-    PML_top       = {lambda0*1  , Name StrCat[pp5,"/4PML top thickness [nm]"]},
-    PML_bot       = {lambda0/5  , Name StrCat[pp5,"/5PML bot thickness [nm]"]},
+    paramaille    = {0.1         , Name StrCat[pp5,"/1Number of mesh elements per wavelength [-]"]},
+    lc_scat       = {500         , Name StrCat[pp5,"/2Scatterer absolute mesh size [nm]"]},
+    PML_top       = {100  , Name StrCat[pp5,"/4PML top thickness [nm]"]},
+    PML_bot       = {100  , Name StrCat[pp5,"/5PML bot thickness [nm]"]},
     Nmax          = {1          , Name StrCat[pp5,"/6Number of non specular order to output [-]"]},
     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.3       , Name StrCat[pp5,"/7refine layers/4refine mesh layer 4 [-]"]},
-    refine_mesh_L_5= {0.3       , Name StrCat[pp5,"/7refine layers/5refine mesh layer 5 [-]"]},
-    refine_mesh_L_6= {0.3       , Name StrCat[pp5,"/7refine layers/6refine mesh layer 6 [-]"]},
+    refine_mesh_L_4= {1       , Name StrCat[pp5,"/7refine layers/4refine mesh layer 4 [-]"]},
+    refine_mesh_L_5= {1       , Name StrCat[pp5,"/7refine layers/5refine mesh layer 5 [-]"]},
+    refine_mesh_L_6= {1       , 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} },
-- 
GitLab