
Comsol Mie米氏散射与多极子分解仿真:单个散射体与超表面周期性结构多极子解
析案例合集
刚摸到多极子分解的门道那会儿,被COMSOL里那些花花绿绿的场分布图整得头大。直到某天在实验
室通宵改参数,突然发现把球型纳米颗粒的散射场拆解成电偶极、磁偶极这些基本模式后,整个物理图像
瞬间通透——原来每个颜色块都在讲自己的故事。
**先说单颗粒怎么玩转多极矩**
在COMSOL里新建个球体,半径设置在100nm左右(金、银或者二氧化钛都行)。波动方程模块里选电磁
场频域,背景场用平面波照射。重点来了:在电磁场计算完成后,别急着关窗口,右键"派生值"选"多极场分
解"。这时候会蹦出来个需要填勒让德多项式阶数的对话框,新手填到4阶基本够用。
```matlab
% 多极矩系数提取脚本片段
for l = 1:4
for m = -l:l
Q_electric = mphglobal(model,{'emw.Qe'+num2str(l)+num2str(m)});
Q_magnetic = mphglobal(model,{'emw.Qm'+num2str(l)+num2str(m)});
scatterCrossSection(l) = scatterCrossSection(l) + abs(Q_electric)^2 + abs(Q_
magnetic)^2;
end
end
```
这段代码的关键在于遍历各阶多极子,注意COMSOL内置变量命名规则里emw.Qe11代表电偶极(l=1)
,emw.Qm22则是磁四极子(l=2)。实际操作时会发现,400-700nm波段内,20nm以下的小颗粒电偶极占主导,
超过80nm的四极子贡献突然飙升。
**超表面阵列的处理技巧**
当遇到周期性排列的纳米颗粒时,边界条件要改成周期性条件。这里有个坑:很多人直接复制单颗
粒模型改边界,结果算出来的散射谱出现诡异震荡。秘密在于需要先在"定义"里创建周期性端口,然后在
研究步骤中添加布洛赫边界条件。建议用参数化扫描同时改变入射角θ和φ,这样能一次性获取不同偏振态
的响应。
```java
// COMSOL周期性边界设置要点
model.component("comp1").physics("emw").feature("pbc1").set("PeriodicityType", "Floq
uet");
model.component("comp1").physics("emw").feature("pbc1").set("kx", "emw.k0*sin(theta)
*cos(phi)"));