Comsol二氧化钒VO2可调BIC。
在玩COMSOL的时候发现个有意思的事——用二氧化钒(VO₂)调BIC(Boundary states in the continuum)简直像给光子装了开关。这材料的相变特性太适合做动态调控了,68度附近电导率能跳三个数量级,这不就是现成的光控阀门么?
先搞个典型的光栅结构试试水。建模时直接在COMSOL的几何模块敲几行:
% 周期性光栅建模 grating = model.geom.create('grating', 2); grating.set('type', 'polygon'); pts = [0 0; 0.5 0; 0.75 0.3; 1 0; 1 1; 0 1]; grating.set('coord', pts);这代码画的是个锯齿状光栅,关键点在于0.75这个位置——VO₂相变时介电常数突变的位置直接影响这里的光场局域效果。注意最后两个参数(1,0)和(0,1)决定了周期长度和结构高度。
材料属性设置才是重头戏。在VO₂的属性窗口里,介电常数得写成温度的函数:
epsilon_r = if(T<305, 9 + 0.01i, -2.5 + 0.8i);这行代码暗藏玄机:305K(约32℃)是相变临界点,低温时是绝缘态介电常数实部正数,高温变金属态直接负折射率。if语句在COMSOL里会自动转成连续函数避免数值震荡,这点对收敛特别重要。
扫参数的时候建议用批处理模式,毕竟要同时扫温度和入射角:
for theta = 20:2:80 for T = 300:5:340 model.param.set('theta', [num2str(theta) '[deg]']); model.param.set('T', [num2str(T) '[K]']); model.study('std1').run; % 提取Q值存结果... end end这个双重循环跑完大概得喝两杯咖啡的时间。注意温度步长别设太小,VO₂相变本身有滞后效应,5K的间隔既能捕捉突变又不会算到天荒地老。
结果处理时重点关注谐振峰的移动。用MATLAB后处理抓取透射谱:
lambda = mphglobal(model, 'lambda0', 'dataset', 'dset1'); T = mphglobal(model, 'T', 'dataset', 'dset1'); plot(lambda, T); xlabel('波长(μm)'); ylabel('透射率');当VO₂处于绝缘态时能看到明显的BIC特征——Q值突然飙高,透射率曲线出现尖锐凹陷。一旦温度过临界点,这凹陷就像被擦掉一样消失,说明成功实现了BIC的动态开关。
有个坑得提醒:网格划分在相变区域要加密。见过有人算出来的Q值忽高忽低,八成是网格太糙导致场分布计算不准。用边界层网格包裹VO₂区域,最大单元尺寸设成工作波长的1/5左右比较稳。
这种结构最骚的操作在于实时调控——比如用激光局部加热特定区域的VO₂,就能在同一个器件上实现多重BIC状态。下次打算试试加个热源模块,搞个动态可重构的超表面玩玩。