登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
求助一维平面波的问题
发帖
回复
993
阅读
0
回复
[
求助
]
求助一维平面波的问题
离线
m4a1ken
UID :33675
注册:
2009-05-26
登录:
2014-01-26
发帖:
178
等级:
积极交流四级
0楼
发表于: 2009-09-25 13:30:23
模拟一维正弦平面波在自由空间的传播,只有Ei和Hi两个分量,如果入射波振幅为1,那么空间各点的振幅是不是应该为1呢,为什么我的结果是0.5左右,是不是我的入射波加错了?程序如下,matlab里运行,请大家指教,谢谢!
t"YN:y8-
%模拟一维平面波在自由空间的传播
^,` L!3
%设置参数部分
'a"Uw"/p[
clear all;
q&^H" fF
c=3.0e8; %光速
6Y9<| .
mu0=4*pi*1.0e-7; %真空磁导常数
qf{HGn_9~1
e0=8.85e-12; %真空介电常数
$ SZIJe"K
lambda=532e-9; %波长
So4#n7
f=c/lambda; %频率
SME]C ')7
dw=10; %数值波长
7yOBxb
ds=lambda/dw; %网格空间步长
chM-YuN|
dt=ds/(2*c); %时间步长
m",G;VN
steps_t=200*dw; %模拟时间步的次数
Y[W]YPs
source_location=2*dw; %光源的坐标位置
@?& i
t0=20; %高斯脉冲参数设置
kH4m6p
spread=6; %高斯脉冲参数设置
:bXTV?#0
PML_layer=9; %PML层数
t;_1 /mt
n=4; %PML层电导率阶数
N:,V{Pw
grids=10*dw; %一维网格数目
18]Q4s8E
Ei(grids+1)=0; %入射平面波电场分量
=FfR?6 ~
Hi(grids)=0; %入射平面波磁场分量
3V<c4'O\W
sigma_m=1/(30*pi*ds); %PML层电导率最大值
w{GEWD{&
num=PML_layer*2:-1:1;
{~#d_!(
sigma_x=sigma_m*((num*ds/2+ds/2).^(n+1)-(num*ds/2-ds/2).^(n+1))/((ds*PML_layer)^n*ds*(n+1));
=nlj|S ~3
sigma_x(PML_layer*2+1)=sigma_m*(ds/2)^(n+1)/((ds*PML_layer)^n*ds*(n+1));
;Hb"SB
rho_x=sigma_x*mu0/e0;
$)'LbOe
E_M=length(Ei);
{*nE8+..A
H_M=length(Hi);
.`oKd@I*"
for T=1:steps_t
YB(8 T"
pulse=sin(2*pi*f*T*dt);
CjJ n
%pulse=exp(-0.5*((t0-T)/spread)^2);
^=qV)j
%%%%%%%%%%%%%%%%%%%%%%%%%%% Ei %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
?<^^.Si
for i=1:PML_layer+1 %刷新上侧PML层Ei
S`vw<u4t
if i==1
W9{y1,G9
Ei(i)=exp(-sigma_x(1)*dt/e0)*Ei(i)-(1-exp(-sigma_x(1)*dt/e0))*sqrt(e0/mu0)/(sigma_x(1)*ds)*Hi(i);
OXZx!h
else
c*R18,5-
Ei(i)=exp(-sigma_x(2*i-1)*dt/e0)*Ei(i)-(1-exp(-sigma_x(2*i-1)*dt/e0))*sqrt(e0/mu0)/(sigma_x(2*i-1)*ds)*(Hi(i)-Hi(i-1));
EF;B)y=
end
](`:<>c
end
}&%&0$%
for i=E_M-PML_layer:E_M %刷新下侧PML层Ei
4I2#L+W
if i==E_M
61*b|.sl'#
Ei(i)=exp(-sigma_x(1)*dt/e0)*Ei(i)-(1-exp(-sigma_x(1)*dt/e0))*sqrt(e0/mu0)/(sigma_x(1)*ds)*(-Hi(i-1));
LYTnMrM
else
LN9.Q'@r?
Ei(i)=exp(-sigma_x(2*(E_M-i)+1)*dt/e0)*Ei(i)-(1-exp(-sigma_x(2*(E_M-i)+1)*dt/e0))*sqrt(e0/mu0)/(sigma_x(2*(E_M-i)+1)*ds)*(Hi(i)-Hi(i-1));
kRH D{6mol
end
ER:K^ Za
end
_w FK+>
for i=PML_layer+2:E_M-PML_layer-1 %刷新入射波电场分量
".?y!VY
Ei(i)=Ei(i)+0.5*(Hi(i-1)-Hi(i));
rym*W\AWx
end
S5~(3I )v
milQxSpj
%%%%%%%%%%%%%%%%%%%%%%%%%%% Hi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s:I 8~Cc
Hi(source_location)=pulse;
6` 3kNk;
for i=1:PML_layer %刷新左侧PML层Hi
a&[>kO
Hi(i)=exp(-rho_x(2*i)*dt/mu0)*Hi(i)-(1-exp(-rho_x(2*i)*dt/mu0))/(rho_x(2*i)*ds)*sqrt(mu0/e0)*(Ei(i+1)-Ei(i));
eQIS`T
end
^UyN)eX
for i=H_M-PML_layer+1:H_M &nbs ..
5'_:>0}
^[v>B@p*{
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
描述:一维程序
附件:
one_D.rar
(2 K) 下载次数:14
共
条评分
发帖
回复