image thumbnail
from Density of photonic modes in a 1D photonic crystal by Cazimir-Gabriel Bostan
total density of photonic modes allowed in a 1D PhC; unit cell is made of two homogeneous layers

DOS1D.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% this program calculates and plots the total density of photonic modes (DOS) allowed in a 1D photonic
%%% crystal with the unit cell made of two homogeneous dielectric layers;
%%% the calculation is separated in two cases: TE(s) and TM(p)
%%% polarizations; DOS is calculated via numerical integration of symbolic
%%% expressions

%%% Author: Cazimir-Gabriel Bostan, 2008 (Bucharest, Romania)
%%%	http://cgbostan.evonet.ro
%%%	cgbostan@yahoo.com
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

tic
clear all
warning off

%%% refractive indices of the layers
n1 = 1.4;
n2 = 3.45;

%%% normalized thicknesses of the layers
d1 = n2/(n1+n2);
d2 = 1-d1;

N=1000; % no. of discretization points
u = linspace(0.15, 0.45, N); % vector of normalized frequency
Ds = []; Dp = []; % DOS for "s" and "p" pol.

for j=1:N
    o=u(j);
    
    % for "s" polarization
    Fs = @(x) x.*((n1^2*d1./sqrt(n1^2-x.^2)).*(sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*cos(2*pi*d2*o.*sqrt(n2^2-x.^2))+0.5.*(sqrt(n1^2-x.^2)./sqrt(n2^2-x.^2)+sqrt(n2^2-x.^2)./sqrt(n1^2-x.^2)).*sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*cos(2*pi*d2*o.*sqrt(n2^2-x.^2)))+...
        + (n2^2*d2./sqrt(n2^2-x.^2)).*(sin(2*pi*d2*o.*sqrt(n2^2-x.^2)).*cos(2*pi*d1*o.*sqrt(n1^2-x.^2))+0.5.*(sqrt(n2^2-x.^2)./sqrt(n1^2-x.^2)+sqrt(n1^2-x.^2)./sqrt(n2^2-x.^2)).*sin(2*pi*d2*o.*sqrt(n2^2-x.^2)).*cos(2*pi*d1*o.*sqrt(n1^2-x.^2)))-...
        - (1/o)*((n1^2-n2^2)^2/(4*pi)).*x.^2.*sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*sin(2*pi*d2*o.*sqrt(n2^2-x.^2))./(sqrt(n1^2-x.^2).*sqrt(n2^2-x.^2)).^3)./(1-(cos(2*pi*d1*o.*sqrt(n1^2-x.^2)).*cos(2*pi*d2*o.*sqrt(n2^2-x.^2))-0.5.*(sqrt(n1^2-x.^2)./sqrt(n2^2-x.^2)+...
        + sqrt(n2^2-x.^2)./sqrt(n1^2-x.^2)).*sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*sin(2*pi*d2*o.*sqrt(n2^2-x.^2))).^2);
    
    Ds(j)=abs(quadl(Fs,0,n1-0.001));
    
    % for "p" polarization
    Fp = @(x) x.*((n1^2*d1./sqrt(n1^2-x.^2)).*(sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*cos(2*pi*d2*o.*sqrt(n2^2-x.^2))+0.5.*((n2^2/n1^2).*sqrt(n1^2-x.^2)./sqrt(n2^2-x.^2)+(n1^2/n2^2).*sqrt(n2^2-x.^2)./sqrt(n1^2-x.^2)).*sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*cos(2*pi*d2*o.*sqrt(n2^2-x.^2)))+...
        + (n2^2*d2./sqrt(n2^2-x.^2)).*(sin(2*pi*d2*o.*sqrt(n2^2-x.^2)).*cos(2*pi*d1*o.*sqrt(n1^2-x.^2))+0.5.*((n1^2/n2^2).*sqrt(n2^2-x.^2)./sqrt(n1^2-x.^2)+(n2^2/n1^2).*sqrt(n1^2-x.^2)./sqrt(n2^2-x.^2)).*sin(2*pi*d2*o.*sqrt(n2^2-x.^2)).*cos(2*pi*d1*o.*sqrt(n1^2-x.^2)))-...
        - (1/o)*((n1^2-n2^2)^2*(1/n1^2+1/n2^2-1)/(4*pi)).*x.^2.*sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*sin(2*pi*d2*o.*sqrt(n2^2-x.^2))./(sqrt(n1^2-x.^2).*sqrt(n2^2-x.^2)).^3)./(1-(cos(2*pi*d1*o.*sqrt(n1^2-x.^2)).*cos(2*pi*d2*o.*sqrt(n2^2-x.^2))-0.5.*((n2^2/n1^2).*sqrt(n1^2-x.^2)./sqrt(n2^2-x.^2)+...
        + (n1^2/n2^2).*sqrt(n2^2-x.^2)./sqrt(n1^2-x.^2)).*sin(2*pi*d1*o.*sqrt(n1^2-x.^2)).*sin(2*pi*d2*o.*sqrt(n2^2-x.^2))).^2);
    
    Dp(j)=abs(quadl(Fp,0,n1-0.0001)); 
    
    display(sprintf('Calculation for o[%d] is finished',j));
    
end

plot(u,Ds); xlabel('Normalized frequency'); ylabel('DOS for s-pol (a.u.)');
figure
plot(u,Dp,'r'); xlabel('Normalized frequency'); ylabel('DOS for p-pol (a.u.)');

toc

Contact us at files@mathworks.com