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