56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
##### FUNCTION LIB #####
|
|
function mx_FDE_dual_strip(wafer,w1,w2,gap){
|
|
|
|
cladding = wafer.cladding;
|
|
mx_rect('WG_inner',[-w1/2-gap/2,0,0],[w1,10e-6,wafer.Height],wafer.Material,1,0);
|
|
mx_rect('WG_outer',[w2/2+gap/2,0,0],[w2,10e-6,wafer.Height],wafer.Material,1,0);
|
|
|
|
if (wafer.clad_on){
|
|
mx_rect('SiO2',[0,0,0],[cladding.Size*2+w1+w2+gap,cladding.Size,cladding.Height],cladding.Material,2,0);
|
|
}
|
|
else {
|
|
mx_rect('SiO2',[0,0,-cladding.Height/2-wafer.Height/2],[cladding.Size*2+w1+w2+gap,cladding.Size,cladding.Height],cladding.Material,2,0);
|
|
}
|
|
|
|
#inner = wl+gap;
|
|
#outer = w2+gap;
|
|
#return [inner,outer];
|
|
}
|
|
|
|
function mx_FDE_strip(wafer,w){
|
|
|
|
cladding = wafer.cladding;
|
|
mx_rect('WG',[0,0,0],[w,10e-6,wafer.Height],wafer.Material,1,0);
|
|
if (wafer.slab>=1e-10) {
|
|
mx_rect('slab',[0,0,-wafer.Height/2+wafer.slab/2],[cladding.Size*2+w,cladding.Size,wafer.slab],wafer.Material,1,0);
|
|
}
|
|
if (wafer.clad_on){
|
|
mx_rect('SiO2',[0,0,0],[cladding.Size*2+w,cladding.Size,cladding.Height],cladding.Material,2,0);
|
|
}
|
|
else {
|
|
mx_rect('SiO2',[0,0,-cladding.Height/2-wafer.Height/2],[cladding.Size*2+w,cladding.Size,cladding.Height],cladding.Material,2,0);
|
|
}
|
|
|
|
#inner = wl+gap;
|
|
#outer = w2+gap;
|
|
#return [inner,outer];
|
|
}
|
|
|
|
##### FUNCTION LIB #####
|
|
function mx_FDE_Disk(wafer,R){
|
|
|
|
cladding = wafer.cladding;
|
|
mx_rect('Disk',[-R,0,0],[R*2,10e-6,wafer.Height],wafer.Material,1,0);
|
|
|
|
if (wafer.clad_on){
|
|
mx_rect('SiO2',[0,0,0],[cladding.Size*2+R,cladding.Size,cladding.Height],cladding.Material,2,0);
|
|
}
|
|
else {
|
|
mx_rect('SiO2',[0,0,-cladding.Height/2-wafer.Height/2],[cladding.Size*2+R,cladding.Size,cladding.Height],cladding.Material,2,0);
|
|
}
|
|
|
|
#inner = wl+gap;
|
|
#outer = w2+gap;
|
|
#return [inner,outer];
|
|
}
|
|
|