登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
详细讨论一下这个二维的fdtd程序
发帖
回复
4243
阅读
4
回复
[
转载
]
详细讨论一下这个二维的fdtd程序
离线
lanzhiyu
UID :3862
注册:
2007-07-15
登录:
2008-06-06
发帖:
8
等级:
旁观者
0楼
发表于: 2007-10-24 19:20:06
clear;clc;
u=mJI*
~C;1}P%9x
% 1.初始化
OI0tgkG
z'9Mg]&>
T=200; % 迭代次数
"@h 5 SF
Nx=100;
\Gzo^w
Ny=100;
~wX4j
npml=8; %PML的网格数量
VOmWRy"L
,vN0Jpf}\8
c0=3*10^8;
=2BB ~\G+
f=1.5*10^(9);
`;'fCO!
lambda=c0/f;
ku`bwS
T@. $Zpz
wl=10;
{1jywb }
dx=lambda/wl; %取lamda/10的精度
74hQ?Atw:
dy=lambda/wl;
P2Or|_z
pi=3.14159;
Ku W$
*,Mg
dt=dx/(2*c0); %由于是二维情况同,取t=dx/2c0
`LWZ!Q
t0=20*dt; %为高斯脉冲的仿真作准备
r]0UF0#
8N58w)%7`
epsz=1/(4*pi*9*10^9);
eqFOPK5q
epsilon=1;
a%h'utF{[
sigma=0;
fUJ\W"qya
K% Gbl#
ic=Nx/4; % 源的X位置
JW`Kh*,~<
jc=Ny/4; % 源的Y位置
Sn_zhQxG
m4@f&6x
for i=1:Nx+1;
&R'%OFi
for j=1:Ny+1;
/nX+*L}d/
dz(i,j)=0; %z方向电位移
lvyD#|P
ez(i,j)=0; % z方向电场
1.5lJ:[G
hx(i,j)=0; % x方向磁场
6BPZ2EQ
hy(i,j)=0; % y方向磁场
qL \*rYe<
ihx(i,j)=0;
%5zztReI
ihy(i,j)=0;
cuw3}4m%
iz(i,j)=0; % z方向求和中间参量
<;?&<qMo,P
end;
&dC #nw
end;
rX8EXraO
Q I.*6-(
for i=2:Nx;
"eH~/ 6A
for j=2:Ny;
N,><,7!q$,
ga(i,j)=1;
o4Bl!7U
end;
H$ sNp\[{
end;
ElEa*70~g
%PML参数的设置
a%wK[yVp
for i=1:Nx;
bnWKfz5
gi2(i)=1;
%这些数组代表是什么?
`Al[gG?/!
gi3(i)=1;
%这些数组代表是什么?
jJ' LM>e
fi1(i)=0;
%这些数组代表是什么?
K%p*:P
fi2(i)=1;
%这些数组代表是什么?
CwV1~@{-
fi3(i)=1;
%这些数组代表是什么?
kP6P/F|RcZ
end
rLzYkZ
;[_w&"[6a
for j=1:Ny;
x_&m$Fh
gj2(j)=1;
%这些数组代表是什么?
qwb`8o
gj3(j)=1;
I)-u)P?2x
fj1(j)=0;
p2=Sbb
fj2(j)=1;
<IF\;,.c
fj3(j)=1;
LX %8a^?;
end
>%"Q]p
>:ZlYZ6sI
for i=1:npml+1; %设置PML层中的参数
mndUQN_Gb
xnum=npml+1-i;
7{vnhl(Z
xn=0.33*(xnum/npml)^3; %这里的0.333并不是严格的计算,而是经验值
Oc]&1>M
gi2(i)=1.0/(1+xn); %这些数组代表是什么?
10/N-=NG18
gi2(Nx-1-i)=1/(1+xn); %这些数组代表是什么?
FC= %_y
gi3(i)=(1-xn)/(1+xn); %这些数组代表是什么?
J6!t"eB+
gi3(Nx-1-i)=(1-xn)/(1+xn); %这些数组代表是什么?
G0^O7w^5
VH{SE7
xn=0.25*((xnum-0.5)/npml)^3; %这里的0.25和0.333也是一个道理
F7(~v2|
fi1(i)=xn; %这些数组代表是什么?
>e4
fi1(Nx-2-i)=xn;
'z#{'`$a
fi2(i)=1.0/(1+xn);
,]N!I%SI
fi2(Nx-2-i)=1/(1+xn);
n},~2
fi3(i)=(1-xn)/(1+xn);
)-3!-1
fi3(Nx-2-i)=(1-xn)/(1+xn);
#0-!P+c[
end
%;.|?gR
h&!k!Su3#
for i=1:npml+1;
6]|NB &
xnum=npml+1-i;
V.IgEE]
xn=0.33*(xnum/npml)^3;
,x+_/kqx
gj2(i)=1.0/(1+xn);
cZRLYOC
gj2(Ny-1-i)=1/(1+xn);
D&WXa|EOK
gj3(i)=(1-xn)/(1+xn);
mne^PSI:
gj3(Ny-1-i)=(1-xn)/(1+xn);
N_vVEIO9
7eh|5e$@
xn=0.25*((xnum-0.5)/npml)^3;
HY]vaA`
fj1(i)=xn;
NVnKgGlHgd
fj1(Ny-2-i)=xn;
u1 uu_*
!U"1ZsO)l
fj2(i)=1.0/(1+xn);
5JbPB!5;
fj2(Ny-2-i)=1/(1+xn);
@"}dbW <DV
fj3(i)=(1-xn)/(1+xn);
y*M,&,$
fj3(Ny-2-i)=(1-xn)/(1+xn);
?80@+y]
end
uTRa]D_q
Sa&~\!0t
%2.迭代求解电场和磁场
;y#6Nx,:
O=1uF
for t=1:T;
B;8YX>r
for i=2:Nx; % 为了使每个电场周围都有磁场进行数组下标处理
}lgqRg)F9[
for j=2:Ny;
mu1oD;lQ
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)); %
这个公式是什么意思?在资料上找不到呀!
HrA6wn\O
end;
uP/WRQ{rW>
end; % 电场循环结束
jl<rxO?-F
kWfNgu$xK
pulse=sin(2*pi*f*t*dt); % 正弦波源
/$hfd?L
%pulse=exp(-4*pi*(t*dt-t0)^2/(2/f)^2);高斯脉冲情况
?4 `K8
dz(ic,jc)=dz(ic,jc)+pulse; %软源,就是为了防止反射做的一个处理
@j$tpz
PL8{|Q
for i=1:Nx; %为了使每个电场周围都有磁场进行数组下标处理
(k"oV>a|
for j=1:Ny;
lLHHuQpuj
ez(i,j)=ga(i,j)* dz(i,j); %反映煤质的情况都是放到这里的
XM/P2=;
end;
E<3hy
end; % 电荷密度循环结束
+q]
%PG::b
for j=1:Ny;
VI%879Z\e
ez(1,j)=0;
,q#^_/?
ez(Nx,j)=0;
>GiM?*cC
end
0EM`,?i .Q
p[e|N;W8A
for i=1:Nx;
F9e$2J)C
ez(i,1)=0;
!MB %
ez(i,Ny)=0;
XN"V{;OP1
end
RB_7S!qC5
jlER_I]
for i=1:Nx; % 为使每个磁场周围都有电场进行数组下标处理
0k5Zl?
for j=1:Ny-1;
NQ<~$+{
curl_e=ez(i,j)-ez(i,j+1);
+G&h
ihx(i,j)=ihx(i,j)+fi1(i)*curl_e;
yZ,k8TJ",
hx(i,j)=fj3(j)*hx(i,j)+fj2(j)*0.5*(curl_e+ihx(i,j));
Y#PbC
end;
v@k62@;
& ..
{KL<Hx2M
_ Z6/r^c
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
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并不是严格的计算,而是经验值
Ta!.oC[
上面的0.33是不是就是PML边界里的最大sigma?
共
条评分
离线
伊谱系龙
UID :2307
注册:
2007-04-29
登录:
2009-02-26
发帖:
27
等级:
准仿真大师级
2楼
发表于: 2007-10-26 16:28:55
为了方便编程、运算和调试,程序语言与公式有一些不同。
8ZG'?A+{
具体描述请在置顶贴下载
tsfOPth$*
electromagnetic simulation using fdtd method
a2=wJhk
mu"]B]
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
都是一些迭代公式啊
共
条评分
红色六月
发帖
回复