comsol实能带建模、与Matlab能带数据后处理 文献复现---“周期嵌套声学黑洞结构的复能带和凋落波研究”-“二维声学黑洞声子晶体的宽频振动抑制”-“ Broadband vibration mitigation using a two-dimensional acoustic black hole phononic crystal” 包括comsol实能带模型、Matlab数据与程序、英文期刊(PDF)
搞声子晶体的小伙伴最近都在复现这个嵌套声学黑洞的能带结构,今天咱们直接上实战。COMSOL建模时最骚的操作就是怎么处理周期性嵌套——想象一下俄罗斯套娃式的渐薄结构,厚度按h(x)=εx^m变化,m≥2时才能形成声学黑洞效应。在几何模块里直接画个半径50mm的圆盘,厚度从边缘的6mm渐变到中心0.2mm,用参数化曲线定义厚度函数时要注意单位一致性,否则会报"几何无效"的鬼畜错误。
重点来了:周期性边界条件别手抖设错。在"物理场"里添加Floquet周期边界时,kx和ky的取值范围建议用π/a做归一化(a=100mm是晶格常数)。有个骚操作是在研究步骤里添加参数化扫描,把波矢k从-π到π分成50个点,这样能带曲线会更丝滑。算完后别急着关软件,右键导出能带数据时记得勾选"复数输出",否则Matlab处理时会丢失虚部信息——这可是衰减系数的命根子啊!
comsol实能带建模、与Matlab能带数据后处理 文献复现---“周期嵌套声学黑洞结构的复能带和凋落波研究”-“二维声学黑洞声子晶体的宽频振动抑制”-“ Broadband vibration mitigation using a two-dimensional acoustic black hole phononic crystal” 包括comsol实能带模型、Matlab数据与程序、英文期刊(PDF)
导出的.dat文件用Matlab处理时,先来个暴力读取:
data = importdata('band.dat'); k = data.data(:,1); freq_real = data.data(:,2); freq_imag = data.data(:,3);注意COMSOL默认输出的是归一化频率,要还原真实频率得乘以c0/2π(c0是波速)。处理复能带的核心代码是这个:
[KX,KY] = meshgrid(linspace(-pi,pi,100)); F = scatteredInterpolant(kx,ky,freq_imag); decay_map = F(KX,KY); contourf(KX,KY,decay_map,20,'LineColor','none') colormap jet这波操作能把离散的衰减系数插值成连续分布图。重点看虚部大于0.5的区域,这些就是强衰减的带隙位置。有个坑爹的情况是COMSOL偶尔会算出负虚频,这时候得用abs()取绝对值,否则热力图会变抽象派画作。
文献里那个0.8-2.5kHz的宽频带隙,其实来自嵌套结构的双重调控机制。对比单层ABH结构,嵌套设计让带隙宽度增加了73%——数据佐证的话,用Matlab算下带隙覆盖率:
gap_ratio = sum(decay_map(:)>0.5)/numel(decay_map);最后出图时建议用export_fig工具包,比自带saveas清晰十倍。投期刊要EPS格式的话,加个'-eps'参数就能搞定矢量图。整套流程跑下来,i7处理器大概要嗑六个小时,记得在COMSOL里把求解器改成MUMPS并行计算,能省一半时间。