登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
二维pml差分离散格式的几个问题?
发帖
回复
785
阅读
1
回复
[
求助
]
二维pml差分离散格式的几个问题?
离线
wjdwin
UID :76973
注册:
2011-05-08
登录:
2015-11-12
发帖:
29
等级:
仿真新人
0楼
发表于: 2011-06-02 16:05:41
这是论坛里下载的程序,我对其中电场的计算步骤不是很理解,%%%%%%%%%%%%%%%%%%%%%%%%计算电场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
U!XS;a)
%%%%%%%%%%%%%% ex%%%%%%%%%%%%%%%%%%
XE3'`D!
for ki=1:(ke+2*kp)
5/gDK+%4D(
for kj=(kp+1):(ke+kp+1)
l;sy0S"DO]
ex(ki,kj)=ex(ki,kj)+0.5*(hz(ki,kj)-hz(ki,kj-1));
;f,c't@w
end
eUl/o1~mXa
end 计算电场时ex(ki,kj)=ex(ki,kj)+0.5*(hz(ki,kj)-hz(ki,kj-1));左边公式得系数怎么是0.5呢?不应该是dt/(dy*e0)?,还有ki的范围不是从kp+1到kp+ke+1?
_U{([M>;
UZEI:k,dv
完整程序如下
l%Gw_0.?e
clc,clear
@HBEt^!
%%%% 二维FDTD TE wave pml吸收边界(指数差分)
F`nb21{0y&
ke=80;%元包数
&TG5rUUg
kp=8; %pml 层数
mR8W]'gl.L
ex(ke+2*kp+1,ke+2*kp+1)=0;%实际电场217
GpbC M~x
ey(ke+2*kp+1,ke+2*kp+1)=0;%实际电场217
- }!H3]tr
hz(ke+2*kp+1,ke+2*kp+1)=0;%实际磁场216,即两端为电场边界
jKZt~I
hzx(ke+2*kp+1,ke+2*kp+1)=0;
s4 %(>Q
hzy(ke+2*kp+1,ke+2*kp+1)=0;
4wi(?
kc=(ke+2*kp)/2;%激励源中心 hz(kc,kc)
ri1C-TJM)
e0=8.85*10^-12; % 真空介电常数
W$qd/'%
mu0=4*3.14159*10^-7; % 真空磁导率
p"*y58
c0=1/sqrt(e0*mu0);% 真空中光速
{B*W\[ns
f=1e9; % 频率
WZ!WxX>zO
lambda=c0/f; %波长
B/Gd(S`@q
dx=lambda/10;% dx
ds[QwcV9-
dy=lambda/10;% dy
#k<":O
dt=(dx/2)/c0; %dt
zq1mmFIO
fWF|,A>>b
sigxm=0.33; % 电导率最大值
N~pIC2Woo
sigmxm=sigxm*(mu0/e0);%导磁率最大值
O+=vEp(
nn=3; %pml层中电导率.导磁率指数
dY"}\v6
%%%%%%%% 开始主程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
qn"D#K'&(
T=0;
MHL("v(@B
%Nsteps=input('Nsteps=')%循环次数
Pv<FLo%u<
Nsteps=1000;
AM} brO
for n=1:Nsteps
V@d)?T
T=T+1;
0)9"M.AIvo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0)Rw|(Fpo]
hz=hzx+hzy;
ec Oy6@UDY
hz(kc,kc)=sin(2*pi*f*T*dt);
eQO#Qso]
%%%%%%%%%%%%%%%%%%%%%%%%计算电场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5cK@WE:
%%%%%%%%%%%%%% ex%%%%%%%%%%%%%%%%%%
M+wt__vHf
for ki=1:(ke+2*kp)
xt4)Ya
for kj=(kp+1):(ke+kp+1)
l{ex?
ex(ki,kj)=ex(ki,kj)+0.5*(hz(ki,kj)-hz(ki,kj-1));
Gg\G'QU
end
aTGdmj!
end
Fg/dS6=n`?
%%%%%% 下边pml层电场ex%%%%%%%%%%%%%%%%%%%%%
fqs]<qi
VGw(6`|!
for ki=1:(ke+2*kp)
4$,,Ppn
for kj=2:kp
e75UMWaeC
sigx=sigxm*((kp+1-kj)/kp)^nn;
44\>gI<
ex(ki,kj)=ex(ki,kj)*exp(-sigx*dt/e0)+(1-exp(-sigx*dt/e0))/(dy*sigx)*sqrt(e0/mu0)*(hz(ki,kj)-hz(ki,kj-1));
?zq+jLyo
end
9kKnAf4Z
end
a;$P:C{gj?
P6Bl *@G
%%%%%% 上边pml层电场ex%%%%%%%%%%%%%%%%%%%%%
}.)s%4p8
for ki=1:(ke+2*kp)
Fv?=Z-wk
for kj=(ke+kp+2):(ke+2*kp)
1\dn1Hh
sigx=sigxm*((kj-ke-kp-1)/kp)^nn;
U,1AfzlF
ex(ki,kj)=ex(ki,kj)*exp(-sigx*dt/e0)+(1-exp(-sigx*dt/e0))/(dy*sigx)*sqrt(e0/mu0)*(hz(ki,kj)-hz(ki,kj-1));
4R>zPEo
end
yBLUNIr
end
NHw x:-RH
^*R(!P^
%%%%%%%%%%%%%% ey%%%%%%%%%%%%%%%%%%
b'ml=a#i0
for ki=(kp+1):(ke+kp+1)
5&CDHc7Oj
for kj=1:(ke+2*kp)
`ya;:$(6
ey(ki,kj)=ey(ki,kj)-0.5*(hz(ki,kj)-hz(ki-1,kj));
t ]c{c#N/
end
oK+ WF
end
5)zn :$cz
%%%%%%%%%%%%%%%左边pml层中ey%%%%%%%%%%%%%%%%%%%
oKFT?"[X
for ki=2:kp
.Qt4&B
for kj=1:(ke+2*kp)
jnuY{0(&
sigx=sigxm*((kp+1-ki)/kp)^nn;
)[&_scSa
ey(ki,kj)=ey(ki,kj)*exp(-sigx*dt/e0)-(1-exp(-sigx*dt/e0))/(dx*sigx)*sqrt(e0/mu0)*(hz(ki,kj)-hz(ki-1,kj));
TO;.eN!sv
end
,J mbqOV?!
end
$R8w+ Id
%%%%%% 右边pml层电场ey%%%%%%%%%%%%%%%%%%%%%
gLL-VvJ[
for ki=(ke+kp+2):(ke+2*kp)
lEPAP|~uw
for kj=1:(ke+2*kp)
R*1kR|*_)
sigx=sigxm*((ki-ke-kp-1)/kp)^nn;
1 7hTr
ey(ki,kj)=ey(ki,kj)*exp(-sigx*dt/e0)-(1-exp(-sigx*dt/e0))/(dx*sigx)*sqrt(e0/mu0)*(hz(ki,kj)-hz(ki-1,kj));
5 waw`F
end
7.<^j[?
end
vMSW$Bx ;
Aox3s?
%%%%%%%%%%%%%%%电场循环结束%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Oajv^H,Em
~9D~7UR
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L6 6-LMkH
%%%%%%%%%%%%%%%磁场循环
dMl+ko
%%%%%%%%%%%%%%下边pml中hzy,含sigmy
A1cb"N^
for ki=1:(ke+2*kp)
^T4Ay=~{
for kj=1:kp
A%Z)wz{
sigmx=sigmxm*((kp-kj+0.5)/kp)^nn;
0"xPX#Cvj
hzy(ki,kj)=hzy(ki,kj)*exp(-sigmx*dt/mu0)+(1-exp(-sigmx*dt/mu0))/(dx*sigmx)*sqrt(mu0/e0)*(ex(ki,kj+1)-ex(ki,kj));
0MIUI<;j
end
o%M<-l"!/
end
TrE3S'EU#R
%%%%中间hzy(不含sigmy)
kvsA]tK.
for ki=1:(ke+2*kp)
S"snB/
for kj=(kp+1):(kp+ke)
,7|;k2
hzy(ki,kj)=hzy(ki,kj)+0.5*(ex(ki,kj+1)-ex(ki,kj));
tUE'K.-
end
MM{_Ur7Q
end
vxN0,l
%%%%%%%%%%%%%%%pml磁场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3Rl,GWK
~3WL)%
%%%%%%%%%%%%%%上边pml中hzy,含sigmx
qH%")7>
for ki=1:(ke+2*kp)
K2'O]#
for kj=(kp+ke+1):(ke+2*kp)
,:v&4x&=
sigmx=sigmxm*((kj-kp-ke-0.5)/kp)^nn;
Q"J-tP!
hzy(ki,kj)=hzy(ki,kj)*exp(-sigmx*dt/mu0)+(1-exp(-sigmx*dt/mu0))/(dx*sigmx)*sqrt(mu0/e0)*(ex(ki,kj+1)-ex(ki,kj));
U[_8WJ7+
end
9x~-*8aw
end
Q^eJ4{Ya:
NB8&
%%%%%%%%%%%%%%%左边pml中hzx,含sigmx
0?bA$y
for ki=1:kp
0? Yz]+{C
for kj=1:(ke+2*kp)
KSs 1CF'i
sigmx=sigmxm*((kp-ki+0.5)/kp)^nn;
TbE:||r?^
hzx(ki,kj)=hzx(ki,kj)*exp(-sigmx*dt/mu0)-(1-exp(-sigmx*dt/mu0))/(dx*sigmx)*sqrt(mu0/e0)*(ey(ki+1,kj)-ey(ki,kj));
OCyG_DLT$5
end
XOb}<y)r~
end
Az*KsY{/r
%%%%中间hzx(不含sigmx)
$*~Iu%Az
for ki=(kp+1):(kp+ke)
d<o.o?Vc
for kj=1:(ke+2*kp)
~hN~>0O
hzx(ki,kj)=hzx(ki,kj)-0.5*(ey(ki+1,kj)-ey(ki,kj));
L x|',6S
end
['X[qn
end
;~zNqdlH
%%%%%%%%%%%%%%右边pml中hzx,含sigmx
ro| vh\y
for ki=(kp+ke+1):(ke+2*kp)
+1{fzb>9_
&nbs ..
96|[}:+$&:
Ar, 9U9
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
zwwj_871215
努力,坚强
UID :75011
注册:
2011-04-04
登录:
2012-11-12
发帖:
118
等级:
仿真二级
1楼
发表于: 2011-06-03 12:42:52
对,我也不理解,希望有高手指点
共
条评分
发帖
回复