登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
FDTD迷你代码-2D BPML
发帖
回复
1313
阅读
0
回复
[
RFEDA原创
]
FDTD迷你代码-2D BPML
离线
zuzero
UID :90389
注册:
2012-03-16
登录:
2014-09-11
发帖:
17
等级:
仿真新人
0楼
发表于: 2014-06-11 08:58:30
:0 W6uFNOU
clear;
l 8O"w&
clc;
E/"YId `A
e0=1e-9/(36*pi);%epsilon0
-kG3k> by_
m0=1e-7*(4*pi);%mu0
EzzTJ>
c=3e8;%light speed
3+CSQb8
f=1e9;
VqcBwJ!?p
lambda=c/f;%wavelength
l?3vNa FeR
omega=2*pi*f;%omega
]%gp?9wy
nd=20;%space grid ratio to lambda
%/{IssCR7
d=lambda/nd;%grid size
r+imn&FK8
s=0.5;%courantsteadycoefficient
Y5nz?a
dt=s*d/c;%time step
RpHpMtvNo/
nx=100;%grid x number
R'*<A3^
ny=100;%grid y number
07.nq;/R
na=10;%absorber layers thickness
,bB( 24LD
ezx=zeros(nx+1,ny+1);%Hz
r5f^WZ$-
ezy=zeros(nx+1,ny+1);%Hz
j4E H2v
hx=zeros(nx-1,ny);%Ex,derive to y
Zij"/gx\
hy=zeros(nx,ny-1);%Hy,derive to x
8ku? W
m=2;
Pk$}%;@v
sigmaMax=(m+1)/(150*pi*d);%lost tangent max
I#i?**
sigma=sigmaMax*((na-1:-1:0)/(na-1)).^m;%linearly distribution sigma
AC9{*K[
sigmam=sigma*m0/e0;% sigma m
+90u!r^v
sigma=(sigma(1:end-1)+sigma(2:end))/2;
Hfh@<'NL]
sigmax=zeros(nx-1,ny-1);
9b?i G
sigmay=zeros(nx-1,ny-1);
[GtcaX{Zz
sigmamx=zeros(nx,ny-1);
9uA, +
sigmamy=zeros(nx-1,ny);
#^5a\XJb
sigmax(1:na-1,:)=repmat(sigma',1,ny-1);
$cRcap
sigmax(end-na+2:end,:)=repmat(fliplr(sigma)',1,ny-1);
*e(:["v
sigmay(:,1:na-1)=repmat(sigma,nx-1,1);
kR<xtHW
sigmay(:,end-na+2:end)=repmat(fliplr(sigma),nx-1,1);
>}-~rZ
sigmamx(1:na,:)=repmat(sigmam',1,ny-1);
T$: >*
sigmamx(end-na+1:end,:)=repmat(fliplr(sigmam)',1,ny-1);
fUb1/-}
sigmamy(:,1:na)=repmat(sigmam,nx-1,1);
AyE%0KmraK
sigmamy(:,end-na+1:end)=repmat(fliplr(sigmam),nx-1,1);
fm3(70F\
caEzx=(e0/dt-sigmax/2)./(e0/dt+sigmax/2);
xCR; K]!
cbEzx=1/d./(e0/dt+sigmax/2);
L@7Qs6G2u
caEzy=(e0/dt-sigmay/2)./(e0/dt+sigmay/2);
gb.f%rlZ`
cbEzy=1/d./(e0/dt+sigmay/2);
Q{H17]W
cpHx=(m0/dt-sigmamy/2)./(m0/dt+sigmamy/2);
Z6 t E{/
cqHx=1/d./(m0/dt+sigmamy/2);
2~vo+ng
cpHy=(m0/dt-sigmamx/2)./(m0/dt+sigmamx/2);
kxwNbxC
cqHy=1/d./(m0/dt+sigmamx/2);
@''&nRC1
h=imagesc(ezx+ezy,0.1*[-1,1]);
1Z\(:ab13
axis equal tight;
Jb(DJ-&
for n=0:300
RxlszyE
ezx(nx/2+1,ny/2+1)=ezx(nx/2+1,ny/2+1)+sin(omega*n*dt);
JzHqNUn*M
ezy(nx/2+1,ny/2+1)=ezy(nx/2+1,ny/2+1)+sin(omega*n*dt);
J$1j-\KS
ezx(2:end-1,2:end-1)=caEzx.*ezx(2:end-1,2:end-1)+cbEzx.*diff(hy,1,1);
Bs_S.JP<`
ezy(2:end-1,2:end-1)=caEzy.*ezy(2:end-1,2:end-1)-cbEzy.*diff(hx,1,2);
IO}+[%ptc*
hx=cpHx.*hx-cqHx.*diff(ezx(2:end-1,:)+ezy(2:en ..
W;^Rx.W
^Ku\l #B
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
描述:请输入描述
图片:untitled.jpg
共
条评分
发帖
回复