资源简介

基于matlab实现的3维空间电磁场的fdtd程序,并加入Mur吸收边界条件吸收掉边界产生的回波以仿真给定激励在无限大空间产生的电磁波的传播。最后用slice函数画出各时刻电场Ez分量幅值以展示计算结果。 原理请参照:盛新庆,"电磁理论、计算、应用", 高等教育出版社

资源截图

代码片段和文件信息

%3D FDTD Dipole in free space 
format long g
clear all;
close all;
IE=40;
JE=40;
KE=40;
cc=3e8;                %speed of light 
mu0=4.0*pi*1.0e-7;             %permeability of free space
eps0=1.0/(cc*cc*mu0);         %permitivity of free space

ic=floor(IE/2);
jc=floor(JE/2);
kc=floor(KE/2);
ddx=0.01;
ddy=ddx;
dt=ddx/cc/2;
x=linspace(ddxIE*ddxIE);
y=x; z=x;
[X Y Z]=meshgrid(xyz);

g1=dt/eps0/ddx;
g2=dt/mu0/ddx;
g3=(cc*dt-ddx)/(cc*dt+ddx);

ex=zeros(IEJEKE);
ey=zeros(IEJEKE);
ez=zeros(IEJEKE);
hx=zeros(IEJEKE);
hy=zeros(IEJEKE);
hz=zeros(IEJEKE);

%---------------------Time instance specification-------------------------
t0=20.0;
spread=6.0;
T=0;
nsteps=100;

for n=1:nsteps
    T=T+1;
    %----------------------start of main FDTD loop-

评论

共有 条评论