
comsol 金膜计算吸光截面 吸收截面 散射截面 带公式打开COMSOL看到金膜模型时我总会想起实验室师兄说的那句搞纳米光学不玩明白吸收散射就像炒菜不放盐。今天咱们就手把手整活金膜的吸光/散射截面计算过程中带点代码细节和物理直觉顺便拆解那些看似吓人的公式。先甩核心公式镇楼吸收截面 σabs (Pabs)/(I_inc)散射截面 σsca (Psca)/(I_inc)总消光截面 σext σabs σ_sca这里的关键是算准吸收功率Pabs和散射功率PscaI_inc是入射光强。comsol 金膜计算吸光截面 吸收截面 散射截面 带公式模型搭建实操几何里画个直径50nm的金球别纠结纳米尺度下膜和球算法相通外层包裹足够大的空气域材料选Gold (Johnson Christy)——这比默认的金参数更贴近实测值物理场选电磁波频域边界条件用散射场公式入射波选平面波极化方向// COMSOL内置的散射场设置代码片段 model.physics(emw).feature(fs1).active(true); model.physics(emw).feature(fs1).set(E0, {0 1e-3 0}); // Y方向极化 model.physics(emw).feature(fs1).set(k, {0 0 -1}); // Z方向传播网格划重点金表面用极细化网格波长越短网格越密。用曲率自适应划分边缘尺寸控制在λ/20以下model.mesh(mesh1).feature(size).set(hcurve, 0.3); model.mesh(mesh1).feature(size).set(hmin, 0.5); // 单位纳米计算后处理骚操作吸收功率直接积分欧姆损耗Pabs emw.Qh; // 体积积分emw.Qh就是吸收功率散射功率要用远场投影别头铁直接积分散射场// 远场计算器设置 model.result().numerical.create(int1, IntSurface); model.result().numerical(int1).set(expr, emw.Poav_emi); model.result().numerical(int1).set(unit, W/m^2); Psca abs(intop1(emw.Poav_emi)); // 散射功率验证模型的小技巧调入射波长到532nm时正常金纳米球的散射截面应该在3e-14 m²量级。如果数值差个数量级大概率是边界条件或材料参数翻车了。遇到过最坑的bug是散射场公式里的背景场方向设反导致计算结果完全镜像。这时候用场分布可视化检查电场矢量方向比硬算效率高得多。最后说个冷知识COMSOL计算散射截面时其实偷偷用了等效原理把近场数据转换成远场辐射。所以当结构特别复杂时记得在模型外围加足够大的完美匹配层(PML)否则远场积分会漏掉倏逝波成分。搞明白这些门道后下次再算等离激元共振峰位就能稳如老狗了。记住参数化扫描波长的时候金材料的色散曲线会自动跟着变——这可是实验党用解析公式算不出来的优势。