二维光子晶体能带结构与带隙分析系统
项目介绍
本项目是一款基于 MATLAB 开发的专业光子晶体仿真分析工具。该系统旨在通过平面波展开法(Plane Wave Expansion Method, PWE)精确计算二维光子晶体的能带分布,并对光子带隙(Photonic Band Gaps, PBG)进行自动化提取与定量分析。程序能够处理多种晶格几何结构及复杂的物理参数,为光电子器件研究、禁带调控以及光子晶体教学提供可靠的数据支持。
功能特性
- 多晶格类型支持:内置正方形(Square)、三角形(Triangular)及蜂窝状(Honeycomb)三种经典二维晶格模型。
- 全偏振模拟:支持 TE(横电波/H-偏振)和 TM(横磁波/E-偏振)两种偏振模式的独立计算。
- 多种散射体形态:默认支持圆形截面散射体(圆柱),并根据晶格特征自动适应单元结构。
- 高对称路径自动生成:根据所选晶格类型,自动规划不可约布里渊区的采样路径,如 Gamma-X-M 或 Gamma-M-K。
- 自动带隙分析:程序具备智能搜索算法,能够自动识别所有能带间的禁带区域,并输出起始频率、截止频率、绝对带宽及归一化带宽比(Relative Bandgap Width)。
- 多维度可视化:提供倒格空间采样路径图、高精度能带结构图以及实空间介电常数分布示意图。
核心实现逻辑
程序遵循严谨的计算电磁学流程,主要分为以下几个阶段:
- 几何与物理参数配置:设定晶格常数、散射体半径及材料的背景与填充介电常数。
- 空间离散与基矢定义:根据晶格类型计算实空间基矢和倒格空间基矢,并生成二维倒格矢集合,确定平面波扩展的截断范围。
- 解析傅里叶变换:采用解析方式计算圆柱散射体的形状因子。对于复杂的蜂窝状晶格,引入结构因子以处理包含双原子的基元结构。
- 特征矩阵算子构造:
- 基于 Ho's Method(逆矩阵法)处理介电常数矩阵,提升收敛精度。
- 针对 TM 模式,构造关于电场分量的标量特征值方程。
- 针对 TE 模式,考虑磁场的矢量特性,通过点积运算构造算子矩阵。
- 特征值求解与归一化:沿预设的高对称路径扫描波矢 k,求解大规模特征值问题,并将计算结果转化为归一化频率($omega a / 2pi c$)。
- 结果产出:通过数值比对寻找相邻能带间的重叠空隙,生成分析报告并渲染可视化结果。
关键算法与实现细节
- 平面波展开法(PWE):将麦克斯韦方程组转化为倒格空间的矩阵方程,通过增加倒格矢扩展范围($N_{max}$)来提升计算精度。
- Ho's Method 精度优化:在构造矩阵时,程序先构造介电常数矩阵再对其执行逆运算,而非直接构造介电常数倒数的矩阵。这种方法在处理高折射率差介质时具有更好的数值稳定性和收敛速度。
- 形状因子(Shape Factor)计算:通过一阶贝塞尔函数(Bessel function of the first kind)解析表达圆柱体在倒格空间的权重分布。
- 蜂窝格点的结构因子处理:针对蜂窝晶格中一个晶胞包含两个格点($tau_1, tau_2$)的情况,程序通过相位因子叠加的方式实现了对复杂基元的支持。
- 带隙扫描算法:通过比对第 $n$ 能带的最大值与第 $n+1$ 能带的最小值,准确判定禁带的存在,并计算带宽比(即带隙宽度与中心频率之比)。
系统要求
- 软件环境:MATLAB R2018b 或更高版本。
- 依赖库:无需外部工具箱,仅依赖 MATLAB 核心数学函数库。
- 硬件配置:建议 8GB 以上内存,计算耗时随能带数量和倒格矢扩展范围($N_{max}$)的增加而增长。
使用说明
- 设定模型:在程序开头配置晶格类型、偏振模式及材料折射率参数。
- 调整精度:根据计算资源调整
N_max 参数(一般取 10-15 可获得较好精度)。 - 运行程序:执行计算,观察控制台输出的《带隙分析报告》。
- 分析图表:
- 检查左侧路径图,确认布里渊区覆盖是否完整。
- 观察中间能带图,淡红色覆盖区域即为光子带隙。
- 检查右侧示意图,验证实空间介电分布是否符合预期。