登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
二维pml差分离散格式的几个问题?
发帖
回复
784
阅读
1
回复
[
求助
]
二维pml差分离散格式的几个问题?
离线
wjdwin
UID :76973
注册:
2011-05-08
登录:
2015-11-12
发帖:
29
等级:
仿真新人
0楼
发表于: 2011-06-02 16:05:41
这是论坛里下载的程序,我对其中电场的计算步骤不是很理解,%%%%%%%%%%%%%%%%%%%%%%%%计算电场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tK*%8I\s
%%%%%%%%%%%%%% ex%%%%%%%%%%%%%%%%%%
Zo'/^S
for ki=1:(ke+2*kp)
#>@<n3rq
for kj=(kp+1):(ke+kp+1)
c%jsu"
ex(ki,kj)=ex(ki,kj)+0.5*(hz(ki,kj)-hz(ki,kj-1));
"$]ls9-%n
end
W0C{~|e
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?
P$6W`^DZ
fVG$8tB
完整程序如下
&|s+KP|d
clc,clear
tSI& "-
%%%% 二维FDTD TE wave pml吸收边界(指数差分)
)\D2\1e(c
ke=80;%元包数
^v ]UcnB0
kp=8; %pml 层数
l_bL,-|E8
ex(ke+2*kp+1,ke+2*kp+1)=0;%实际电场217
3Ca \`m)l
ey(ke+2*kp+1,ke+2*kp+1)=0;%实际电场217
p}96uaC1
hz(ke+2*kp+1,ke+2*kp+1)=0;%实际磁场216,即两端为电场边界
E]\D>[0O
hzx(ke+2*kp+1,ke+2*kp+1)=0;
N&?T0Ge;
hzy(ke+2*kp+1,ke+2*kp+1)=0;
#NWZ k.S
kc=(ke+2*kp)/2;%激励源中心 hz(kc,kc)
W)|c[Q\
e0=8.85*10^-12; % 真空介电常数
Z+r%_|kZ
mu0=4*3.14159*10^-7; % 真空磁导率
FwXKRZa
c0=1/sqrt(e0*mu0);% 真空中光速
*Yj~]E0`1
f=1e9; % 频率
@k_Jl>X
lambda=c0/f; %波长
.V8/ELr]
dx=lambda/10;% dx
<"hb#Tn
dy=lambda/10;% dy
C2CYIok$&
dt=(dx/2)/c0; %dt
| A3U@>6
(W7;}g ysh
sigxm=0.33; % 电导率最大值
Tt{U"EFO
sigmxm=sigxm*(mu0/e0);%导磁率最大值
||yXp2
nn=3; %pml层中电导率.导磁率指数
G(:s-x ig6
%%%%%%%% 开始主程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
S@9w'upd
T=0;
o`b$^hv{A
%Nsteps=input('Nsteps=')%循环次数
fS5GICx8R
Nsteps=1000;
-,FK{[h]ka
for n=1:Nsteps
;I[ht
T=T+1;
W\&WS"=~
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+.S#=
hz=hzx+hzy;
N[0 xqQ
hz(kc,kc)=sin(2*pi*f*T*dt);
>g>f;\mD7$
%%%%%%%%%%%%%%%%%%%%%%%%计算电场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N$C{f;xV
%%%%%%%%%%%%%% ex%%%%%%%%%%%%%%%%%%
mfu*o0
for ki=1:(ke+2*kp)
UaH26fWs
for kj=(kp+1):(ke+kp+1)
AGl|>f)
ex(ki,kj)=ex(ki,kj)+0.5*(hz(ki,kj)-hz(ki,kj-1));
zhuyePn
end
oK#\HD4U
end
I/mvQxp
%%%%%% 下边pml层电场ex%%%%%%%%%%%%%%%%%%%%%
ay=KfY5
r hiS
for ki=1:(ke+2*kp)
\d `dV0X
for kj=2:kp
5dg-d\6S
sigx=sigxm*((kp+1-kj)/kp)^nn;
l. XknF
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));
I/^q+l.=`{
end
>]:N?[Y_~}
end
dNOX&$/=
M4zX*&w.T
%%%%%% 上边pml层电场ex%%%%%%%%%%%%%%%%%%%%%
_= o1?R
for ki=1:(ke+2*kp)
F9Ifw><XM
for kj=(ke+kp+2):(ke+2*kp)
- P\S>G.
sigx=sigxm*((kj-ke-kp-1)/kp)^nn;
xN e_qO
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));
0q:(-z\S4
end
kyy0&L
end
'9IP;
=$^Wkau
%%%%%%%%%%%%%% ey%%%%%%%%%%%%%%%%%%
hO^&0?
for ki=(kp+1):(ke+kp+1)
{z.[tvE8h
for kj=1:(ke+2*kp)
8]sTX9
ey(ki,kj)=ey(ki,kj)-0.5*(hz(ki,kj)-hz(ki-1,kj));
`%FIgE^
end
}V\P,ck
end
di8W2cwz
%%%%%%%%%%%%%%%左边pml层中ey%%%%%%%%%%%%%%%%%%%
6.7`0v?,n
for ki=2:kp
/d{glOk
for kj=1:(ke+2*kp)
4C l,Iw/;
sigx=sigxm*((kp+1-ki)/kp)^nn;
DkDw>Nx<rs
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));
I(z>)S'7r
end
Gojl0?
end
'dmp4VT3
%%%%%% 右边pml层电场ey%%%%%%%%%%%%%%%%%%%%%
(:_%kmu
for ki=(ke+kp+2):(ke+2*kp)
pi^^L@@d
for kj=1:(ke+2*kp)
B@ZqJw9J[
sigx=sigxm*((ki-ke-kp-1)/kp)^nn;
3C>2x(]M
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));
[>b '}4
end
aEcktg6h
end
}s`jl``PM
bHhC56[M
%%%%%%%%%%%%%%%电场循环结束%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>v^2^$^u
<{$ev&bQ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
."~7 \E> t
%%%%%%%%%%%%%%%磁场循环
:*mA,2s
%%%%%%%%%%%%%%下边pml中hzy,含sigmy
1bV 2
for ki=1:(ke+2*kp)
cEDDO&u
for kj=1:kp
P]!LN\[
sigmx=sigmxm*((kp-kj+0.5)/kp)^nn;
hg%@ W
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));
GCcwEl!K^
end
u3Zzu \{
end
"2)+)Db
%%%%中间hzy(不含sigmy)
)m|X;eEo
for ki=1:(ke+2*kp)
>Sc$R0
for kj=(kp+1):(kp+ke)
|HaU3E*R
hzy(ki,kj)=hzy(ki,kj)+0.5*(ex(ki,kj+1)-ex(ki,kj));
wm); aWP
end
0MwG}|RC
end
(Wm/$P;
%%%%%%%%%%%%%%%pml磁场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xaGVu0q
^/_\etV
%%%%%%%%%%%%%%上边pml中hzy,含sigmx
DePV,.
for ki=1:(ke+2*kp)
^m6k@VM
for kj=(kp+ke+1):(ke+2*kp)
9F2w.(m
sigmx=sigmxm*((kj-kp-ke-0.5)/kp)^nn;
AzHIp^
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));
P`\m9"7
end
^tm++
end
PY^^^01P
/2g)Z!&+L
%%%%%%%%%%%%%%%左边pml中hzx,含sigmx
1_Dn?G^H
for ki=1:kp
vDu0
for kj=1:(ke+2*kp)
O, bfdc[g4
sigmx=sigmxm*((kp-ki+0.5)/kp)^nn;
^/`#9]<%
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));
L eG7x7n
end
t 3(%UB
end
'#cT4_D^lI
%%%%中间hzx(不含sigmx)
_Vdb?
for ki=(kp+1):(kp+ke)
|y{;|K
for kj=1:(ke+2*kp)
*k3 d^9o#
hzx(ki,kj)=hzx(ki,kj)-0.5*(ey(ki+1,kj)-ey(ki,kj));
.nj?;).
end
/3)YWFZZc
end
/E`l:&89)
%%%%%%%%%%%%%%右边pml中hzx,含sigmx
r*X}3t*
for ki=(kp+ke+1):(ke+2*kp)
JVJ1Ay/be
&nbs ..
,^MW)Gf<
GNhtnB
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
zwwj_871215
努力,坚强
UID :75011
注册:
2011-04-04
登录:
2012-11-12
发帖:
118
等级:
仿真二级
1楼
发表于: 2011-06-03 12:42:52
对,我也不理解,希望有高手指点
共
条评分
发帖
回复