
comsol光子晶体仿真拓扑荷偏振态。 三维能带三维QQ因子计算。 远场偏振计算。在COMSOL里折腾光子晶体总有几个参数让人又爱又恨。拓扑荷这玩意儿就像晶格里的指纹每个涡旋中心都藏着偏振态的秘密。最近搞三维能带分析时发现用参数化扫描找共振峰就像在迷宫里找出口——参数稍微跑偏就得重来。先看这段能带扫描的脚本model.param.set(k_x, 0:0.1:3.14); model.study(std1).feature(freq).set(plist, linspace(0.8,1.2,50)); model.study(std1).feature(freq).set(punit, normalized);这代码给晶体拍了个X光参数k_x在布里渊区横着扫频率范围设成0.8到1.2倍归一化频率。注意那个punit参数要是忘了设置成归一化单位算出来的能带能直接让人怀疑人生——别问我怎么知道的。算Q因子时更刺激谐振峰的半高宽有时候细得像针尖。用这个后处理公式Q_factor (f0^2)/(f_high - f_low);f0是中心频率高低点得从电场能量衰减曲线里抠。有次手抖把分母写成频率差平方结果Q值直接飙到10^9量级差点以为发现了新物理。comsol光子晶体仿真拓扑荷偏振态。 三维能带三维QQ因子计算。 远场偏振计算。远场偏振计算才是重头戏。用远场投射功能导出电场分量后得用斯托克斯参数来拆解偏振态S0 np.abs(Ex)**2 np.abs(Ey)**2 S1 np.abs(Ex)**2 - np.abs(Ey)**2 S2 2*np.real(Ex*np.conj(Ey))这段Python代码能把电场分量煮成一锅偏振态浓汤。特别是S2参数像极了电磁场在空间里的太极推手左手右手画着圆打架。拓扑荷的验证倒是挺魔幻用相位梯度积分法topo_charge (1/(2*pi)) * sum(diff(unwrap(angle(Ez))));绕着缺陷跑一圈相位累积量超过3π就可能是电荷数2。有次晶格对称性没调好算出来1.999的电荷数强迫症当场发作改到凌晨三点。三维结构的场分布像极了海底的水母群用切片云图配合等值面追踪能看见电场在空气孔之间玩跳房子。记得关掉默认的线性插值否则那些尖锐的场变化会被抹得像融化的冰淇淋——别让平滑滤镜毁了你的物理细节。