FDTD复现:用时域有限差分法FDTD去复现的几篇论文 论文关于法诺共振、等离子激元、MIM介质超表面折射率传感器、MIM波导 附送FDTD学习知识库
凌晨三点盯着屏幕里跳动的电场分布图,突然发现那个诡异的共振凹陷——法诺线形终于出现了!这大概就是搞FDTD仿真最上头的时刻。今天咱们就聊聊用时间域有限差分法折腾等离子激元的那些事儿,手把手带你看MIM波导怎么玩转折射率传感。
先甩段Python代码镇楼,这是FDTD最核心的场更新部分:
for t in range(time_steps): Ex[1:-1, 1:-1] = ca*Ex[1:-1,1:-1] + cb*(Hz[1:-1,1:-1] - Hz[:-2,1:-1]) # 完美匹配层处理 Ex[0,:] *= pml_x[0] Ex[-1,:] *= pml_x[1] # 磁场更新 Hz[:,1:-1] = Da*Hz[:,1:-1] + Db*(Ex[1:,:] - Ex[:-1,:])这段代码藏着三个玄机:Yee网格的交错采样(电场磁场位置错开)、蛙跳算法的时间推进(电场磁场交替更新)、还有PML边界这个吃性能大户。注意看电场更新时用到了Hz在空间上的差分,这就是麦克斯韦方程组的微分形式在作祟。
说到MIM(金属-介质-金属)波导,这货简直就是等离子激元的游乐场。最近复现的那篇ACS Photonics论文里,他们搞了个蛇形谐振腔耦合结构。建模时金属得用Drude模型:
epsilon_Ag = 1 - (omega_p^2)/(omega*(omega + 1i*gamma));其中银的等离子体频率ω_p≈1.37e16 rad/s,碰撞频率γ≈4e13。这里有个坑——频域参数要转换到时域,得用Z变换搞成递归卷积,不然算到天亮都出不来结果。
当两列表面等离激元波相遇时,法诺共振就像量子力学里的干涉现象。复现Nano Letters那篇时,发现关键在调控谐振峰的Q值。用Python画出的透射谱得满足这个条件:
T = (q + (omega - omega0)/gamma)**2 / (1 + ((omega - omega0)/gamma)**2)其中q是渐近相位参数,调参时恨不得把咖啡当水喝。后来灵机一动,在波导拐角处加了个纳米级凹槽,透射曲线立马出现特征性的不对称线形——这凹槽的位置偏差超过5nm效果就废了。
说到超表面传感,最骚的操作是用随机梯度下降优化结构参数。贴段TensorFlow代码片段:
loss = tf.reduce_mean((simulated_response - target)**2) grads = tape.gradient(loss, [hole_size, period]) optimizer.apply_gradients(zip(grads, [hole_size, period]))这相当于让AI自己玩排列组合,找出灵敏度最高的结构。实测发现三角形纳米孔阵列在1550nm处的灵敏度达到3280nm/RIU,比传统结构高出一个量级。
最后安利几个生存必备资源:Lumerical的FDTD速查手册(别傻乎乎从头写代码)、MEEP开源工具包里的案例库(记得改边界条件)、还有Plasmonic论坛里大神们的魔改边界条件方案。遇到场发散的抓狂时刻,试试把Courant因子从0.99调到0.5,说不定有惊喜。