登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
详细讨论一下这个二维的fdtd程序
发帖
回复
4244
阅读
4
回复
[
转载
]
详细讨论一下这个二维的fdtd程序
离线
lanzhiyu
UID :3862
注册:
2007-07-15
登录:
2008-06-06
发帖:
8
等级:
旁观者
0楼
发表于: 2007-10-24 19:20:06
clear;clc;
> JP}OS
"1z#6vw5a
% 1.初始化
*IQQsfL)
BFvRU5&Sz
T=200; % 迭代次数
z$Z{ LR
Nx=100;
w^E$R
Ny=100;
i{biQ|,.sL
npml=8; %PML的网格数量
}s@vN8C
0P l>k'9
c0=3*10^8;
AQjf\i
f=1.5*10^(9);
]=]fIKd
lambda=c0/f;
6rBP,\m
Btyp=wfN[
wl=10;
)MeeF-Ad6
dx=lambda/wl; %取lamda/10的精度
{66P-4Ev(
dy=lambda/wl;
2P,{`O1]
pi=3.14159;
|"aop|
K9QC$b9(
dt=dx/(2*c0); %由于是二维情况同,取t=dx/2c0
^8V8,C)
t0=20*dt; %为高斯脉冲的仿真作准备
Rj!9pwvT
)NmYgd~%
epsz=1/(4*pi*9*10^9);
-(JBgM"
epsilon=1;
LO@o`JF
sigma=0;
"'*Qq@!3?
=-E%vnU
ic=Nx/4; % 源的X位置
l]~mB~
jc=Ny/4; % 源的Y位置
]S7>=S
A@ZsL
for i=1:Nx+1;
0mR^%+~
for j=1:Ny+1;
FO{?Z%& ;
dz(i,j)=0; %z方向电位移
su0q 2.
ez(i,j)=0; % z方向电场
@&f~#Xe
hx(i,j)=0; % x方向磁场
:wY(</H
hy(i,j)=0; % y方向磁场
bY}:!aR<mK
ihx(i,j)=0;
c"oJcp
ihy(i,j)=0;
X?++I4\
iz(i,j)=0; % z方向求和中间参量
i;fU],aK!
end;
kzmw1*J
end;
se*!OiOt
qZYh^\
for i=2:Nx;
=4#p|OZP
for j=2:Ny;
&Y jUoe
ga(i,j)=1;
:!L>_ f
end;
j^m x ,
end;
ZmAo9>'Kg
%PML参数的设置
&f-x+y
for i=1:Nx;
MuF{STE>->
gi2(i)=1;
%这些数组代表是什么?
1T0s UIY
gi3(i)=1;
%这些数组代表是什么?
gt\*9P
fi1(i)=0;
%这些数组代表是什么?
9w.ZXd
fi2(i)=1;
%这些数组代表是什么?
,A[NcFdCB
fi3(i)=1;
%这些数组代表是什么?
h ;1D T
end
v,Uu)Z
mWTV)z57
for j=1:Ny;
s[Whg!2~
gj2(j)=1;
%这些数组代表是什么?
E_-g<Cw
gj3(j)=1;
:&J1#% t
fj1(j)=0;
)St`}qu;
fj2(j)=1;
?)2; W
fj3(j)=1;
JYrOE"!h
end
Jvr`9<`
JnPwqIF1
for i=1:npml+1; %设置PML层中的参数
?/}-&A"
xnum=npml+1-i;
kE854Ej
xn=0.33*(xnum/npml)^3; %这里的0.333并不是严格的计算,而是经验值
$fAZ^
gi2(i)=1.0/(1+xn); %这些数组代表是什么?
PYyT#AcW2
gi2(Nx-1-i)=1/(1+xn); %这些数组代表是什么?
A`nzqe#(1
gi3(i)=(1-xn)/(1+xn); %这些数组代表是什么?
gB])@O%/
gi3(Nx-1-i)=(1-xn)/(1+xn); %这些数组代表是什么?
]ASTw(4
n'83P%x
xn=0.25*((xnum-0.5)/npml)^3; %这里的0.25和0.333也是一个道理
e'2w-^7
fi1(i)=xn; %这些数组代表是什么?
R c
fi1(Nx-2-i)=xn;
< Y)A ez
fi2(i)=1.0/(1+xn);
>!PCEw<i
fi2(Nx-2-i)=1/(1+xn);
0?*":o30
fi3(i)=(1-xn)/(1+xn);
+2,EK
fi3(Nx-2-i)=(1-xn)/(1+xn);
sI`oz|$
end
K>_~|ZN1C8
D-Q54 "^3
for i=1:npml+1;
o[aIQ|G
xnum=npml+1-i;
?*:BgaR_
xn=0.33*(xnum/npml)^3;
q0KGI/5s4+
gj2(i)=1.0/(1+xn);
-u~AY#*
gj2(Ny-1-i)=1/(1+xn);
%mRnJgV5k
gj3(i)=(1-xn)/(1+xn);
V|)nUsU
gj3(Ny-1-i)=(1-xn)/(1+xn);
4^7*R
C4K"eX,K
xn=0.25*((xnum-0.5)/npml)^3;
#{5h6IC
fj1(i)=xn;
ONMR2J(
fj1(Ny-2-i)=xn;
~\u~>mtchu
I[KAW"
fj2(i)=1.0/(1+xn);
/>O.U?
fj2(Ny-2-i)=1/(1+xn);
OjsMT]
fj3(i)=(1-xn)/(1+xn);
l4AXjq2
fj3(Ny-2-i)=(1-xn)/(1+xn);
E=]$nE]b
end
AQD`cG
]%Lk#BA@A
%2.迭代求解电场和磁场
O'S9y
)j}v3@EM5
for t=1:T;
UV\&9>@L
for i=2:Nx; % 为了使每个电场周围都有磁场进行数组下标处理
nU/x,W[}
for j=2:Ny;
>6:UWvV 1
dz(i,j)=gi3(i)*gj3(j)*dz(i,j)+gi2(i)*gj2(j)*0.5*(hy(i,j)-hy(i-1,j)-hx(i,j)+hx(i,j-1)); %
这个公式是什么意思?在资料上找不到呀!
A'suZpL
end;
MCTTm^8O
end; % 电场循环结束
p4@0Dz`Q
Ygc.0VKMR
pulse=sin(2*pi*f*t*dt); % 正弦波源
+,UuJ6[n
%pulse=exp(-4*pi*(t*dt-t0)^2/(2/f)^2);高斯脉冲情况
;aDYw [
dz(ic,jc)=dz(ic,jc)+pulse; %软源,就是为了防止反射做的一个处理
+HEL ^
Erm]uI9`
for i=1:Nx; %为了使每个电场周围都有磁场进行数组下标处理
;!B>b)%
for j=1:Ny;
%Mf3OtPiJW
ez(i,j)=ga(i,j)* dz(i,j); %反映煤质的情况都是放到这里的
+r$VrNVs
end;
nG7E j#1
end; % 电荷密度循环结束
&IP`j~b
uOJso2Mx
for j=1:Ny;
yAQ)/u[|
ez(1,j)=0;
Rts.jm>[
ez(Nx,j)=0;
:?:R5_Nd=
end
}[: i!t.m
Q&vU|y
for i=1:Nx;
]u47]L#
ez(i,1)=0;
:oytJhxU
ez(i,Ny)=0;
e#^vA$d
end
H,;9' *84
P(B&*1X
for i=1:Nx; % 为使每个磁场周围都有电场进行数组下标处理
;-VXp80J
for j=1:Ny-1;
*~^M_wej
curl_e=ez(i,j)-ez(i,j+1);
Kza5_7p`L
ihx(i,j)=ihx(i,j)+fi1(i)*curl_e;
6c*QBzNL
hx(i,j)=fj3(j)*hx(i,j)+fj2(j)*0.5*(curl_e+ihx(i,j));
0}-MWbG
end;
a 1~@m[
& ..
{4r } jH
`gdk,L]
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
lanzhiyu
UID :3862
注册:
2007-07-15
登录:
2008-06-06
发帖:
8
等级:
旁观者
1楼
发表于: 2007-10-24 19:37:38
xn=0.33*(xnum/npml)^3; %这里的0.333并不是严格的计算,而是经验值
3-_`x9u*
上面的0.33是不是就是PML边界里的最大sigma?
共
条评分
离线
伊谱系龙
UID :2307
注册:
2007-04-29
登录:
2009-02-26
发帖:
27
等级:
准仿真大师级
2楼
发表于: 2007-10-26 16:28:55
为了方便编程、运算和调试,程序语言与公式有一些不同。
a@N 1"O
具体描述请在置顶贴下载
r_3=+
electromagnetic simulation using fdtd method
VX e7b
@WP%kX.?
0.33可以理解为SigmaMax,计算方法在在葛老师的书中113页有提到。
共
条评分
别人追求完美,我追求完美中的完美!
离线
lanzhiyu
UID :3862
注册:
2007-07-15
登录:
2008-06-06
发帖:
8
等级:
旁观者
3楼
发表于: 2007-10-26 18:25:04
葛老师的书,我这里只有第一版的
共
条评分
离线
海聆羽
谁帮我改下程序啊 。。。万分感谢
UID :81280
注册:
2011-08-09
登录:
2013-01-14
发帖:
13
等级:
仿真新人
4楼
发表于: 2011-08-11 10:57:56
都是一些迭代公式啊
共
条评分
红色六月
发帖
回复