effectiveindex.m

来自「一组很好的FDTD计算二维光子带隙的程序」· M 代码 · 共 34 行

M
34
字号
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);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?