📄 handbook.txt
字号:
P.R.E 67(046607) (2003) & J.A.P.94(2) 811 (2003)
程序名:TMM(Plane Wave Based Transfer Matrix Method)
常数:
pi=3.141592653589793 圆周率
error=0.001 相对误差 用于判断计算结果的准确性
m=15:每一个层单元(Layer)的离散层数(Slice)
输入参数:
a:REAL(8),晶格常数(micrometer)
f:REAL(8),填充率 圆形的介质柱/空气孔半径与晶格常数的比值r/a 范围:0.0~0.5
die1:REAL(8),周期介支柱/空气孔介电常数(相对值)
die2:REAL(8),背景的介电常数(相对值)
theta_k,phi_k:REAL(8),入射波矢的极化角和方位角
theta_E,phi_E:REAL(8),入射波的电场矢量的极化角和方位角
内部参数:
a1,a2:REAL(8),分别为TM,TK方向离散化得到的光栅(slice)中的周期长度
b1,b2:REAL(8),用a1,a2表示的周期光栅的的Bragg波矢(倒格矢)
c1,c2:REAL(8),c1是每层光栅中对应于介质柱或空气孔部分的宽度;c2是当Layer与Layer发生重叠时属于相邻层单元
的介质柱或空气孔部分的宽度
h:REAL(8),每一层光栅的厚度
sh_i_1:REAL(8),临时存放层单元重叠部分的厚度,用于判断重叠部分是否离散完毕
y01,y02:REAL(8),两种情况下相邻光栅的平移距离
theta_i:REAL(8),圆柱/圆孔离散化过程中采用角度平均得到的第i个离散化角
ko,kox,koy,koz:REAL(8),入射波真空波矢,z方向为波传播方向,y在周期结构平面内,
x平行于介支柱/空气孔
Eox,Eoy,Eoz:REAL(8),入射电磁波的电场分量
RT_result:REAL(8),2000*3矩阵,用于存放波数(第1列)反射率(第2列)透射率(第3列)
temp:REAL(8),反射率/透射率的相对误差
sum:REAL(8),所有频率处的反射率/透射率的总和
temp_result:REAL(8),2000*2矩阵,用于临时存放反射率(第1列)/透射率(第2列)
k0:INTEGER,频率域的离散点
n:INTEGER,EF0,EFz等的维数,包括E的X,Y分量的Bragg波矢数目
nn:INTEGER,E的X或Y分量的Gragg波矢数目
i:INTEGER,循环变量
m_unit:INTEGER,在TM和TK方向的重复单元数
RT:INTEGER,RT=1计算反射谱,RT=2计算透射谱
t1:REAL(8),n*n矩阵,物理意义同文献,是E的一阶微分方程与磁场的系数矩阵
p:REAL(8),n*n矩阵,物理意义同文献,是T1和T2矩阵的乘积
sa:COMPLEX(8),n*n矩阵,光栅层中的电场E与向前和向后传播的电场的系数矩阵
ta:COMPLEX(8),n*n矩阵,光栅层中的磁场H与向前和向后传播的电场的系数矩阵
beta:COMPLEX(8),n*n矩阵,传输系数(本征值)矩阵,对角元是传输系数
S0:COMPLEX(8),n*n矩阵,空气层中的电场E与向前和向后传播的电场的系数矩阵,物理意义同sa
T0:COMPLEX(8),n*n矩阵,空气层中的电场H与向前和向后传播的电场的系数矩阵,物理意义同ta
s:COMPLEX(8),2n*2n矩阵,单层光栅层(Slice)的传递矩阵(散射矩阵S)
layer1:COMPLEX(8),2n*2n矩阵,第1个层单元(Layer)的传递矩阵(散射矩阵S)
layer2:COMPLEX(8),2n*2n矩阵,第2个层单元(Layer)的传递矩阵(散射矩阵S)
slab:COMPLEX(8),2n*2n矩阵,重复周期(unit,有2个Layer组成)的传递矩阵(散射矩阵S)
EF0:COMPLEX(8),n*1向量,入射电磁波的列向量
EFn:COMPLEX(8),n*1向量,反射/透射电磁波的列向量(由RT决定)
Ez:COMPLEX(8),nn*1向量,反射/透射电磁波的Z分量的列向量(由RT决定)
外部函数:
RT_fun(ko,kox,koy,koz,b1,n,nn,EFn,Ez)子函数。
用于计算反射率(RT=1)和透射率(RT=2)
输入参数如上所述
输出:REAL(8),RT=1为反射率;RT=2为透射率
overlap(i,a,f,m,h,sh_i_1,c1,c2,KM)子程序
用于计算c1,c2,h和判别圆孔/圆柱离散是否结束
输入参数
i:INTEGER,离散化过程中的循环次数
a:REAL(8),光栅周期
f:REAL(8),填充率
m:INTEGER,离散化过程中的光栅离散总数
KM:INTEGER,KM=1计算TM方向,KM=2计算TK方向
输出参数
h:REAL(8),光栅层厚度
sh_i_1:REAL(8),临时存放层单元重叠部分的厚度,用于判断重叠部分是否离散完毕
c1,c2:REAL(8),c1是每层光栅中对应于介质柱或空气孔部分的宽度;c2是当Layer与Layer发生重叠时属于相邻层单元
的介质柱或空气孔部分的宽度
Ez_array(ko,kox,koy,b,n,nn,EF0,slab,T0,EFn,Ez,RT)子程序
用于计算反射/透射电磁波的电场的X,Y,Z分量
输入参数
ko,kox,koy:REAL(8),入射波真空波矢,z方向为波传播方向,y在周期结构平面内,
x平行于介支柱/空气孔
b:REAL(8),光栅周期的倒格矢
n,nn:INTEGER,矩阵维数和Bragg阶数
EF0:COMPLEX(8),n*1向量,入射电磁波的列向量
slab:COMPLEX(8),2n*2n矩阵,重复周期(unit,有2个Layer组成)的传递矩阵(散射矩阵S)
T0:COMPLEX(8),n*n矩阵,空气层中的电场H与向前和向后传播的电场的系数矩阵,物理意义同ta
输出参数
EFn:COMPLEX(8),n*1向量,反射/透射电磁波的列向量(由RT决定)
Ez:nn*1向量,反射/透射电磁波的Z分量的列向量(由RT决定)
s_layer2(n,layer1,b,y0,layer2)子程序
用于计算第2层Layer的散射矩阵
输入参数
n:INTEGER,矩阵维数
b:REAL(8),光栅周期的倒格矢
y0:REAL(8),Y方向的平移距离
layer1:COMPLEX(8),2n*2n矩阵,第1层层单元的散射矩阵
输出参数
layer2:COMPLEX(8),2n*2n矩阵,第2层层单元的散射矩阵
s_layer1(n,s,layer)子矩阵
通过散射矩阵S的迭代关系计算若干层的传递矩阵
输入参数
n:INTEGER,矩阵维数
s:COMPLEX(8),2n*2n矩阵,单层光栅/层单元的传递矩阵
输入输出参数
layer:COMPLEX(8),2n*2n矩阵,输入时为上一次迭代的结果,表示前i层的传递矩阵,输出时为
迭代后的传递矩阵
s_matrix(h,n,S0,T0,sa,ta,beta,s)子程序
用于计算传递矩阵(散射矩阵S)
输入参数
h:REAL(8),光栅层(Slice)厚度
n:INTEGER,矩阵维数
S0:COMPLEX(8),n*n矩阵,空气层中的电场E与向前和向后传播的电场的系数矩阵,物理意义同sa
T0:COMPLEX(8),n*n矩阵,空气层中的电场H与向前和向后传播的电场的系数矩阵,物理意义同ta
sa:COMPLEX(8),n*n矩阵,光栅层中的电场E与向前和向后传播的电场的系数矩阵,也是传递矩阵的子矩阵
ta:COMPLEX(8),n*n矩阵,光栅层中的磁场H与向前和向后传播的电场的系数矩阵,也是传递矩阵的子矩阵
输入输出参数
beta:COMPLEX(8),n*n矩阵,输入时为本征值矩阵,输出时为e指数,表示相应矩阵元上的位相因子
输出参数
s:COMPLEX(8),2n*2n矩阵,层单元/整个光子晶体的传递矩阵
ST0(b,kox,koy,ko,n,S0,T0)子程序
用于计算空气层的传递矩阵的子矩阵S0,T0(物理意义如前述)
输入参数
b:REAL(8),光栅周期的倒格矢
kox,koy,ko:REAL(8),入射电磁波的波矢
n:INTEGER,矩阵维数
输出参数
S0:COMPLEX(8),n*n矩阵,空气层中的电场E与向前和向后传播的电场的系数矩阵,物理意义同sa
T0:COMPLEX(8),n*n矩阵,空气层中的电场H与向前和向后传播的电场的系数矩阵,物理意义同ta
STa(ko,t1,p,beta,sa,ta,n)子程序
用于计算光栅层中的传递矩阵的子矩阵sa,ta(物理意义如前述)
输入参数
ko:REAL(8),入射电磁波的波矢
t1:REAL(8),n*n矩阵,物理意义同文献,是E的一阶微分方程与磁场的系数矩阵
p:REAL(8),n*n矩阵,物理意义同文献,是T1和T2矩阵的乘积
n:INTEGER,矩阵维数
输出参数
beta:COMPLEX(8),n*n矩阵,传输系数(本征值)矩阵,对角元是传输系数
sa:COMPLEX(8),n*n矩阵,光栅层中的电场E与向前和向后传播的电场的系数矩阵,也是传递矩阵的子矩阵
ta:COMPLEX(8),n*n矩阵,光栅层中的磁场H与向前和向后传播的电场的系数矩阵,也是传递矩阵的子矩阵
construc(a,c1,c2,b,kox,koy,ko,die1,die2,n,t1,p)子程序
用于构筑系数矩阵t1,本征矩阵p
输入参数
a:REAL(8),光栅周期
c1:REAL(8),每层光栅中对应于介质柱或空气孔部分的宽度;
c2:REAL(8),当Layer与Layer发生重叠时属于相邻层单元的介质柱或空气孔部分的宽度
b:REAL(8),光栅周期的倒格矢
ko,kox,koy:REAL(8),入射电磁波的波矢
die1:REAL(8),周期圆柱/圆孔的介电常数
die2:REAL(8),基体的介电常数
n:INTEGER,矩阵维数
输出参数
t1:REAL(8),n*n矩阵,物理意义同文献,是E的一阶微分方程与磁场的系数矩阵
p:REAL(8),n*n矩阵,物理意义同文献,是T1和T2矩阵的乘积
delta(i,j)子函数
用于计算delta函数
输入参数:
i:INTEGER,Bragg波矢阶数
j:INTEGER,Bragg波矢阶数
输出参数:
delta:REAL(8),i=j为1.0;i/=j为0.0
ftrans(a,b,c1,c2,die1,die2,k,l,n)子函数
用于计算光栅周期分布的介电函数的Fourier系数
输入参数:
a:REAL(8),光栅周期
b:REAL(8),光栅的Bragg波矢
c1:REAL(8),周期圆柱/圆孔在光栅(slice)中的宽度
C2:REAL(8),相邻光栅的周期圆柱/圆孔在本光栅中的交叠部分的宽度
die1:REAL(8),周期圆柱/圆孔的介电常数
die2:REAL(8),基体的介电常数
k:INTEGER,Bragg波矢的阶数
l:INTEGER,Bragg波矢的阶数
n:INTEGER,n=1时计算介电函数的Fourier系数;n=2时计算介电函数倒数的Fourier系数
输出参数:
ftrans:REAL(8),周期函数的Fourier系数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -