用Python和FDTD仿真,手把手教你理解超表面中的几何相位与传输相位(附代码)

发布时间:2026/5/25 13:30:05

用Python和FDTD仿真,手把手教你理解超表面中的几何相位与传输相位(附代码) 用Python和FDTD仿真理解超表面中的几何相位与传输相位超表面作为二维人工结构材料通过亚波长尺度的微纳结构实现对电磁波的精确调控。其中几何相位和传输相位是两种核心的物理机制它们在偏振转换、波前整形等领域展现出独特优势。本文将带您从Python代码实现和FDTD仿真两个维度深入理解这两种相位调控原理。1. 超表面相位调控基础超表面单元结构对入射光的调控能力主要来源于两种物理机制传输相位和几何相位。传输相位源于光波在介质中传播时的有效折射率变化而几何相位则与结构旋转引入的偏振态转换相关。1.1 传输相位的物理本质传输相位基于介质等效折射率理论其数学表达为φ_trans 2πn_effh/λ其中n_eff结构的等效折射率h结构高度λ入射光波长在Python中我们可以通过以下代码计算不同结构参数下的传输相位import numpy as np def calculate_transmission_phase(n_eff, height, wavelength): return 2 * np.pi * n_eff * height / wavelength # 示例硅纳米柱在532nm波长下的传输相位 n_eff_x 2.5 # x偏振方向等效折射率 n_eff_y 3.0 # y偏振方向等效折射率 height 850e-9 # 850nm wavelength 532e-9 # 532nm phase_x calculate_transmission_phase(n_eff_x, height, wavelength) phase_y calculate_transmission_phase(n_eff_y, height, wavelength) print(fx偏振传输相位{phase_x:.2f} rad) print(fy偏振传输相位{phase_y:.2f} rad)1.2 几何相位的独特性质几何相位又称Pancharatnam-Berry相位的产生与结构旋转角度直接相关。对于圆偏振光入射几何相位的表达式为φ_geo ±2θ其中θ是结构旋转角度±分别对应左旋和右旋圆偏振光。几何相位的一个关键特性是与波长无关这使得基于几何相位的超表面器件具有宽带工作特性。下表对比了两种相位机制的主要特点特性传输相位几何相位偏振依赖性线偏振相关仅圆偏振有效波长相关性强相关无关调控方式改变结构尺寸旋转结构角度色散特性受材料色散影响无色散2. FDTD仿真环境搭建要直观观察超表面中的相位调控现象我们选择Lumerical FDTD作为仿真工具。以下是建立超表面单元仿真模型的关键步骤。2.1 基本仿真参数设置# Lumerical FDTD脚本示例 - 基础设置 import lumapi fdtd lumapi.FDTD() fdtd.addfdtd( dimension2D, x0, y0, z0, x_span2e-6, y_span2e-6, simulation_time1000e-15, mesh_accuracy2 ) # 光源设置 fdtd.addgaussian( namesource, injection_axisy, wavelength_start500e-9, wavelength_stop600e-9, theta0 ) # 监视器设置 fdtd.addpower( nametransmission, monitor_type2, x0, y1e-6, z0 )2.2 超表面单元建模典型的超表面单元可采用硅纳米椭圆柱结构其建模参数包括长轴直径200-500nm短轴直径200-500nm高度850nm旋转角度0-180°在FDTD中我们可以通过参数扫描研究结构尺寸和旋转角度对相位调控的影响# 参数扫描示例 for angle in np.linspace(0, 180, 10): fdtd.addrect( namefnanorod_{angle}, x0, y0, z0, x_span300e-9, y_span150e-9, z_span850e-9, rotation_angleangle, materialSi (Silicon) ) # 运行仿真并记录结果 fdtd.run() transmission fdtd.getresult(transmission, T)3. 琼斯矩阵分析与相位提取琼斯矩阵是分析超表面偏振转换特性的有力工具。一个各向异性超表面单元的透射琼斯矩阵可表示为J [txx txy; tyx tyy]3.1 从仿真结果提取琼斯矩阵元素通过分别仿真x和y偏振光入射我们可以提取完整的琼斯矩阵def extract_jones_matrix(fdtd, wavelengths): # x偏振入射 fdtd.setnamed(source,polarization_angle,0) fdtd.run() Ex fdtd.getelectric(transmission) Ey fdtd.getelectric(transmission, componenty) txx Ex / Ex_incident tyx Ey / Ex_incident # y偏振入射 fdtd.setnamed(source,polarization_angle,90) fdtd.run() Ex fdtd.getelectric(transmission) Ey fdtd.getelectric(transmission, componenty) txy Ex / Ey_incident tyy Ey / Ey_incident return np.array([[txx, txy], [tyx, tyy]]) jones_matrix extract_jones_matrix(fdtd, 532e-9)3.2 相位差计算与偏振态分析从琼斯矩阵元素可以计算传输相位差和几何相位def analyze_phases(jones_matrix): # 提取振幅和相位 txx_amp np.abs(jones_matrix[0,0]) txx_phase np.angle(jones_matrix[0,0]) tyy_amp np.abs(jones_matrix[1,1]) tyy_phase np.angle(jones_matrix[1,1]) # 传输相位差 transmission_phase_diff tyy_phase - txx_phase # 几何相位分析圆偏振入射 RCP_in np.array([1, 1j])/np.sqrt(2) # 右旋圆偏振 output jones_matrix RCP_in geo_phase np.angle(output[0]) - np.angle(RCP_in[0]) return transmission_phase_diff, geo_phase4. 完整仿真案例可调谐超表面设计结合传输相位和几何相位我们可以设计具有灵活相位调控能力的超表面。以下是一个完整的仿真案例4.1 结构参数设计考虑由硅纳米椭圆柱组成的超表面参数如下参数值可调范围长轴直径400nm300-500nm短轴直径200nm200-400nm高度850nm固定旋转角度0-180°连续可调4.2 相位调控特性仿真通过Python脚本自动化FDTD仿真流程def simulate_metasurface_unit(params): fdtd lumapi.FDTD() setup_simulation(fdtd) # 创建纳米椭圆柱 fdtd.addellipse( namenanorod, x0, y0, z0, x_radiusparams[major_axis]/2, y_radiusparams[minor_axis]/2, z_spanparams[height], rotation_angleparams[angle], materialSi ) # 运行仿真 fdtd.run() # 提取结果 jones_matrix extract_jones_matrix(fdtd, 532e-9) phase_diff, geo_phase analyze_phases(jones_matrix) return { transmission_phase_diff: phase_diff, geometric_phase: geo_phase, transmission_efficiency: np.mean(np.abs(jones_matrix)**2) }4.3 结果分析与可视化仿真完成后我们可以绘制相位调控特性曲线import matplotlib.pyplot as plt angles np.linspace(0, 180, 19) results [simulate_metasurface_unit({major_axis:400e-9, minor_axis:200e-9, height:850e-9, angle:angle}) for angle in angles] geo_phases [r[geometric_phase] for r in results] trans_phases [r[transmission_phase_diff] for r in results] plt.figure(figsize(10,5)) plt.plot(angles, np.degrees(geo_phases), label几何相位) plt.plot(angles, np.degrees(trans_phases), label传输相位差) plt.xlabel(旋转角度 (度)) plt.ylabel(相位 (度)) plt.legend() plt.grid(True) plt.title(超表面单元相位调控特性) plt.show()在实际项目中我们发现当结构旋转角度超过60°时几何相位开始显著影响整体相位分布。而传输相位差则主取决于椭圆的长短轴比例与旋转角度关系较小。这种组合调控方式为实现多功能超表面器件提供了灵活的设计空间。

相关新闻