You are on page 1of 115

93202831

-1 FDTD
( 2 :
6 Taflov
.

@ x=0:
And With x=y=

@ x=h ,y=0, y=h the way is similar to x=0 , and by using 6.28b 6.28c 6.28d
,equations similar to 6.34 can be obtained
: MATLAB
a=2;
%length
b=2;
%width
c=3e8 ;
%Light Speed
% Simulation parameter
s=0.5;
%Courant Stability Factor
d=.01;
%Delta x,delta y
dt=s*d/3e8; %Delta t
N=floor(a/d);
%Intrvals on length
M=floor(b/d);
%Intrvals on width
Nt=1200;

%Total number of simulation time

xn1=floor(0.7/d)+1;
yn1=floor(0.5*a/d)+1;

%Field Point Location


%Field Point Location

xn2=floor(0.5*a/d)+1;
yn2=floor(1.3/d)+1;

%Field Point Location


%Field Point Location

xn3=floor(0.2/d)+1;
yn3=floor(1.3/d)+1;

%Field Point Location


%Field Point Location

xnp=floor(0.5*a/d);
ynp=floor(0.5*b/d);
% Initial fields
Ez2=zeros(M+1,N+1,3);
Hx2=zeros(M,N+1,3);
Hy2=zeros(M+1,N,3);
Es1=zeros(1,Nt);
Es2=zeros(1,Nt);
Es3=zeros(1,Nt);

%Source Point Location


%Source Point Location

Ez=zeros(M+1,N+1);
Hx=zeros(M,N+1);
Hy=zeros(M+1,N);
% FDTD
nx=N;ny=M;
%%% To Determine Mur Absorbing Boundery Condition We need Fields
at 3 Time
2

%%% Steps,And For This I Write This 'for' Here


for n=3:Nt
%Apply Source
%
Ez(xnp,ynp)=sin(1e9*2*pi*dt*n);
Ez(xnp,ynp)=exp(-(((n-2)*dt-2e-9)/(.5e-9))^2);
% Yee Cubic Field Calculation
Hx=Hx-dt/(4*pi*1e-7*d)*(Ez(2:end,:)-Ez(1:end-1,:));
Hy=Hy+dt/(4*pi*1e-7*d)*(Ez(:,2:end)-Ez(:,1:end-1));
Ez(2:end-1,2:end-1)=Ez(2:end-1,2:end-1)+dt/(8.854e12*d)*(Hy(2:end-1,2:end)-Hy(2:end-1,1:end-1)-(Hx(2:end,2:end-1)Hx(1:end-1,2:end-1)));
% First time Step
if n-3*floor(n/3)==0
m11=1;%next
m10=2;%before
m=3;%curent
Hx2(:,:,1)=Hx;
Hy2(:,:,1)=Hy;
Ez2(:,:,1)=Ez;
% Second time Step
elseif n-3*floor(n/3)==1
m11=2;%next
m10=3;%before
m=1;%curent
Hx2(:,:,2)=Hx;
Hy2(:,:,2)=Hy;
Ez2(:,:,2)=Ez;
% Third time Step
elseif n-3*floor(n/3)==2
m11=3;%next
m10=1;%before
m=2;%curent
Hx2(:,:,3)=Hx;
Hy2(:,:,3)=Hy;
Ez2(:,:,3)=Ez;
end
%Apply Boundary Condition
for i=1:N
for j=1:M
% For Corners
Ez2(1,1,m11)=Ez2(2,2,m10);
Ez2(1,M,m11)=Ez2(2,M-1,m10);
Ez2(N,M,m11)=Ez2(N-1,M-1,m10);
Ez2(N,1,m11)=Ez2(N-1,2,m10);
%@x=0
if i==1
3

if j>1 && j<M


Ez2(1,j,m11)=-Ez2(2,j,m10)+(s1)/(s+1)*(Ez2(2,j,m11)+Ez2(1,j,m10))+...
+2*d/(c*dt+d)*(Ez2(2,j,m)+Ez2(1,j,m))+...
+0.5*(s^2)/(s+1)*(Ez2(1,j+1,m)-2*Ez2(1,j,m)+Ez2(1,j-1,m)+...
+Ez2(2,j+1,m)-2*Ez2(2,j,m)+Ez2(2,j-1,m));
end
%@x=h
elseif i==N
if j>1 && j<M
%
Ez2(nx,j,m11)=Ez2(nx+1,j,m10)+2*(Ez2(nx+1,j,m11)+Ez2(nx,j,m10))-((s1)/(s+1)*(Ez2(nx+1,j,m11)+Ez2(nx,j,m10))+...
%
+2*d/(c*dt+d)*(Ez2(nx+1,j,m)+Ez2(nx,j,m))+...
%
+0.5*(s^2)/(s+1)*(Ez2(nx,j+1,m)2*Ez2(nx,j,m)+Ez2(nx,j-1,m)+...
%
+Ez2(nx+1,j+1,m)-2*Ez2(nx+1,j,m)+Ez2(nx+1,j1,m)));
Ez2(nx+1,j,m11)=Ez2(1,j,m11);
end
else
%@y=0
if j==1
Ez2(i,1,m11)=-Ez2(i,2,m10)+(s1)/(s+1)*(Ez2(i,2,m11)+Ez2(i,1,m10))+...
+2*d/(c*dt+d)*(Ez2(i,2,m)+Ez2(i,1,m))+...
+0.5*(s^2)/(s+1)*(Ez2(i+1,1,m)-2*Ez2(i,1,m)+Ez2(i-1,1,m)+...
+Ez2(i+1,2,m)-2*Ez2(i,2,m)+Ez2(i-1,2,m));
%@y=h
elseif j==M
%
Ez2(i,ny,m11)=-Ez2(i,ny-1,m10)+2*(Ez2(i,ny1,m11)+Ez2(i,ny,m10))-((s-1)/(s+1)*(Ez2(i,ny1,m11)+Ez2(i,ny,m10))+...
%
+2*d/(c*dt+d)*(Ez2(i,ny-1,m)+Ez2(i,ny,m))+...
%
+0.5*(s^2)/(s+1)*(Ez2(i+1,ny,m)2*Ez2(i,ny,m)+Ez2(i-1,ny,m)+...
%
+Ez2(i+1,ny-1,m)-2*Ez2(i,ny-1,m)+Ez2(i-1,ny1,m)));
Ez2(i,ny+1,m11)=Ez2(i,1,m11);
end
%Do noting
end
end
4

end
;)Ez=Ez2(:,:,m11
))imagesc(Ez2(:,:,m
))% surf(Ez2(:,:,m
;)set(gca,'FontSize',20
colorbar
%
)]caxis([0 0.1
% % % % % % % %
)]zlim([-4 4
;getframe
;)% Hx=Hx(:,:,n+1
;)% Hy=Hy(:,:,n+1
;)% Ez=Ez(:,:,n+1
;)Es1(n)=Ez2(xn1,yn1
%Save time domain data at field point
;)Es2(n)=Ez2(xn2,yn2
%Save time domain data at field point
;)Es3(n)=Ez2(xn3,yn3
%Save time domain data at field point
End
;)'save('Test_Numerical_c1_5.mat','Es1','Es2','Es3

:
x y t for
Hard .
Yee .
Mur Ez
n for Ez
.
12 3 m m10 m11 m
m=2 m10=1
m11=3 .
x=0 y=0
x=h y=h
x=0 y=0 .
5

imagesc surf
.
Ez
Yee .
Es1 Es2 Es3
) (0,0.3 ) (0.3,0 ) (0.3,0.3 .
(
s
. s=1 s=1.5 .
.
: Matlab
;)'load('Test_Numerical2_c1_5.mat','Es1','Es2','Es3
;Es=Es1
;xn=0.3
;yn=0.3
;Nt=200
%Total number of simulation time
;s=0.5
%Courant Stability Factor
;d=.01
%Delta x,delta y
dt=s*d/3e8; %Delta t
;Fs=3e9
;)L=length(Es
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
;)Y = fft(Es,NFFT
;)f = Fs/2*linspace(0,1,NFFT/2+1
;))Es_Ampl=abs(Y(1:NFFT/2+1
;)Y_imag=imag(Y
;)Y_real=real(Y
;))phase=atand(Y_imag(1:NFFT/2+1)./Y_real(1:NFFT/2+1
%%%%%%%%%%%%
;x=0:dt:Nt*dt
;)sig = exp(-((x-2e-9)/(0.5e-9)).^2
;Fs=3e9
6

;)L=length(sig
;% t = (0:L-1)*T
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
;)YA = fft(sig,NFFT
;)f= Fs/2*linspace(0,1,NFFT/2+1
;)p=sqrt(xn^2+yn^2
;k_wave=2*pi*f/3e8
;eps=8.854e-12
;)I=YA(1:NFFT/2+1
;)EzA_p=(-I.*(k_wave).^2)/(4*2*pi.*f*eps).*besselh(0,2,k_wave*p

:

. load) save
( Es
) (xn , yn .

.
: dt
t dt=s*d/3e8 d x y
.
d 0.01
dt=1.6667e-11.

:
Ez FDTD
.
) (0,0.3 : C=0.5
Ez
.
.
FDTD
1 .

10

11

12

13

14

: 0.3,0

15

16

17

18

19

20

0.3,0.3 c=0.5

21

22

23

24

25

26

c=1 FDTD
.
: 0,0.3

27

28

29

30

31

32

: 0.3,0

33

34

35

36

37

38

: 0.3,0.3

39

40

41

42

43

: c=1.5
FDTD .
0,0.3

44

45

46

47

48

49

50

0.3,0

51

52

53

54

55

56

0.30.3

57

58

59

60

61

( FDTD
.
FDTD
.
0.3,0.3 c=0.5 0.14
0.1 .

62

:
C=0.5
0,0.3

63

64

65

66

67

68

0.3,0

69

70

71

72

73

74

0.30.3

75

76

77

78

79

c=1
0,0.3

80

81

82

83

84

85

0.3,0

86

87

88

89

90

91

0.30.3

92

93

94

95

96

97

c=1.5
0,0.3

98

99

100

101

102

103

0.3,0

104

105

106

107

108

109

0.3,0.3

110

111

112

113

114

115

You might also like