资源描述:
《pwm法计算二维光子晶体能带的通用程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、functionPBGBand(ea,eb,R,PCType,Keach,TEorTM)%functionPBGBand(ea,eb,R,PCType,Keach,TEorTM)%--------------------------------------------------------------%
2、ThisisaprogramtocalculatethePhotonicBandsoftwo
3、%
4、dimensionPhotonicCrystalwithcircularinclusions.
5、%
6、ItcalculatesbothTEandTMmodes(EandHp
7、olarization)
8、%--------------------------------------------------------------%Parameters:%ea:Thedielectricconstantofthecircularinclusions.%eb:Thedielectricconstantofbackground.%R:Theradiusofdielectriccolumns%PCType=1:Squarelattice%=2:Triangularlattice%=3:Honeycomb%Keach:Thenumberofkvector
9、sineachwavevectorbranch.%TEorTM:=0:TEmodes%=1:TMmodes%--------------------------------------------------------------tic;TEorTM=1;PCType=2;Keach=6;R=0.3;ea=1;eb=10.5;disp('--------------------------------------------------')if(TEorTM==0)disp('PlanewaveexpansionmethodforPCbands:TEmodes');e
10、lse;disp('PlanewaveexpansionmethodforPCbands:TMmodes');enddisp('--------------------------------------------------')if(PCType==1)disp('Squarelattice');endif(PCType==2)disp('Triangularlattice');endif(PCType==3)disp('Honeycomblattice');end%ControlparametersKtype=3;%Thenumberofbandparts,suc
11、hasX->M,T->X,...NumberK=Ktype*Keach;%ThetotalnumberofKvector;NEIG=20;%NEIG:ThenumbercutoftheEigvalue.%Initialparametersa=1;%Latticeconstance.a1=a*[1,0];ifPCType==1a2=a*[0,1];endifPCType==2a2=a*[0.5,sqrt(3)/2];end%a1,a2arethebasicvectorsoflaccticecell.ac=abs(a1(1)*a2(2)-a1(2)*a2(1));%ac:A
12、reaoflatticecell.b1=2*pi/ac*[a2(2),-a2(1)];b2=2*pi/ac*[-a1(2),a1(1)];%b1,b2arevectorsinreciprocalspace.f=pi*R*R/ac;%f:Thefillingfraction,i.e.thefractionof%thetotalvolumeoccupiedbytherods.MaxDimForG=12;%ThemaxPotiveNumberofthereciprocallattice,GDimForG=2*MaxDimForG+1;NPW=DimForG*DimForG;%
13、NPW:ThenumberofPlaneWaves%%^%
14、Y%OOOOO-->(MaxDimForG,MaxDimForG)forthispoint!%OOOOO%--O--O--O--O--O-->X%OOOOO%OOOOO%
15、%
16、%initialtheGmatrixdisp('--------------------------------------------------')disp('DielectricconstantFT---BEGIN')gtemp=-MaxDimForG:MaxDimForG;gtemp1=repmat