登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
大家帮忙看看我这个UPML有耗介质的迭代方程 ..
发帖
回复
3158
阅读
1
回复
[
求助
]
大家帮忙看看我这个UPML有耗介质的迭代方程写的对吗(代码已贴出)?
离线
xiaoyuan
UID :53338
注册:
2010-02-28
登录:
2015-12-05
发帖:
156
等级:
仿真二级
0楼
发表于: 2010-08-29 06:12:32
小弟初学者,我基于论坛里Program author: Keely J. Willis, Graduate Student UW Computational Electromagnetics Laboratory
W;o\}irep
Director: Susan C. Hagness编的真空UPML代码的基础上改编成UPML连接有耗介质的代码,但是一旦我把sigma赋值后,比如让sigma=0.5,结果就不对,非常小(10的负一百多次方),而且幅值是一直增大的趋势。但当把sigma赋成0时,结果看上去似乎就合理。不知道为什么,想请各位有经验的高手给点建议或找找原因。 谢谢大家!!
`4$" mO>+
0Uybh.dC
下面是我的迭代方程。其中磁场迭代方程我没有动它,和源代码一样。电场迭代方程我是基于talflove的书第二版第七章7.10节的公式。
Iw48+krm>
J \G8g,@
%
Update magnetic field
H 7R1GaJ
0t<TZa]V
bstore=bx;
;[*7UE+#7
bx(2:ie_tot,:,:)=D1hx(2:ie_tot,:,:).* bx(2:ie_tot,:,:)-...
Qg4qjX](?
D2hx(2:ie_tot,:,:).*((ez(2:ie_tot,2:jh_tot,:)-ez(2:ie_tot,1:je_tot,:))-...
3ldOOQW%
(ey(2:ie_tot,:,2:kh_tot)-ey(2:ie_tot,:,1:ke_tot)))./delta;
f^',J@9@
Iunt!L
hx(2:ie_tot,:,:)= D3hx(2:ie_tot,:,:).*hx(2:ie_tot,:,:)+...
\=nY&Ml
D4hx(2:ie_tot,:,:).*(D5hx(2:ie_tot,:,:).*bx(2:ie_tot,:,:)-...
1[^2f70n
D6hx(2:ie_tot,:,:).*bstore(2:ie_tot,:,:));
8_:jPd!3
F+}MW/ra@
bstore=by;
A}W&=m8!
by(:,2:je_tot,:)=D1hy(:,2:je_tot,:).* by(:,2:je_tot,:)-...
*O+N4tq
D2hy(:,2:je_tot,:).*((ex(:,2:je_tot,2:kh_tot)-ex(:,2:je_tot,1:ke_tot))-...
VdYu| w;v
(ez(2:ih_tot,2:je_tot,:)-ez(1:ie_tot,2:je_tot,:)))./delta;
G<>`O;i
j]kx~
hy(:,2:je_tot,:)= D3hy(:,2:je_tot,:).*hy(:,2:je_tot,:)+...
o^lKM?t
D4hy(:,2:je_tot,:).*(D5hy(:,2:je_tot,:).*by(:,2:je_tot,:)-...
_o<8R@1
D6hy(:,2:je_tot,:).*bstore(:,2:je_tot,:));
I*'QD)
&"25a[x{B
bstore=bz;
fD V:ueO
bz(:,:,2:ke_tot)=D1hz(:,:,2:ke_tot).* bz(:,:,2:ke_tot)-...
6Si z9
D2hz(:,:,2:ke_tot).*((ey(2:ih_tot,:,2:ke_tot)-ey(1:ie_tot,:,2:ke_tot))-...
OI1&Z4Lx
(ex(:,2:jh_tot,2:ke_tot)-ex(:,1:je_tot,2:ke_tot)))./delta;
wG-X833\(
rs<UWk<q
hz(:,:,2:ke_tot)= D3hz(:,:,2:ke_tot).*hz(:,:,2:ke_tot)+...
5z=;q!3
D4hz(:,:,2:ke_tot).*(D5hz(:,:,2:ke_tot).*bz(:,:,2:ke_tot)-...
`L0}^|`9
D6hz(:,:,2:ke_tot).*bstore(:,:,2:ke_tot));
5B"j\TwQ
,%D \
% Update electric field
{E>kFeg
BE:GB?XBH
p1store=px1;
#IgY'L
z}kD:A)a
px1(:,2:je_tot,2:ke_tot)=C1ex(:,2:je_tot,2:ke_tot).* px1(:,2:je_tot,2:ke_tot)+...
)=2iGEVW
C2ex(:,2:je_tot,2:ke_tot).*((hz(:,2:je_tot,2:ke_tot)-hz(:,1:je_tot-1,2:ke_tot))-...
c7sW:Yzil
( hy(:,2:je_tot,2:ke_tot)-hy(:,2:je_tot,1:ke_tot-1)))./delta;
s% I)+|
P1)9OE
p2store=px2;
5{j1<4zxR
$+ lc;N
px2(:,2:je_tot,2:ke_tot)=C3ex(:,2:je_tot,2:ke_tot).* px2(:,2:je_tot,2:ke_tot)+...
R5|c4v{B
C4ex(:,2:je_tot,2:ke_tot).*( px1(:,2:je_tot,2:ke_tot)-...
e6,/i
p1store(:,2:je_tot,2:ke_tot));
& [4Gv61
mKn:EqA
ex(:,2:je_tot,2:ke_tot)=C5ex(:,2:je_tot,2:ke_tot).* ex(:,2:je_tot,2:ke_tot)+...
vrQ/Yf:\B
C6ex(:,2:je_tot,2:ke_tot).*(C7ex(:,2:je_tot,2:ke_tot).* px2(:,2:je_tot,2:ke_tot)-...
F~&bgl[YZ
C8ex(:,2:je_tot,2:ke_tot).*p2store(:,2:je_tot,2:ke_tot));
bluhiiATd
BQ &|=a6
p1store=py1;
X 5pp8~
8NA2C.gOZ
py1(2:ie_tot,:,2:ke_tot)=C1ey(2:ie_tot,:,2:ke_tot).* py1(2:ie_tot,:,2:ke_tot)+...
qm8[ ^jO&
C2ey(2:ie_tot,:,2:ke_tot).*((hx(2:ie_tot,:,2:ke_tot)-hx(2:ie_tot,:,1:ke_tot-1))-...
c:4i&|n
( hz(2:ie_tot,:,2:ke_tot)-hz(1:ie_tot-1,:,2:ke_tot)))./delta;
D/Bb)]9I
ax,%07hJ
p2store=py2;
tP7l ;EX4
s [@II]
py2(2:ie_tot,:,2:ke_tot)=C3ey(2:ie_tot,:,2:ke_tot).* py2(2:ie_tot,:,2:ke_tot)+...
~ /]u72?rP
C4ey(2:ie_tot,:,2:ke_tot).*( py1(2:ie_tot,:,2:ke_tot)-...
mD=x3d
p1store(2:ie_tot,:,2:ke_tot));
b,~6cDU
n:' Mpux
ey(2:ie_tot,:,2:ke_tot)=C5ey(2:ie_tot,:,2:ke_tot).* ey(2:ie_tot,:,2:ke_tot)+...
S9U`-\L0
C6ey(2:ie_tot,:,2:ke_tot).*(C7ey(2:ie_tot,:,2:ke_tot).* py2(2:ie_tot,:,2:ke_tot)-...
pWK7B`t
C8ey(2:ie_tot,:,2:ke_tot).*p2store(2:ie_tot,:,2:ke_tot));
uq{w1O5
v2/@Pu!kg
p1store=pz1;
qfx=
m)g:@^$
pz1(2:ie_tot,2:je_tot,:)=C1ez(2:ie_tot,2:je_tot,:).* pz1(2:ie_tot,2:je_tot,:)+...
D&: