www.gusucode.com > FDTD计算二维光子带隙的程序 > FDTD计算二维光子带隙的程序/247787/MakeProfile.m

    function p=MakeProfile(w,m,N);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Electromagnetic Finite-Difference Time-Domain %
% Version 1.20, Release 1                       %
%                                               %
%   (C) Copyright 2005                          %
%   Sharif University of Technology             %
%   School of Electrical Engineering            %
%   All Rights Reserved                         %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

global Y NormalizedFrequency LatticeCnt
global eC mC eF mF

p=zeros(1,Y);

ymin=floor(Y/2-w/2);
ymax=ceil(Y/2+w/2);

w=2*pi*NormalizedFrequency/LatticeCnt;
nf=sqrt(eF*mF);
nc=sqrt(eC*mC);
kf=w*sqrt(nf^2-N^2);
kc=w*sqrt(N^2-nc^2);

for y=ymin:ymax
    if IsEven(m)
        p(y)=cos(kf*(y-Y/2));
    else
        p(y)=sin(kf*(y-Y/2));
    end
end

for y=1:ymin-1
    p(y)=exp(-kc*(ymin-y))*p(ymin);
end

for y=ymax+1:Y
    p(y)=exp(-kc*(y-ymax))*p(ymax);
end