📄 lightpoint.m
字号:
clear;
ez(1:300,1:300)=0;
hx(1:300,1:300)=0;
hy(1:300,1:300)=0;
eu(1:300)=0;
er(1:300)=0;
ed(1:300)=0;
el(1:300)=0;
for n=1:1000
n
ez(150,150)=sin(n/10.0)+ez(150,150);%Point light source
%FDTD
hx(1:300,2:300)=hx(1:300,2:300)-1/376.73/5*(ez(1:300,2:300)-ez(1:300,1:299));
hy(2:300,1:300)=hy(2:300,1:300)+1/376.73/5*(ez(2:300,1:300)-ez(1:299,1:300));
eu=ez(1:300,2:2);
ed=ez(1:300,299:299);
el=ez(2:2,1:300);
er=ez(299:299,1:300);
ez(2:299,2:299)=ez(2:299,2:299)+376.73/5*(-hx(2:299,3:300)+hx(2:299,2:299)+hy(3:300,2:299)-hy(2:299,2:299));
%Absorb boundary of first order
ez(2:299,1:1)=eu(2:299)-2/3*(ez(2:299,2:2)-ez(2:299,1:1));
ez(2:299,300:300)=ed(2:299)-2/3*(ez(2:299,299:299)-ez(2:299,300));
ez(1:1,2:299)=el(2:299)-2/3*(ez(2:2,2:299)-ez(1,2:299));
ez(300:300,2:299)=er(2:299)-2/3*(ez(299,2:299)-ez(300,2:299));
%Absorb boundary of second order
ez(2:299,1)=ez(2:299,1)+(hy(3:300,1)+hy(3:300,2)-hy(2:299,1)-hy(2:299,2))/12/376.73;
ez(2:299,300)=ez(2:299,300)-(hy(3:300,300)+hy(3:300,299)-hy(2:299,300)-hy(2:299,299))/12/376.73;
ez(1,2:299)=ez(1,2:299)-(hx(1,3:300)+hx(2,3:300)-hx(1,2:299)-hx(2,2:299))/12/376.73;
ez(300,2:299)=ez(300,2:299)+(hx(300,3:300)+hx(299,3:300)-hx(300,2:299)-hx(299,2:299))/12/376.73;
%four corner
ez(1,1)=eu(2)-1.214/1.614*(ez(2,2)-ez(1,1));
ez(1,300)=ed(2)-1.214/1.614*(ez(2,299)-ez(1,300));
ez(300,1)=eu(299)-1.214/1.614*(ez(300,2)-ez(300,1));
ez(300,300)=ez(299)-1.214/1.614*(ez(299,299)-ez(300,300));
end
%Draw the result
ez(145:155,145:155)=0;
figure(2);
mesh(abs(ez));
view(90,90);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -