登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
这个程序中ga(i,j)到底和电导率和介电常数是 ..
发帖
回复
2198
阅读
0
回复
[
讨论
]
这个程序中ga(i,j)到底和电导率和介电常数是什么关系?
离线
lalucky
UID :9226
注册:
2008-03-11
登录:
2008-03-12
发帖:
1
等级:
旁观者
0楼
发表于: 2008-03-11 16:54:37
clear;clc;
,$/Ld76U
+aL
%%%%%%%%%%%%%%% 1.初始化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
,cS#
L&)e}"
T=300; % 迭代次数
}xt^}:D
Nx=116;
K$,<<hl
Ny=116;
& [@)Er=
npml=8; %PML的网格数量
O50<h O]l
4-SU\_
c0=3*10^8;
6q8}8;STTY
f=1.5*10^(9);
*cCx]C.~
lambda=c0/f;
Um\HX6
X,aRL6>r
wl=10;
ut\X{.r7
dx=lambda/wl; %取lamda/10的精度
{[tmz;C
dy=lambda/wl;
zJW2F_
pi=3.14159;
Vm\zLWNB
"5<!
dt=dx/(2*c0); %由于是二维情况同,取t=dx/2c0
d]E={}qo&
t0=20*dt; %为高斯脉冲的仿真作准备
Qt{){uE
=E]tEi
epsz=1/(4*pi*9*10^9);
i6k6l%
epsilon=1;
o*/;Zp==
sigma=0;
9ghzK?Yc
Z\`SDC
ic=Nx/2; % 源的X位置
0Zwx3[bq6K
jc=Ny/2; % 源的Y位置
#J3o~,t<
M0xhcU_
for i=1:Nx+1;
]tT=jN&(
for j=1:Ny+1;
?xH{7)dO
dz(i,j)=0; %z方向电位移
,(Zxd4?y
ez(i,j)=0; % z方向电场
qMVuFwPhi
hx(i,j)=0; % x方向磁场
@@K/0:],
hy(i,j)=0; % y方向磁场
`<d.I%}
ihx(i,j)=0;
(?8i^T?WP=
ihy(i,j)=0;
Ul/m]b6-
iz(i,j)=0; % z方向求和中间参量
%m f)BC
end;
{+_p?8X
end;
8g!79q\c4
Qx,#Hj
for i=2:Nx;
BK4S$B
for j=2:Ny;
Cy uRj[;B
ga(i,j)=1;
3%(r,AD
end;
mOh?cjOi
end;
;@ixrj0u
"GZ}+K*GG
ga(8:Nx-8,8:60)=0.1;
NYP3u_ QX
+em!TO
%%%%%%%%%%%%%%%%%%%%PML参数的设置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A|1xK90^XT
for i=1:Nx;
LKc p.i
gi2(i)=1;
S-o)d
gi3(i)=1;
L-E?1qhP>
fi1(i)=0;
ejyx[CF
fi2(i)=1;
$Ugc:L<h+
fi3(i)=1;
5j.@)XXe
end
-ak.wwx\
As>Og
for j=1:Ny;
C=r`\W
gj2(j)=1;
X)hpbHa
gj3(j)=1;
G\MeJSt*
fj1(j)=0;
yH-&o,
fj2(j)=1;
N}%AUm/L
fj3(j)=1;
|wv+g0]Pg^
end
2;"vF9WMm
qGH[kd
2IW!EUR
for i=1:npml+1; %设置PML层中的参数
/{hT3ncb
xnum=npml+1-i;
ysK J=
xn=0.33*(xnum/npml)^3; %这里的0.333并不是严格的计算,而是经验值
}JST(d&
gi2(i)=1.0/(1+xn);
$8U$.~v
gi2(Nx-1-i)=1/(1+xn);
Q njK<}M9
gi3(i)=(1-xn)/(1+xn);
H $Az,-P
gi3(Nx-1-i)=(1-xn)/(1+xn);
GB}\ 7a
Cq/u$G
xn=0.25*((xnum-0.5)/npml)^3; %这里的0.25和0.333也是一个道理
$dKfUlO
fi1(i)=xn;
WgR%mm^
fi1(Nx-2-i)=xn;
Gr&e]M[ l
fi2(i)=1.0/(1+xn);
AN:s%w2
fi2(Nx-2-i)=1/(1+xn);
eq%cRd]u
fi3(i)=(1-xn)/(1+xn);
"]G'^
fi3(Nx-2-i)=(1-xn)/(1+xn);
u;H^4} OQ
end
0aY\(@
.wq j
for i=1:npml+1;
+JC"@
xnum=npml+1-i;
2>^(&95M
xn=0.33*(xnum/npml)^3;
+u=VO#IA#
gj2(i)=1.0/(1+xn);
U4-RI]Cpf
gj2(Ny-1-i)=1/(1+xn);
*&Iv Eu
gj3(i)=(1-xn)/(1+xn);
e8dZR3JL
gj3(Ny-1-i)=(1-xn)/(1+xn);
VT4>6u}
BC_<1 c
xn=0.25*((xnum-0.5)/npml)^3;
]!^wB 3j
fj1(i)=xn;
"}1cQ|0a
fj1(Ny-2-i)=xn;
tlD^"eq4:
|-{e!&
fj2(i)=1.0/(1+xn);
j*|0#q;e6
fj2(Ny-2-i)=1/(1+xn);
hy;V~J#
fj3(i)=(1-xn)/(1+xn);
QeFt WjlqC
fj3(Ny-2-i)=(1-xn)/(1+xn);
QnBWZUI
end
12'MzIsU's
3GKKC9C6
%%%%%%%%%%%%%%%%%%%2.迭代求解电场和磁场%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hs8JJGXWB
B.od{@I(Xp
for t=1:T;
u? >x
for i=2:Nx; % 为了使每个电场周围都有磁场进行数组下标处理
bcwb'D\a
for j=2:Ny;
LlgFQfu8
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));
SC%HHu\l
end;
Hpz1Iy@
end; % 电场循环结束
n_]B5U
zL}`7*d:v
%pulse=sin(2*pi*f*t*dt); % 正弦波源
!m~r0M7
pulse=exp(-4*pi*(t*dt-t0)^2/(2/f)^2); %高斯脉冲情况
w<THPFFF"
dz(ic,108)=pulse; %软源,就是为了防止反射做的一个处理
PR!0=E*}
RAu(FJ
for i=1:Nx; % 为了使每个电场周围都有磁场进行数组下标处理
YI*H]V%w
for j=1:Ny;
cy!P!t,@
ez(i,j)=ga(i,j)* dz(i,j); %反映煤质的情况都是放到这里的
/*fx`0mY)
end;
v)O].Hd
end; % 电荷密度循环结束
(-0d@eqw
:}fA98S
for j=1:Ny;
$Bc3| `K1v
ez(1,j)=0;
w/ZP.B
ez(Nx,j)=0;
@8m%*pBg
end
hNYO+LrI)
TAOsg0
for i=1:Nx;
;PG= 3j_
ez(i,1)=0;
Wf8@B#^{
ez(i,Ny)=0;
X,G"#j^
end
4@\$k+v
,.2qh|Ol
for i=1:Nx; % 为了使每个磁场周围都有电场进行数组下标处理
r ^*D8
for j=1:Ny-1;
AU)\ lyB
curl_e=ez(i,j)-ez(i,j+1);
Ws2?sn#x
ihx(i,j)=ihx(i,j)+fi1(i)*curl_e;
PB"=\>]`N
hx(i,j)=fj3(j)*hx(i,j)+fj2(j)*0.5*(curl_e+ihx(i,j));
G#`
end;
^Tj{}<yT
end; % 磁场HX循环结束
>)NS U
H)Me!^@[D
for i=1:Nx-1; % 为了使每个磁 ..
zmD7]?|
zBq&/?
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
发帖
回复