📄 1dfdtd.txt
字号:
一维FDTD程序
clc;clear;
%%%%%%%%%%%%%
N=200;%%%%%网格数
lamda=0.01;%%%%波长
c=3*10^8;
f=c/lamda;
ddx=lamda/20;%%%%%%网格长
dt=ddx/(2*c);%%%%%%时间步长
epsz=1/(4*pi*9*10^9);
epsilon=1;
sigma=0.5;
ix=zeros(1,N-1);
ez_low1=0;ez_low2=0;ez_low3=0;ez_low4=0;
%%%%%555
for i=1:N
ga(i)=1;
gb(i)=0;
ex(i)=0;
dx(i)=0;
hy(i)=0;
end
kstart=150;
for i=kstart:N
ga(i)=1/(epsilon+sigma*dt/epsz);
gb(i)=sigma*dt/epsz;
end
to=50;spread=20;%%%%源的参数
%%%%主循环
for t=1:500
for i=2:N
dx(i)=dx(i)+0.5*(hy(i-1)-hy(i));
end
%%%%%加入源
pulse=exp(-0.5*((to-t)/spread)^2);
dx(50)=dx(50)+pulse;
%%%%%将dx转化为ex
for i=1:N-1
ex(i)=ga(i)*(dx(i)-ix(i));
ix(i)=ix(i)+gb(i)*ex(i);
end
ex(1)=ez_low2; ez_low2=ez_low1; ez_low1=ex(2);
ex(N)=ez_low3; ez_low3=ez_low4; ez_low4=ex(N-1);
%%%%%%由电场转化为磁场
for i=1:N-1
hy(i)=hy(i)+0.5*(ex(i)-ex(i+1));
end
plot(ex);
drawnow;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -