
联合建模代码相位计算代码电场导出画图代码以超透镜为案例有讲解视频视频讲解代码文档透镜有联合建模代码相位计算代码。电场观测代码# 超透镜基础参数配置 wavelength 532e-9 # 钠黄光 focal_length 100e-6 # 微米级焦距 diameter 200e-6 # 透镜孔径 nano_pillar_size (300e-9, 300e-9) # 纳米柱尺寸 def build_meta_lens(params): # 这里实际会调用FDTD或RCWA的建模引擎 print(f正在生成{params[material]}材质的超表面结构...) # 纳米柱阵列生成逻辑 return simulation_model这段代码核心是参数容器重点在于纳米结构单元的周期排列。实际操作时会发现哪怕把纳米柱尺寸调大50nm相位分布立马跑偏——所以精确控制制造误差范围特别要命。相位计算这块儿有现成的梯度下降法可以用但咱们自己搓个简单版的更直观def calculate_phase(focal, wavelength): x np.linspace(-diameter/2, diameter/2, 1000) phase (2 * np.pi / wavelength) * (np.sqrt(x**2 focal**2) - focal) # 相位包裹处理 phase_normalized phase % (2*np.pi) return phase_normalized # 测试相位分布 plt.plot(calculate_phase(100e-6, 532e-9)) plt.title(超透镜相位分布曲线) plt.show()注意看这个sqrt(x²f²)-f的操作本质是在模拟球面波前到平面波前的转换。当x0时相位增量为零越往边缘相位变化越剧烈这样设计出来的相位剖面才能正确聚焦。联合建模代码相位计算代码电场导出画图代码以超透镜为案例有讲解视频视频讲解代码文档透镜有联合建模代码相位计算代码。电场观测代码电场观测代码最带劲的部分是近场到远场的转换def visualize_fields(e_field): fig, ax plt.subplots(1,2, figsize(12,5)) im ax[0].imshow(np.abs(e_field), cmapinferno) plt.colorbar(im, axax[0], label电场强度) # 做FFT看远场 fft_field np.fft.fftshift(np.fft.fft2(e_field)) ax[1].imshow(np.log(np.abs(fft_field)), cmapviridis) ax[1].set_title(空间频谱分布) plt.tight_layout() plt.savefig(field_analysis.png, dpi300)左边原图能直接看到纳米柱阵列的电场增强效应右边频谱图出现明显聚焦光斑说明设计有效。遇到过频谱图出现环状噪声的情况通常是边界条件没设对加个切趾函数就能解决。配套的案例包里有个超透镜自动优化脚本特别实用跑起来能看到纳米柱排布从随机状态逐渐收敛成同心圆结构。视频教程里演示了如何用滑块实时调整焦距亲眼看着光斑在焦平面来回移动比看论文公式直观十倍。建议新手先拿现成的文档里的参数跑通全流程再试着改几个参数值观察电场变化。有个坑要注意商业仿真软件导出的电场数据格式经常不兼容记得写个转换函数处理字节序问题。