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

    function G=PutHole(F,x,y,r,Hole)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 xCnt yCnt Cnt

r=r*Cnt;
s=size(F);
sx=s(1);
sy=s(2);
lx = max(1,round(x-r));
ux = min(min(xCnt,sx),round(x+r));
ly = max(1,round(y-r));
uy = min(min(yCnt,sy),round(y+r));

for c1 = lx:ux
    for c2 = ly:uy
        if ((c1-x)^2+(c2-y)^2<r^2),
            F(c1,c2) = Hole;
        end
    end
end

G=F;