Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
models
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
documentation
models
Commits
f53eba2d
Commit
f53eba2d
authored
6 years ago
by
Guillaume Demesy
Browse files
Options
Downloads
Patches
Plain Diff
second order interp + elements
parent
24b02c97
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
DiffractionGratings/grating2D.pro
+33
-15
33 additions, 15 deletions
DiffractionGratings/grating2D.pro
DiffractionGratings/grating2D_data.geo
+15
-13
15 additions, 13 deletions
DiffractionGratings/grating2D_data.geo
with
48 additions
and
28 deletions
DiffractionGratings/grating2D.pro
+
33
−
15
View file @
f53eba2d
...
...
@@ -256,14 +256,13 @@ Function{
source_chi_r
[]
=
k0
^
2
*
(
chi
[]
-
chi_annex
[])
*
ur
[];
source_chi_i
[]
=
k0
^
2
*
(
chi
[]
-
chi_annex
[])
*
ui
[];
EndIf
}
}
Constraint
{
{
Name
Bloch
;
Case
{
{
Region
SurfBlochRight
;
Type
LinkCplx
;
RegionRef
SurfBlochLeft
;
Coefficient
deph
[];
Function
Vector
[
$
X
-
d
,
$
Y
,
$
Z
]
;
Coefficient
deph
[];
Function
Vector
[
$
X
-
d
,
$
Y
,
$
Z
]
;
}
}
}
...
...
@@ -283,17 +282,32 @@ Jacobian {
}
Integration
{
{
Name
Int_1
;
Case
{
{
Type
Gauss
;
Case
{
{
GeoElement
Point
;
NumberOfPoints
1
;
}
{
GeoElement
Line
;
NumberOfPoints
4
;
}
{
GeoElement
Triangle
;
NumberOfPoints
12
;
}
If
(
Flag_o2_geom
==
0
)
{
Name
Int_1
;
Case
{
{
Type
Gauss
;
Case
{
{
GeoElement
Point
;
NumberOfPoints
1
;
}
{
GeoElement
Line
;
NumberOfPoints
4
;
}
{
GeoElement
Triangle
;
NumberOfPoints
12
;
}
}
}
}
}
}
EndIf
If
(
Flag_o2_geom
==
1
)
{
Name
Int_1
;
Case
{
{
Type
Gauss
;
Case
{
{
GeoElement
Point
;
NumberOfPoints
1
;
}
{
GeoElement
Line2
;
NumberOfPoints
4
;
}
{
GeoElement
Triangle2
;
NumberOfPoints
12
;
}
}
}
}
}
EndIf
}
FunctionSpace
{
...
...
@@ -301,15 +315,19 @@ FunctionSpace {
BasisFunction
{
{
Name
sn
;
NameOfCoef
un
;
Function
BF_Node
;
Support
Region
[
Omega
];
Entity
NodesOf
[
Omega
];
}
{
Name
sn2
;
NameOfCoef
un2
;
Function
BF_Node_2E
;
Support
Region
[
Omega
];
Entity
EdgesOf
[
Omega
];
}
// { Name un3; NameOfCoef un3; Function BF_Node_2F; Support Region[Omega]; Entity FacetsOf[Omega]; }
// { Name un4; NameOfCoef un4; Function BF_Node_3E; Support Region[Omega]; Entity EdgesOf[Omega]; }
// { Name un5; NameOfCoef un5; Function BF_Node_3F; Support Region[Omega]; Entity FacetsOf[Omega]; }
If
(
Flag_o2_interp
==
1
)
{
Name
un3
;
NameOfCoef
un3
;
Function
BF_Node_2F
;
Support
Region
[
Omega
];
Entity
FacetsOf
[
Omega
];
}
{
Name
un4
;
NameOfCoef
un4
;
Function
BF_Node_3E
;
Support
Region
[
Omega
];
Entity
EdgesOf
[
Omega
];
}
{
Name
un5
;
NameOfCoef
un5
;
Function
BF_Node_3F
;
Support
Region
[
Omega
];
Entity
FacetsOf
[
Omega
];
}
EndIf
}
Constraint
{
{
NameOfCoef
un
;
EntityType
NodesOf
;
NameOfConstraint
Bloch
;
}
{
NameOfCoef
un2
;
EntityType
EdgesOf
;
NameOfConstraint
Bloch
;
}
// { NameOfCoef un3; EntityType EdgesOf ; NameOfConstraint Bloch; }
If
(
Flag_o2_interp
==
1
)
{
NameOfCoef
un3
;
EntityType
EdgesOf
;
NameOfConstraint
Bloch
;
}
EndIf
}
}
}
...
...
This diff is collapsed.
Click to expand it.
DiffractionGratings/grating2D_data.geo
+
15
−
13
View file @
f53eba2d
...
...
@@ -42,7 +42,7 @@ DefineConstant[
h_sup
=
{
300
,
Name
StrCat
[
pp01
,
"4superstrate thickness [nm]"
]
,
Highlight
Str
[
colorpp01
],
Closed
close_menu
},
Flag_glue_rod_subs
=
{
0
,
Name
StrCat
[
pp02
,
"0glue rod to substrate?"
]
,
Choices
{
0
,
1
}
}
,
Shape_rod
=
{
1
,
Name
StrCat
[
pp02
,
"1rod section shape"
]
,
Choices
{
0
=
"Trapezoidal"
,
1
=
"Ellipsoidal"
}
}
,
Shape_rod
=
{
1
,
Name
StrCat
[
pp02
,
"1rod section shape"
]
,
Choices
{
0
=
"Trapezoidal"
,
1
=
"Ellipsoidal"
}
}
,
N_rods
=
{
3
,
Name
StrCat
[
pp02
,
"2number of rods [-]"
]
,
Highlight
Str
[
colorpp02
],
Closed
close_menu
},
w_rod_bot
=
{
200
,
Name
StrCat
[
pp02
,
"3bottom rod width if trapz rod OR x-diameter if elliptic rod [nm]"
]
,
Highlight
Str
[
colorpp02
],
Closed
close_menu
},
w_rod_top
=
{
500
,
Name
StrCat
[
pp02
,
"4top rod width if trapz rod [nm]"
]
,
Highlight
Str
[
colorpp02
],
Closed
close_menu
},
...
...
@@ -57,8 +57,8 @@ DefineConstant[
flag_mat_2
=
{
6
,
Name
StrCat
[
pp1
,
"0Dispersive materials/1material deposit layer"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
2
=
"Ag (palik)"
,
3
=
"Al (palik)"
,
4
=
"Au (johnson)"
,
5
=
"Nb2O5"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
10
=
"Si"
,
11
=
"ITO"
,
12
=
"Cu (palik)"
,
13
=
"custom 1 (lossless)"
,
14
=
"custom 2"
,
15
=
"custom 3"
}
},
flag_mat_3
=
{
6
,
Name
StrCat
[
pp1
,
"0Dispersive materials/2material embedding rod"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
2
=
"Ag (palik)"
,
3
=
"Al (palik)"
,
4
=
"Au (johnson)"
,
5
=
"Nb2O5"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
10
=
"Si"
,
11
=
"ITO"
,
12
=
"Cu (palik)"
,
13
=
"custom 1 (lossless)"
,
14
=
"custom 2"
,
15
=
"custom 3"
}
},
flag_mat_4
=
{
2
,
Name
StrCat
[
pp1
,
"0Dispersive materials/3material rods"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
2
=
"Ag (palik)"
,
3
=
"Al (palik)"
,
4
=
"Au (johnson)"
,
5
=
"Nb2O5"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
10
=
"Si"
,
11
=
"ITO"
,
12
=
"Cu (palik)"
,
13
=
"custom 1 (lossless)"
,
14
=
"custom 2"
,
15
=
"custom 3"
}
},
flag_mat_5
=
{
1
,
Name
StrCat
[
pp1
,
"0Dispersive materials/4material cover layer"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
2
=
"Ag (palik)"
,
3
=
"Al (palik)"
,
4
=
"Au (johnson)"
,
5
=
"Nb2O5"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
10
=
"Si"
,
11
=
"ITO"
,
12
=
"Cu (palik)"
,
13
=
"custom 1 (lossless)"
,
14
=
"custom 2"
,
15
=
"custom 3"
}
},
flag_mat_6
=
{
0
,
Name
StrCat
[
pp1
,
"0Dispersive materials/5material superstrate"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
13
=
"custom 1 (lossless)"
}
},
flag_mat_5
=
{
1
,
Name
StrCat
[
pp1
,
"0Dispersive materials/4material cover layer"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
2
=
"Ag (palik)"
,
3
=
"Al (palik)"
,
4
=
"Au (johnson)"
,
5
=
"Nb2O5"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
10
=
"Si"
,
11
=
"ITO"
,
12
=
"Cu (palik)"
,
13
=
"custom 1 (lossless)"
,
14
=
"custom 2"
,
15
=
"custom 3"
}
},
flag_mat_6
=
{
0
,
Name
StrCat
[
pp1
,
"0Dispersive materials/5material superstrate"
]
,
Choices
{
0
=
"Air"
,
1
=
"SiO2"
,
6
=
"ZnSe"
,
7
=
"MgF2"
,
8
=
"TiO2"
,
9
=
"PMMA"
,
13
=
"custom 1 (lossless)"
}
},
epsr_custom_1_re
=
{
8.9
,
Name
StrCat
[
pp1
,
"1Custom non-dispersive materials/0custom relative permittivity 1 (real part)"
]
,
Highlight
Str
[
colorpp
]
,
Closed
1
}
,
epsr_custom_1_im
=
{
0
,
Name
StrCat
[
pp1
,
"1Custom non-dispersive materials/1custom relative permittivity 1 (imag part)"
]
,
ReadOnly
1
,
Highlight
Str
[
colorro
]
,
Closed
1
}
,
...
...
@@ -78,14 +78,16 @@ DefineConstant[
epsr_custom_anisoXY_im
=
{
0
,
Name
StrCat
[
pp2b
,
"8 epsilonr XY im"
]
,
Highlight
Str
[
colorpp
]
,
Closed
1
}
,
h_pmltop
=
{
lambda_max
,
Name
StrCat
[
pp3
,
"0top PML size [nm]"
]
,
ReadOnly
1
,
Highlight
Str
[
colorro
]},
h_pmlbot
=
{
lambda_max
,
Name
StrCat
[
pp3
,
"1bottom PML size [nm]"
]
,
ReadOnly
1
,
Highlight
Str
[
colorro
]}
paramaille
=
{
20
,
Name
StrCat
[
pp3
,
"2nb of mesh elements per wavelength [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
]},
paramaille_scale_sub
=
{
1
,
Name
StrCat
[
pp3
,
"3Custom mesh parameters/refine substrate [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_layer_dep
=
{
1
,
Name
StrCat
[
pp3
,
"3Custom mesh parameters/refine deposit layer [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_rod_out
=
{
1
,
Name
StrCat
[
pp3
,
"3Custom mesh parameters/refine embedding [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_rods
=
{
3
,
Name
StrCat
[
pp3
,
"3Custom mesh parameters/refine rods [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_layer_cov
=
{
1
,
Name
StrCat
[
pp3
,
"3Custom mesh parameters/refine cover layer [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_sup
=
{
1
,
Name
StrCat
[
pp3
,
"3Custom mesh parameters/refine superstrate [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
h_pmlbot
=
{
lambda_max
,
Name
StrCat
[
pp3
,
"1bottom PML size [nm]"
]
,
ReadOnly
1
,
Highlight
Str
[
colorro
]},
Flag_o2_interp
=
{
1
,
Name
StrCat
[
pp3
,
"2Second order interpolation?"
]
,
Choices
{
0
,
1
}},
Flag_o2_geom
=
{
0
,
Name
StrCat
[
pp3
,
"3Second order mesh?"
]
,
Choices
{
0
,
1
},
Visible
0
},
paramaille
=
{
10
,
Name
StrCat
[
pp3
,
"4nb of mesh elements per wavelength [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
]},
paramaille_scale_sub
=
{
1
,
Name
StrCat
[
pp3
,
"6Custom mesh parameters/refine substrate [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_layer_dep
=
{
1
,
Name
StrCat
[
pp3
,
"6Custom mesh parameters/refine deposit layer [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_rod_out
=
{
1
,
Name
StrCat
[
pp3
,
"6Custom mesh parameters/refine embedding [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_rods
=
{
3
,
Name
StrCat
[
pp3
,
"6Custom mesh parameters/refine rods [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_layer_cov
=
{
1
,
Name
StrCat
[
pp3
,
"6Custom mesh parameters/refine cover layer [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
paramaille_scale_sup
=
{
1
,
Name
StrCat
[
pp3
,
"6Custom mesh parameters/refine superstrate [-]"
]
,
ReadOnly
0
,
Highlight
Str
[
colorpp
],
Closed
1
},
multiplot
=
{
0
,
Choices
{
0
,
1
},
Name
StrCat
[
pp4
,
"Plot solution on multiple periods"
]},
plotRTgraphs
=
{
1
,
Choices
{
0
,
1
},
Name
StrCat
[
pp4
,
"Plot R and T"
]}
...
...
@@ -93,8 +95,8 @@ DefineConstant[
d
=
d
*
nm
;
dy
=
dy
*
nm
;
h_sup
=
h_sup
*
nm
;
h_sub
=
h_sub
*
nm
;
h_sup
=
h_sup
*
nm
;
h_sub
=
h_sub
*
nm
;
h_layer_dep
=
h_layer_dep
*
nm
;
h_layer_cov
=
h_layer_cov
*
nm
;
w_rod_bot
=
w_rod_bot
*
nm
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment