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

    function N=EffectiveIndex(t,m)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 Mode TE TM NormalizedFrequency LatticeCnt
global eC mC eF mF


w=2*pi*NormalizedFrequency/LatticeCnt;
nf=sqrt(eF*mF);
nc=sqrt(eC*mC);

ky1=0;
ky=w*sqrt((nf^2+nc^2)/2);

while abs(ky-ky1)>1e-8
    ky1=real(ky);
    if Mode==TE
        ky=2*atan(w*sqrt(nf^2-nc^2-(ky/w)^2)/ky*(mF/mC))/t+pi*m/t;
    else
        ky=2*atan(w*sqrt(nf^2-nc^2-(ky/w)^2)/ky*(eF/eC))/t+pi*m/t;
    end
end

N=sqrt(nf^2-(ky/w)^2);