diff --git a/DiffractionGratings/grating3D.pro b/DiffractionGratings/grating3D.pro index df82f2783c649452e79ad07a62665569a8e3de91..06f854976913d30ead3ff08de062394044a33e3f 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 3fd4f288b861c223a7a2e7d08f1a20bed0340761..3ba4dce16ab5c30c278b3afd93b388cc317c65bb 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} },