利用Comsol进行光学仿真:任意偏振态BIC的远场偏振调控及能带、品质因子计算与远场辐射偏振...
comsol光学仿真 任意偏振态BIC,利用扭转光子晶体实现远场偏振的调控,包含能带,品质因子计算以及远场辐射偏振椭圆绘制
最近在折腾COMSOL搞光学仿真,发现用扭曲结构玩BIC(连续谱束缚态)特别有意思。尤其是通过旋转光子晶体层实现远场偏振调控,简直像给光场装了个方向盘。今天就跟大伙儿唠唠怎么用COMSOL实现这个骚操作,重点讲能带调谐、Q值计算和偏振椭圆可视化这三板斧。
先看结构设计——咱做个双层正方晶格光子晶体,中间加个旋转角θ。核心操作就是在COMSOL里用参数化曲线画倾斜孔洞:
% 几何建模脚本片段
theta = 10[deg]; //旋转角参数
for i = 1:N
rotated_x = x0*cos(theta) - y0*sin(theta);
rotated_y = x0*sin(theta) + y0*cos(theta);
model.geom.create('cyl'+i, 'Cylinder').set('pos', [rotated_x, rotated_y]);
end
重点来了:上下两层结构必须用不同旋转角度的晶格,这样才能破坏面内对称性。网格划分建议用自由四面体+边界层,波导区域加密到λ/10以下,特别是空气-介质交界面别省算力。

能带计算时有个坑——得先扫完布里渊区边界再全局搜索极值点。用参数化扫描配合特征频率研究,记得在COMSOL里设置波矢分量kx和ky作为扫描参数。下图是典型TE模式能带,当θ=15°时出现平带区域,这就是BIC出现的信号:
![能带图示意图]
算Q值别直接拿频域数据,建议用时域衰减法更准。在共振峰附近加高斯脉冲激励,跑瞬态仿真记录场衰减。用这段后处理脚本提取Q值:
E_t = mphglobal(model, 'ewfd.Ez'); //获取时域电场
[~,peak_idx] = max(abs(E_t));
t_decay = t(peak_idx:end);
A = log(abs(E_t(peak_idx:end)));
p = polyfit(t_decay, A, 1);
Q = -pi*f0/p(1); //品质因子公式
远场偏振分析最带劲。在辐射边界外加个虚拟半球面,用场分量Ex和Ey计算斯托克斯参数。COMSOL的远场投影功能记得勾选"计算相位",不然椭圆方向会错乱。导出数据后用python画偏振椭圆:
theta, phi = np.mgrid[0:np.pi:50j, 0:2*np.pi:50j]
ax.quiver(phi, theta, S1, S2, S3,
cmap='hsv', length=0.1, normalize=True)
实测当旋转角从0°增加到30°时,椭圆方位角逆时针旋转超过180°,长轴比从0.2变到0.8。这说明BIC的偏振态从线偏振渐变为圆偏振,完美实现偏振操控。

几个避坑指南:1)周期性条件别漏设Floquet边界;2)远场计算区域至少留2λ真空层;3)材料色散别用简单Drude模型,实测Sellmeier方程更稳。搞完这套流程,基本能在咖啡凉透前抓出BIC的偏振演化规律。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)