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

    function RunFDTD

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 Time TimeSteps SnapshotTimes BoundaryType
global xProbe yProbe U TimeDecimation PowerTime
global Animate True False

USave=[];
d=-1;

InitialField;

for Time=1:TimeSteps
    AdvanceMTime;
    AdvanceETime;
    AddSource;
    if ismember(Time,SnapshotTimes)
        GenerateSnapShot;
    end
    if Time>=PowerTime
        MeasurePower;
    end
    d=mod(d+1,TimeDecimation);   
    if d==0
        USave=[USave; real(U(xProbe,yProbe))];
    end
    if Animate==True 
        PlotSnapshot
        pause
    end
end

if BoundaryType==0 | BoundaryType==6
    PlotSnapshot; 
end

SaveField(USave)