⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用fdtd方法分析二维tm波在正弦波源激励情况下,正方形mur吸收边界的性能.txt

📁 用FDTD方法分析二维TM波在正弦波源激励情况下
💻 TXT
字号:
程序1:用FDTD方法分析二维TM波在正弦波源激励情况下,正方形Mur吸收边界的性能
clear;clc;
N=100;
c=3e8;
f=1.5*10^(9);
lambda=c/f
eb=8.85e-12;
u=4*pi*10^-7;
Ez1=zeros(N+1,N+1);
Hx1=zeros(N+1,N);
Hy1=zeros(N,N+1);
Ez2=zeros(N+1,N+1);
Hx2=zeros(N+1,N);
Hy2=zeros(N,N+1);
deltaL=lambda/10;
deltaT=deltaL/(2*c);
 
for  n=1:200 
    ca=1;
    cb=deltaT/eb;
    cp=1;
    cq=deltaT/u;%迭代系数
    It=sin(2*pi*f*n*deltaT);
    %非边界场值迭代
    clear i j;
    for i=1:(N+1)
        for j=1:N
            Hx2(i,j)=cp*Hx1(i,j)-cq*(Ez1(i,j+1)-Ez1(i,j))/deltaL;
        end
    end
    clear i j;
    for i=1:N
        for j=1:(N+1)
            Hy2(i,j)=cp*Hy1(i,j)+cq*(Ez1(i+1,j)-Ez1(i,j))/deltaL;
        end
    end
    clear i j;
    for i=2:N
        for j=2:N
Ez2(i,j)=ca*Ez1(i,j)+cb*((Hy2(i,j)-Hy2(i-1,j))/deltaL-(Hx2(i,j)-Hx2(i,j-1))/deltaL);
        end
    end
    clear i j;
    i=50;j=50;
    Ez2(i,j)=Ez1(i,j)+It;%激励加入
    %边界非角点场值迭代
%左边界
    clear i j;
    i=1;
    for j=2:N
Ez2(i,j)=Ez1(i+1,j)+(c*deltaT-deltaL)*(Ez2(i+1,j)-Ez1(i,j))/(c*deltaT+deltaL);
    end
%右边界
    clear i j;
    i=N+1;
    for j=2:N
Ez2(i,j)=Ez1(i-1,j)+(c*deltaT-deltaL)*(Ez2(i-1,j)-Ez1(i,j))/(c*deltaT+deltaL);
    end
%上边界
    clear i j;
    j=N+1;
    for i=2:N
Ez2(i,j)=Ez1(i,j-1)+(c*deltaT-deltaL)*(Ez2(i,j-1)-Ez1(i,j))/(c*deltaT+deltaL);
    end
%下边界
    clear i j;
    j=1;
    for i=2:N
Ez2(i,j)=Ez1(i,j+1)+(c*deltaT-deltaL)*(Ez2(i,j+1)-Ez1(i,j))/(c*deltaT+deltaL);
    end
%角点的迭代
    clear i j;
Ez2(1,1)=Ez1(2,2)+(c*deltaT-sqrt(2)*deltaL)*(Ez2(2,2)-Ez1(1,1))/(c*deltaT+sqrt(2)*deltaL);
Ez2(N+1,N+1)=Ez1(N,N)+(c*deltaT-sqrt(2)*deltaL)*(Ez2(N,N)-Ez1(N+1,N+1))/(c*deltaT+sqrt(2)*deltaL);
Ez2(1,N+1)=Ez1(2,N)+(c*deltaT-sqrt(2)*deltaL)*(Ez2(2,N)-Ez1(1,N+1))/(c*deltaT+sqrt(2)*deltaL);
Ez2(N+1,1)=Ez1(N,2)+(c*deltaT-sqrt(2)*deltaL)*(Ez2(N,2)-Ez1(N+1,1))/(c*deltaT+sqrt(2)*deltaL);
%一次迭代结束,新得到的值变为下次迭代的旧值
    clear i j;
    for i=1:(N+1);
        for j=1:(N+1)
            Ez1(i,j)=Ez2(i,j);
        end
    end
    clear i j;
    for i=1:(N+1)
        for j=1:N
            Hx1(i,j)=Hx2(i,j);
        end
    end
     clear i j;
    for i=1:N
        for j=1:(N+1)
            Hy1(i,j)=Hy2(i,j);
        end
    end
%一次迭代结束
end
clear i j;
i=1:(N+1);
j=1:(N+1);
figure(1);
contour(i,j,Ez2(i,j));xlabel('x');ylabel('y');

⌨️ 快捷键说明

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