fd2d1_fu.m

来自「fdtd 一维程序」· M 代码 · 共 72 行

M
72
字号
close all
clear all

IE=60;JE=60;
ic=IE/2;
jc=JE/2;
ddx=0.01;
dt=ddx/6e8;
epsz=8.8e-12;
kk=0;
kkk=1;

ga=zeros(IE,JE);
dz=zeros(IE,JE);
ez=zeros(IE,JE);
hx=zeros(IE,JE);
hy=zeros(IE,JE);
ga(:,:)=1.;

t0=20;
spread=6.0;
T=0;
nsteps=500;

for n=1:nsteps
    T=T+1;
    for j=2:JE
        for i=2:IE
            dz(i,j)=dz(i,j)+.5*(hy(i,j)-hy(i-1,j)-hx(i,j)+hx(i,j-1));
        end
    end
    
    pulse= exp(-.5*((t0-T)/spread)^2);
    dz(ic,jc)=pulse;
    
    for j=1:JE-1
        for i=1:IE-1
            ez(i,j)=ga(i,j)*dz(i,j);
        end
    end
    
    for j=1:JE-1
        for i=1:IE-1
            hx(i,j)=hx(i,j)+.5*(ez(i,j)-ez(i,j+1));
        end
    end
        
    for j=1:JE-1
        for i=1:IE-1
            hy(i,j)=hy(i,j)+.5*(ez(i+1,j)-ez(i,j));
        end
    end
    
    %记录动画帧 
    frame_step=3;
    kk=kk+1;
    if kk==frame_step
        [x,y]=meshgrid(1:JE,1:IE);
        contour(x,y,ez)
        %view(2)     %x为横坐标,y为纵坐标,ez为随x y 变换的函数
       % axis([0 JE 0 IE -3 3]);
        axis([0 JE 0 IE]);
        Fe(kkk)=getframe;
        kk=0;
        kkk=kkk+1;
    end
end
% [x,y]=meshgrid(1:60);  
% mesh(x,y,ez)   %x为横坐标,y为纵坐标,ez为随x y 变换的函数


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?