Comsol EBG能带结构计算与伪模式去除
Comsol EBG能带结构计算,伪模式去除
在玩COMSOL电磁带隙结构仿真的时候,最烦人的就是算完能带图突然冒出来几条鬼畜的伪模式线——它们像电线杆上的小广告一样顽固,严重影响判断。今天咱们就手把手教你怎么把这些"假货"按在地上摩擦。
先搞个最简单的二维EBG模型练手。新建"波矢"参数k,在周期性边界条件里把Floquet设置为kx=k,ky=0。这里有个坑要注意:Bloch相位因子千万别手贱写成exp(-jkr),COMSOL其实内置了自动处理相位反转,直接参数绑定就行。
扫频参数设置建议用脚本控制:
for k = linspace(0,0.5,50)
model.param.set('k', num2str(k));
model.study('std1').run;
end
这种离散化扫描比连续扫描更稳,特别是当遇到模式交叉点时不容易抽风。记得在特征频率研究中勾选"搜索附近频率",把基频估算值设为c/2a(a是晶格常数),能有效避免幽灵模式乱入。
网格划分绝对是门玄学。建议在介质柱边缘搞两层边界层:
size_func = model.mesh('size').create('size1', 'Size')
size_func.set('custom', 'on')
size_func.set('hcurve', ['0.1*a', '0.05*a'])
这种渐变式网格比均匀网格抗伪模式能力强三倍,亲测有效!但别矫枉过正,太密的网格反而会激发更多虚假共振。
后处理阶段才是重头戏。用MATLAB导出特征频率时加个模式筛选:
valid_modes = find(abs(real(freq))>1e6 & imag(freq)<0.1*real(freq));
这个条件专治各种不服——过滤掉低频伪振荡和高损耗模式。如果还看到异常尖峰,试试把求解器从默认的ARD改成Shifted Inverse,对TE模式特别管用。
最后安利个骚操作:在材料属性里加个微小损耗(哪怕实际材料是无损的)。就像给模型吃了颗安定片,那些上蹿下跳的伪模式立马老实了:
model.material('mat1').propertyGroup('def').set('epsilon', '1-0.001j');
注意损耗因子别超过1e-3,否则会影响真模式的Q值判断。这个方法相当于给系统加了个弱阻尼,让数值稳定性直接起飞。
搞定这些套路后,再去看能带图——那些曾经张牙舞爪的伪模式就像被拔了网线的键盘侠,彻底安静如鸡。当然,遇到特别顽固的可以祭出终极大招:把仿真结果和平面波展开法对照,保准让假货无所遁形。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)