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

📄 rectpixel.asv

📁 通过计算晶体结构来确定其光谱分布
💻 ASV
字号:
%RectPixel.m
%Ref:Linfang Shen, Sailing He, and Sanshui Xiao, Large absolute band gaps
%in two-dimensional photonic crystals formed by large dielectric pixels,
%Physical Review B 66, 165315-1->-6 (2002)
clear;
clear global;
close all;

chn=3;                  %Half number of pixels in one cell
pw=1;                   %Width of pixel
cn=2*chn;               %Number of pixles in one cell
cw=cn*pw;               %Width of cell
ebxn=rand(cw);
HN=cw;                  %Half number of Fourier coefficients
N=2*HN+1;
fx=(-HN:HN);
fy=fx;
Mebxn=zeros(N^2,N^2,3);
FSrr=zeros(N,N,3);
FSrc=zeros(N,N,3);
FScr=zeros(N,N,3);
FScc=zeros(N,N,3);
FSr=zeros(N,N*N,3);
Fsc=zeros(N,N*N,3);
FS=zeros(N,2*N^2-1,3);
for flag=1:3
    for n=0:-1:-2*HN
        for m=0:-1:-2*HN
            FSrr(1-n,1-m,flag)=ebxn_2D_FS(ebxn,pw,cw,m,n,flag);
        end
        for m=0:2*HN
            FSrc(1-n,1+m,flag)=ebxn_2D_FS(ebxn,pw,cw,m,n,flag);
        end        
    end
    for n=2*HN:-1:0
        for m=0:-1:-2*HN
            FScr(n+1,1-m,flag)=ebxn_2D_FS(ebxn,pw,cw,m,n,flag);
        end
        for m=0:2*HN
            FScc(n+1,1+m,flag)=ebxn_2D_FS(ebxn,pw,cw,m,n,flag);
        end        
    end
    for n=1:N
        st=(n-1)*N+1;
        ed=st+N-1;
        FSr(:,st:ed,flag)=toeplitz(FSrc(n,:,flag),FSrr(n,:,flag));
        FSc(:,st:ed,flag)=toeplitz(FScc(n,:,flag),FScr(n,:,flag));
    end
    FS(:,:,flag)=horz(FSc(:,1:N^2-1,flag),FSr(:,:,flag));
    for n=1:N
        st1=(n-1)*N+1;
        ed1=st+N-1;
        st2=2*HN*N+1-(n-1)*N;
        ed2=st2+N^2-1;
        Mebxn(st1:ed1,:,flag)=FS(:,st2:ed2,flag);
end
clear FSrr FSrc FScr FScc FSr FSc
disp('RectPixel ends');

⌨️ 快捷键说明

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