############################################### # sp_filter.lsf # # Plots figures 2b, 2d, 3 of Ellenbogen et al., # "Chromatic Plasmonic Polarizers for Active # Visible Color Filtering and Polarimetry", # Nano Lett. 12(2):1026-31 # # Copyright 2016 Lumerical Solutions Inc. ################################################ # uncomment the following line to re-run the sweeps # runsweep; # choose which results to plot (1 to plot, 0 otherwise) figure2 = 1; figure3 = 1; if(figure2) { T = pinch(getsweepdata("figure2","T")); Th = pinch(T,2,1); Tv = pinch(T,2,2); lambda = getsweepdata("figure2","lambda"); pol_angle0 = getsweepdata("figure2","polarization"); # figure 2b pol_angle = linspace(0,90,10); Cos_angle = meshgridx(cos(pol_angle*pi/180),lambda); Sin_angle = meshgridx(sin(pol_angle*pi/180),lambda); Th_2d = meshgridy(pol_angle,Th); Tv_2d = meshgridy(pol_angle,Tv); T_image = Th_2d*Cos_angle^2 + Tv_2d*Sin_angle^2; plot(lambda*1e9,transpose(T_image),"wavelength","Transmission","Figure 2b"); legend("0 deg","10 deg","20 deg","30 deg","40 deg","50 deg","60 deg","70 deg","80 deg","90 deg"); # figure 2d pol_angle = linspace(0,360,100); Cos_angle = meshgridx(cos(pol_angle*pi/180),lambda); Sin_angle = meshgridx(sin(pol_angle*pi/180),lambda); Th_2d = meshgridy(pol_angle,Th); Tv_2d = meshgridy(pol_angle,Tv); # note: figure in paper has polarization definition # reversed for figure 2d, switching Sin and cos T_image = Th_2d*Sin_angle^2 + Tv_2d*Cos_angle^2; image(pol_angle,lambda*1e9,T_image,"polarization angle","wavelength (nm)","Figure 2d"); } if(figure3) { lambda_min = getsweepdata("figure3","lambda_min"); Lh = getsweepdata("figure3","lh"); plot(Lh*1e9,lambda_min*1e9,"L (nm)","lambda0","Figure 3"); }