userdefinedstructure.m
来自「一组很好的FDTD计算二维光子带隙的程序」· M 代码 · 共 155 行
M
155 行
function UserDefinedStructure
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Electromagnetic Finite-Difference Time-Domain %
% Version 1.20, Release 1 %
% %
% (C) Copyright 2005 %
% Sharif University of Technology %
% School of Electrical Engineering %
% All Rights Reserved %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
Cnt=LatticeCnt; % Number of grid points per unit cell
if StructureType <= 0 % Simple Square Cell
xCnt=Cnt*xCells;
yCnt=Cnt*yCells;
elseif StructureType == 1 % Simple Triangular Cell
xCnt=Cnt*xCells;
yCnt=round(Cnt*sqrt(3))*yCells;
end
SquareBandRodsExample
%SquareBandHolesExample
%TriangularBandHolesExample
%DefectExample
%WaveguideRodsExample
%TriangularGKWaveguideExample
function SquareBandRodsExample
% Must set xCells and yCells to 1
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
EpsilonHole=Silicon;
EpsilonHost=Air;
Radius=0.25; % Ratio of Rod Radius to Lattice Constant
Host=ones(xCnt,yCnt)*EpsilonHost;
Cell=PutHole(Host,(xCnt+1)/2,(yCnt+1)/2,Radius,EpsilonHole);
Epsilon=Cell;
Mu=ones(xCnt,yCnt);
function SquareBandHolesExample
% Must set xCells and yCells to 1, StructureType to 0, and
% BoundaryType to 1
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
EpsilonHole=Air;
EpsilonHost=Silicon;
Radius=0.45; % Ratio of Hole Radius to Lattice Constant
Host=ones(xCnt,yCnt)*EpsilonHost;
Cell=PutHole(Host,(xCnt+1)/2,(yCnt+1)/2,Radius,EpsilonHole);
Epsilon=Cell;
Mu=ones(xCnt,yCnt);
function DefectExample
% Must set xCells and yCells to 7, StructureType to 0, and
% BoundaryType to 6
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
EpsilonHole=Silicon;
EpsilonHost=Air;
Radius=0.25; % Ratio of Rod Radius to Lattice Constant
Cell=ones(Cnt,Cnt)*EpsilonHost;
Cell=PutHole(Cell,(Cnt+1)/2,(Cnt+1)/2,Radius,EpsilonHole);
Dfct=Host;
Epsilon=[
Cell Cell Cell Cell Cell Cell Cell
Cell Cell Cell Cell Cell Cell Cell
Cell Cell Cell Cell Cell Cell Cell
Cell Cell Cell Dfct Cell Cell Cell
Cell Cell Cell Cell Cell Cell Cell
Cell Cell Cell Cell Cell Cell Cell
Cell Cell Cell Cell Cell Cell Cell
];
Mu=ones(xCnt,yCnt);
function WaveguideRodsExample
% Must set xCells to 1 and yCells to 7, StructureType to 0, and
% BoundaryType to 4
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
EpsilonHole=Silicon;
EpsilonHost=Air;
Radius=0.25; % Ratio of Rod Radius to Lattice Constant
Cell=ones(Cnt,Cnt)*EpsilonHost;
Cell=PutHole(Cell,(Cnt+1)/2,(Cnt+1)/2,Radius,EpsilonHole);
Dfct=Host;
Epsilon=[Cell Cell Cell Dfct Cell Cell Cell];
Mu=ones(xCnt,yCnt);
function TriangularBandHolesExample
% Must set xCells and yCells to 1, StructureType to 1, and
% BoundaryType to 1
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
EpsilonHole=Air;
EpsilonHost=Silicon;
Radius=0.30; % Ratio of Hole Radius to Lattice Constant
Host=ones(xCnt,yCnt)*EpsilonHost;
Cell=PutHole(Host,(xCnt+1)/2,(yCnt+1)/2,Radius,EpsilonHole);
Cell=PutHole(Cell,1 , 1,Radius,EpsilonHole);
Cell=PutHole(Cell,1 ,yCnt,Radius,EpsilonHole);
Cell=PutHole(Cell,xCnt, 1,Radius,EpsilonHole);
Cell=PutHole(Cell,xCnt,yCnt,Radius,EpsilonHole);
Epsilon=Cell;
Mu=ones(xCnt,yCnt);
function TriangularGKWaveguideExample
% Must set xCells to 1 and yCells to 7, StructureType to 1, and
% BoundaryType to 6
global xCnt yCnt StructureType xCells yCells
global Mu Epsilon Air Silicon GaAs Cnt LatticeCnt
EpsilonHole=Air;
EpsilonHost=Silicon;
Radius=0.30; % Ratio of Hole Radius to Lattice Constant
Host=ones(xCnt,yCnt/yCells)*EpsilonHost;
Cell=PutHole(Host,1 , 1,Radius,EpsilonHole);
Cell=PutHole(Cell,1 ,yCnt/yCells,Radius,EpsilonHole);
Cell=PutHole(Cell,xCnt, 1,Radius,EpsilonHole);
Dfct=PutHole(Cell,xCnt,yCnt/yCells,Radius,EpsilonHole);
Cell=PutHole(Dfct,(xCnt+1)/2,(yCnt/yCells+1)/2,Radius,EpsilonHole);
Epsilon=[Cell Cell Cell Dfct Cell Cell Cell];
Mu=ones(xCnt,yCnt);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?