登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
能帮忙看看我这easy的程序么?为什么出来的 ..
发帖
回复
661
阅读
0
回复
[
求助
]
能帮忙看看我这easy的程序么?为什么出来的图总是发散的?
离线
lovie
lovie
UID :74467
注册:
2011-03-25
登录:
2011-05-30
发帖:
11
等级:
仿真新人
0楼
发表于: 2011-04-30 10:09:52
200步是达到10^57了 散的厉害
L)y }
6X7r=w
3P^eD:) w
%定义几个常量
MR#jI
c=3*10^8;
rZKv:x}{6
e0=8.854*10^(-12);
!`=r('l
u0=4*pi*10^(-7);
<saS2.4
h'MX{Wm.
deta_x=0.001;%定义空间网格长度,为1/20波长
Hu1w/PLq
deta_y=0.001;
[9'5+RXw3
deta_z=0.001;
;s9!ra:3
x_max=50;%定义总的网格数
;yBq'_e3
y_max=50;
k3sP,opacX
z_max=50;
&EE6<-B-
%定义时间步长
%nFZA)B[
deta_t=1/c/sqrt((1/deta_x)^2+(1/deta_y)^2+(1/deta_z)^2);
0=t_a]+
%定义迭代的次数
TcauCL
step=100;
xDRK^nmC
%场量置零
IR5 S-vO
hx1=zeros(x_max+1,y_max,z_max);
UF,T
hx2=zeros(x_max+1,y_max,z_max);
9oKRu6]D-
hy1=zeros(x_max,y_max+1,z_max);
!xj >~7
hy2=zeros(x_max,y_max+1,z_max);
AJCWp4,
hz1=zeros(x_max,y_max,z_max+1);
i:qc2#O:J
hz2=zeros(x_max,y_max,z_max+1);
A>R ^iu
ez1=zeros(x_max+1,y_max+1,z_max);
PM[6U#
ez2=zeros(x_max+1,y_max+1,z_max);
MCz+l0
ex1=zeros(x_max,y_max+1,z_max+1);
_YmYy\g
ex2=zeros(x_max,y_max+1,z_max+1);
v:JFUn}
ey1=zeros(x_max+1,y_max,z_max+1);
_~HGMC)
ey2=zeros(x_max+1,y_max,z_max+1);
EpOVrk
%定义电流源的位置
YRW<n9=3
source_x=25;
WuSRA<{P
source_y=25;
[EB2o.EsO
source_z=25;
]r'b(R; S
%定义观察点的位置
?9mWMf%t
field_x=23;
S4~^HvMG[Y
field_y=23;
_q3SR[k+`
field_z=23;
Wq&TbWR
%定义激励源
'9$xOrv
%时谐源
]L}<Y9)t
frequency=15*10^9;%波长为0.02
>Q[]i4*A
omiga=2*pi*frequency;
0t/ S_Q
%高斯源
o"7,CQye
t0=0.0667*10^(-9);
Vxo3RwmR
tt=0.0667*10^(-9);
'G@Npp)&^
%定义保存结果的变量
Da?0B9'
result=zeros(step,1,1);
}eEF/o
%迭代开始
{7Dc(gNS
for t=1:1:step
+&(sZFW5o
t
}..}]J;To
% current(t)=sin(omiga*t*deta_t);
Qy0bp;V/
current(t)=exp(-4*pi*(t*deta_t-t0)^2/tt^2);
sBwkHsDD
%ex的计算;
d!Y,i!l!
for i=1:1:x_max
5C#&vYnq
for j=2:1:y_max
/5U?4l(6[f
for k=2:1:z_max
r}"Ty
if i==source_x&j==source_y&k==source_z%判断是不是源点
OFQsfW3O
ex2(i,j,k)=ex1(i,j,k)+deta_t/e0*((hz2(i,j,k)-hz2(i,j-1,k))/deta_y-(hy2(i,j,k)-hy2(i,j,k-1))/deta_z)-deta_t/e0*current(t);
w2/%e$D!9
else
l]oGhM;
ex2(i,j,k)=ex1(i,j,k)+deta_t/e0*((hz2(i,j,k)-hz2(i,j-1,k))/deta_y-(hy2(i,j,k)-hy2(i,j,k-1))/deta_z);
n;v8Vc'
end
_.?$~;7
end
x*Z"~'DI
end
*5*d8;@>
end
hCW8(Zt
_Xsn1
%ey的计算;
6l:CDPhR
for i=2:1:x_max
`.L8<