-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWaveguideSet_RectGuide.m
More file actions
75 lines (66 loc) · 1.64 KB
/
WaveguideSet_RectGuide.m
File metadata and controls
75 lines (66 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
n_clad=2.0;%isotropic
nn1_clad=1.73;
nn2_clad=1;
ns_clad=1.454;
nwe_clad=1;
nx_guide=2.01; ny_guide=2.01; nz_guide=2.01;
t=2.0e-7;
delta=00e-8;
w=t+delta;
ww=w+9*t;
wx1=(ww-w)/2;
wx2=wx1+w;
wy1=4*t;
wy2=wy1+0.5*t;
wy3=wy2+t;
core_number=100;
dx=t/core_number;
dy=dx;
NX=floor((ww)/dx);
NY=floor(10*t/dx);
nx_square=zeros(NY,NX);hx
nz_square=zeros(NY,NX);
ny_square=zeros(NY,NX);
for r=1:NY
for s=1:NX
if dx*s>=wx1&&dx*s<=wx2&&dy*r>=wy2&&dy*r<=wy3
nx_square(r,s)=nx_guide^2;
ny_square(r,s)=ny_guide^2;
nz_square(r,s)=nz_guide^2;
else
if dx*s<wx1&&dy*r>=wy2&&dy*r<=wy3
nx_square(r,s)=nwe_clad^2;
ny_square(r,s)=nwe_clad^2;
nz_square(r,s)=nwe_clad^2;
end
if dx*s>wx2&&dy*r>=wy2&&dy*r<=wy3
nx_square(r,s)=nwe_clad^2;
ny_square(r,s)=nwe_clad^2;
nz_square(r,s)=nwe_clad^2;
end
end
if dy*r<=wy1
nx_square(r,s)=ns_clad^2;
ny_square(r,s)=ns_clad^2;
nz_square(r,s)=ns_clad^2;
end
if dy*r>wy1&&dy*r<wy2
nx_square(r,s)=nn1_clad^2;
ny_square(r,s)=nn1_clad^2;
nz_square(r,s)=nn1_clad^2;
end
if dy*r>wy3
nx_square(r,s)=nn2_clad^2;
ny_square(r,s)=nn2_clad^2;
nz_square(r,s)=nn2_clad^2;
end
end
end
GuideCross.nx_square=nx_square;
GuideCross.ny_square=ny_square;
GuideCross.nz_square=nz_square;
GuideCross.NX=NX;
GuideCross.NY=NY;
NXY=NX*NY;
GuideCross.dx=dx;
GuideCross.dy=dy;