switchtolayout;
selectall;
delete;
#定义单位
nm=1e-9;
um=1e-6;
addrect;
set("name","sub");
set("material","SiO2 (Glass) - Palik");
set("x min",-2*um);
set("x max",20*um);
set("y",0);
set("y span",10*um);
set("z min",-2*um);
set("z max",0);
#initial structure based on DC
WA=350*nm;
WB=400*nm;
W=500*nm;
T=300*nm;
n1=18;
n2=8;
L=2.5*um;
Lc=n1*T;
Lw=L+Lc+4*um;
#input port waveguide
addrect;
set("name","input");
set("material","Si (Silicon) - Palik");
set("x min",0);
set("x max",2*um);
set("y",0);
set("y span",W);
set("z min",0);
set("z max",220*nm);
for(i=1:7)
{
x1=2*um+(i-1)*T;
x2=2*um+(i-1)*T+185*nm;
addrect;
set("name","swg1"+num2str(i));
set("material","Si (Silicon) - Palik");
set("x min",x1);
set("x max",x2);
set("y",0);
set("y span",475*nm+i*250/7*nm);
set("z min",0);
set("z max",220*nm);
}
for(i=1:26)
{
x3=4.1*um+(i-1)*T;
x4=4.1*um+(i-1)*T+185*nm;
addrect;
set("name","BSWG"+num2str(i));
set("material","Si (Silicon) - Palik");
set("x min",x3);
set("x max",x4);
set("y",0);
set("y span",750*nm);
set("z min",0);
set("z max",220*nm);
}
vtx=[1000,175;-1000,250;-1000,-250;1000,-175]*nm;
addpoly;
set("name","poly2");
set("material","Si (Silicon) - Palik");
set("vertices",vtx);
set("x",3*um);
set("y",0);
set("z min",0);
set("z max",220*nm);
#waveguide
addrect;
set("name","couple1");
set("material","Si (Silicon) - Palik");
set("x min",4*um);
set("x max",Lw);
set("y",0);
set("y span",350*nm);
set("z min",0);
set("z max",220*nm);
addring;
set("name","ring waveguide");
set("material","Si (Silicon) - Palik");
set("x",11.9*um);
set("y",4*um);
set("z min",0);
set("z max",220*nm);
set("outer radius",4175*nm);#外圆半径
set("inner radius",3825*nm);#内圆半径
set("theta start",-90);#起始角
set("theta stop",-45);#终止角
for(i=0:10)
{
o=4.3*i;
addring;
set("name","rings"+num2str(i));
set("material","Si (Silicon) - Palik");
set("x",11.9*um);
set("y",4*um);
set("z min",0);
set("z max",220*nm);
set("outer radius",4375*nm);#外圆半径
set("inner radius",3625*nm);#内圆半径
set("theta start",-90+o);#起始角
set("theta stop",-90+o+2.65);#终止角
}
##a strip waveguide with SWG embedded in the middle slot
addrect;
set("name","couple2");
set("material","Si (Silicon) - Palik");
set("x min",L+4*um);
set("x max",Lw+3.6*um);
set("y",-675*nm);
set("y span",400*nm);
set("z min",0);
set("z max",220*nm);
for(i=0:29)
{
E3=6500*nm+i*T;
E4=6500*nm+i*T+116*nm;
addrect;
set("name","swgc"+num2str(i));
set("material","Si (Silicon) - Palik");
set("x min",E3);
set("x max",E4);
set("y",-675*nm);
set("y span",500*nm);
set("z min",0);
set("z max",220*nm);
}
addfdtd;
set("dimension",2);
set("x min",0);
set("x max",14*um);
set("y min",-1*um);
set("y max",1*um);
set("z min",-100*nm);
set("z max",300*nm);
addprofile;
set("name","R1");
set("monitor type","2D Z-normal");
set("x min",0);
set("x max",15*um);
set("y",-200*nm);
set("y span",3*um);
set("z",110*nm);
addprofile;
set("name","R2");
set("monitor type","2D X-normal");
set("x",4.5*um);
set("y",-200*nm);
set("y span",3*um);
set("z",110*nm);
set("z span",3*um);
addprofile;
set("name","R3");
set("monitor type","2D X-normal");
set("x",7*um);
set("y",-200*nm);
set("y span",3*um);
set("z",110*nm);
set("z span",3*um);
addprofile;
set("name","R4");
set("monitor type","2D X-normal");
set("x",12*um);
set("y",-200*nm);
set("y span",3*um);
set("z",110*nm);
set("z span",3*um);
addmode;
set("injection axis","x");
set("direction","forward");
set("x",0);
set("y",0);
set("y span",1*um);
set("z",0.1*um);
set("z span",1*um);
set("wavelength start",1.5*um);
set("wavelength stop",1.5*um);
