概述:本文章使用FDE求解器对定向耦合器进行了数值仿真,讨论了耦合器的间距相关性,耦合长度相关性,波长相关性。讨论了脊形波导和条形波导两种情况。
参考文献:硅光子设计4.1节
结构参数
根据代码4.5参数设置定向耦合器的几何模型。
包层厚度2um,x方向宽度为4um,y方向宽度为6.5um,材料设置为SiO2,注意将meshorder设置为3(与Si重合),alpha设置为0.5,为了看清内部的结构。
埋氧层
材料设置为SIO2
硅衬底
材料设置为SI
波导1
材料设置为Si
波导2
材料设置为Si
脊形波导
材料设置为SI
仿真区域设置
solver type选择 2D X normal
仿真区域设置如下
更改mesh cells,使结果更精确
点击
并在右侧Modal Analysis窗口修改波长,模式数。
点击进行计算模场分布
第一个模式real(Ey)
第二个模式real(Ey)
脊形波导
1.耦合器间距相关性
耦合长度随间距的变化
gap=[0.1:0.1:1]*1e-6;
wavelength=1.55e-6;
neff=matrix(length(gap),2);
Lcross=matrix(length(gap));
for(i=1:length(gap)){
switchtolayout;
setnamed("waveguide1","y",-0.25*1e-6-gap(i)/2);
setnamed("waveguide2","y",0.25*1e-6+gap(i)/2);
n=findmodes;
for(j=1:2){
neff(i,j)=abs(getdata("MODE::data::mode"+num2str(j),"neff"));
}
Lcross(i)=wavelength/2/abs(neff(i,1)-neff(i,2));
}
plot(gap*1e9,Lcross*1e6,"Gap","Lcross","Lcross-Gap");
场耦合系数与耦合间距的关系
gap=[0.1:0.05:1]*1e-6;
wavelength=1.55e-6;
neff=matrix(length(gap),2);
k=matrix(length(gap),2);
for(i=1:length(gap)){
switchtolayout;
setnamed("waveguide1","y",-0.25*1e-6-gap(i)/2);
setnamed("waveguide2","y",0.25*1e-6+gap(i)/2);
n=findmodes;
for(j=1:2){
neff(i,j)=abs(getdata("MODE::data::mode"+num2str(j),"neff"));
}
k(i,1)=abs(sin(pi*abs(neff(i,1)-neff(i,2))/wavelength*5*1e-6));
k(i,2)=abs(sin(pi*abs(neff(i,1)-neff(i,2))/wavelength*15*1e-6));
}
plot(gap*1e9,k,"Gap","k","k-Gap");
2,耦合器耦合长度相关性
注意要先把两个波导的间距改变成200nm
场耦合系数与耦合长度的关系
gap=0.2*1e-6;
coupler=[0:0.02:25]*1e-6;
neff=matrix(1,2);
k=matrix(length(coupler));
wavelength=1.55e-6;
n=findmodes;
for(j=1:2){
neff(1,j)=abs(getdata("MODE::data::mode"+num2str(j),"neff"));}
for(i=1:length(coupler)){
k(i)=abs(sin(pi*abs(neff(1,1)-neff(1,2))/wavelength*coupler(i)));}
plot(coupler*1e9,k^2,"coupler","k^2","k^2-length");
3.波长相关性
有效折射率与波长
选择frequency analysis
点击
耦合长度与波长
同样的,最开始打算用代码参数化实现:
wavelength=[1.5:0.02:1.6]*1e-6;
neff=matrix(length(wavelength),2);
L=matrix(length(wavelength));
for(i=1:length(wavelength)){
n=findmodes;
for(j=1:2){
neff(i,j)=abs(getdata("MODE::data::mode"+num2str(j),"neff"));}
L(i)=wavelength(i)/2/abs(neff(i,1)-neff(i,2));
}
plot(wavelength*1e6,L*1e6,"wavelength","L");
但是结果不对,
扫描结束后,波长没变化,不知道怎么改了,只能手动改变波长一个个算了
场耦合系数与波长的关系
同上
条形波导
将ridge disable即可
第一个模式real(Ey)
第二个模式real(Ey)