zoukankan      html  css  js  c++  java
  • 二维光子晶体带隙 占空比vs带隙结构

    程序如下

    %This is a simple demo for Photonic Crystals simulation 
    %10 points is considered.
    %by Gao Haikuo 
    %date:20170411
    
    clear; clc;
    global NG G f  Nkpoints eigenValue modeset kCorner 
    global epsa epsb epssys a b1 b2
    epssys=1.0e-6; %设定一个最小量,避免系统截断误差或除0错误
    
    %this is the lattice vector and the reciprocal lattice vector
    a=1; a1=a*[1 0]; a2=a*[0 1]; 
    b1=2*pi/a*[1 0];b2=2*pi/a*[0 1];
    Nkpoints=10; %每个方向上取的点数,
    modeset=2;% 1:'TE' 2 'TM'
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    %定义晶格的参数
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    epsa = 8.9; %inner
    epsb = 1; %outer
    Pf = 0.1257; %Pf = Ac/Au 填充率,可根据需要自行设定
    figure(1);
    kCorner=(2*pi/a)*[epssys 0;1/2 0;1/2 1/2]; %T X M 
    
    for Pf=0.05:0.05:0.785
        fprintf(['
     Pf:',num2str(Pf),'to',num2str(0.785),'.
    ']);
        Au =a^2; %二维格子原胞面积
        Rc = (Pf *Au/pi)^(1/2); %介质柱截面半径
        Ac = pi*(Rc)^2; %介质柱横截面积
        
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %get gap
        [G,f]=getGAndf(Pf,Rc);
    
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %get gap
        eigenValue=getFrequency(kCorner);
        
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %get gap
        gap=getGap();
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %绘draw band
        %drawBand(gap);
        for i=1:size(gap,1)
          plot([Pf ,Pf ],[gap(i,1),gap(i,2)]);
          hold on
        end
        axis([0 0.8 0 0.8]);
    end
  • 相关阅读:
    043_生成随机密码
    042_提示用户输入年份后测试判断是否为闰年
    041_查找 Linux 系统中的僵尸进程
    040_删除某个目录下大小为 0 的文件
    039_显示 CPU 厂商信息
    038_使用脚本自动创建逻辑卷
    037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
    bzoj1537
    bzoj2466
    bzoj1047
  • 原文地址:https://www.cnblogs.com/Iknowyou/p/6723969.html
Copyright © 2011-2022 走看看