超构表面设计中,亚波长单元的电磁响应直接决定了整体器件性能,而 Ansys Lumerical FDTD凭借对复杂纳米结构的精准模拟能力,成为超构表面单元设计的核心工具。下面基于FDTD 软件操作逻辑,从软件原理、单元建模、参数设置、仿真分析到结果优化,系统讲解超构表面单元的仿真设计流程,为光学器件研发提供实操指南。
一、FDTD 软件与超构表面单元设计基础
(一)FDTD 软件核心优势
Lumerical FDTD 基于时域有限差分算法,通过直接求解麦克斯韦方程组,实现对电磁波与纳米结构相互作用的全波模拟,其核心优势适配超构表面单元设计需求:
宽带与多场景适配:可一次性模拟多个波长的电磁响应,支持非线性材料、复杂几何形状,覆盖超构透镜、光子晶体等多类应用;
全场信息捕捉:相比 RCWA等方法,能获取电场、磁场的空间分布与时间演化,为单元电磁机制分析提供更丰富数据;
便捷化操作:图形化界面集成“结构树 - 仿真区域 - 光源 - 监视器”四大核心模块,支持参数化建模与批量计算,降低复杂结构设计门槛。
(二)超构表面单元设计意义
超构表面单元是器件的最小重复单元,需通过仿真实现两大核心目标:
性能预测:在物理制备前,提前模拟单元对入射光的相位调制、振幅控制及透射 / 反射效率,避免试错成本;
参数优化:通过调整单元尺寸、材料、几何形状,实现“相位覆盖 2π 周期”“高透射率”等设计指标,为后续阵列排布奠定基础。
二、超构表面单元仿真全流程(以纳米柱单元为例)
下面以毫米波波段(0.4 THz,波长 0.75 mm)的硅纳米柱单元为例,拆解从建模到结果分析的步骤。
(一)软件启动与界面熟悉
启动软件:打开 Ansys Lumerical FDTD,默认进入新建项目界面,左侧为“Objects Tree”(结构树,管理模型、光源、监视器等),中间为“XY/YZ/XZ/Perspective View”(模型视图区),右侧为“Script Workspace”(脚本编辑)与“Optimizations and Sweeps”(参数扫描)模块;
新建模型:点击界面上方“File-New-FDTD Project”,创建空白仿真文件,命名为“Meta_Unit.fsp”。
(二)单元建模:基底与纳米柱结构设计
超构表面单元通常由“基底 亚波长结构”组成,建模需遵循“先基底后功能结构”的逻辑,且所有尺寸需定义为可编辑参数,便于后续优化。
1. 基底建模(以 SiO₂玻璃为例)
添加基底:点击上方工具栏“Structures-Rectangle”,在结构树中生成名为“sub”的长方体结构;
几何参数设置:右键“sub-Edit object”,在“Geometry”标签页输入参数(单位:μm):
x min=-250,x span=500(x 方向尺寸 500 μm,覆盖单元周期);
y min=-250,y span=500(y 方向尺寸与 x 一致,确保对称性);
z min=-4000,z span=4000(z 方向厚度 4000 μm,模拟厚基底);
材料选择:切换至“Material”标签页,搜索并选择“SiO2 (Glass)-Palik”,该材料在毫米波波段透光性好,符合基底需求;
网格优先级:勾选“override mesh order from material database”,设置“mesh order=2”(数值越小,网格剖分越精细,基底无需过高优先级,避免占用计算资源)。
2. 纳米柱建模(以硅材料为例)
添加纳米柱:点击“Structures-Circle”(圆柱结构),命名为“unit1”,作为亚波长功能单元;
几何参数设置:右键“unit1-Edit object”,在“Geometry”标签页输入参数:
中心坐标:x=0,y=0,z=200(确保纳米柱位于基底表面上方);
尺寸:半径 r(后续可参数扫描,初始设为 50 μm),高度 h=400 μm(亚波长量级,避免电磁波穿透);
材料选择:在“Material”标签页选择“Si (Silicon)-Palik”,硅在毫米波波段具有合适的介电常数,能有效调控光场相位;
网格设置:同基底,设置“mesh order=2”,后续可针对纳米柱局部加密网格。
(三)仿真区域(FDTD Region)设置
仿真区域是电磁波计算的核心范围,需合理配置网格、边界条件与仿真时间,平衡精度与效率。
1. 添加与几何定义
点击上方工具栏“Simulation-FDTD Region”,生成“FDTD”仿真区域,右键“Edit object”,在“Geometry”标签页设置:
范围:完全包裹基底与纳米柱,x/y/z 方向尺寸略大于结构(如 x min=-300,x max=300;y 同理;z min=-4500,z max=800);
坐标:与模型中心对齐,确保结构位于仿真区域中心。
2. 网格设置(关键影响仿真精度)
切换至“Mesh settings”标签页,参数配置如下:
网格类型:选择“auto nonuniform”(自动非均匀网格),软件根据结构复杂度自适应调整网格密度;
网格精度:设置“Mesh accuracy=4”,对应“精度 - 内存 - 时间”的平衡(1 为最低精度,8 为最高,4 适用于多数纳米结构);
最小网格步长:勾选“Minimum mesh step”,设为 0.00025 μm(避免网格过疏导致相位计算偏差);
局部网格加密:若纳米柱边缘网格粗糙,可在“Mesh refinement”中选择“conformal variant 0”,对曲线结构(如圆柱表面)进行贴合加密。
3. 边界条件(匹配超构表面周期性)
超构表面由单元阵列组成,仿真单个单元时需模拟无限周期环境,切换至“Boundary conditions”标签页设置:
x/y 方向:选择“Periodic”(周期性边界),确保电磁波在单元阵列中连续传播,无边界反射;
z 方向:选择“PML”(完美匹配层),设置“layers=8”“kappa=2”“sigma=1”(标准 PML 参数),吸收出射电磁波,避免在仿真区域内反复振荡;
Bloch 边界:勾选“Bloch boundary conditions set based on source angle”,适配斜入射场景(本文默认正入射,暂不调整)。
4. 仿真时间与收敛条件
在“General”标签页设置:
时间步长:“dt stability factor=0.99”(确保数值稳定性,避免计算发散),软件自动计算 dt=0.0076 fs;
仿真时长:设置“Auto shutoff level=1e-6”,当电磁场能量衰减至初始值的 1e-6 时自动停止仿真,避免无效计算。
(四)光源设置(平面波入射)
选择平面波作为入射光源,模拟远场平行光照射场景,步骤如下:
添加光源:点击“Sources-Plane wave”,生成“source”光源;
几何与位置:右键“Edit object”,在“Geometry”标签页设置:
尺寸:x/y 方向覆盖仿真区域(x min=-300,x max=300;y 同理),z=600(位于纳米柱上方,确保光先入射到纳米柱);
频率与波段:切换至“Frequency/Wavelength”标签页,设置:
频率类型:选择“set frequency/wavelength”,“frequency start=0.4 THz”“frequency stop=0.4 THz”(单频仿真,聚焦毫米波波段);
时域脉冲:“pulse type=standard”,“pulselength=4950.5 fs”(确保脉冲覆盖目标频率,能量集中);
偏振方向:在“Advanced options”中设置“Polarization=Linear X”(x 方向线偏振,可根据需求调整为 y 或圆偏振)。
(五)监视器设置(数据采集)
通过监视器获取单元的相位、透射率等关键指标,需设置“点监视器”与“面监视器”配合使用:
点监视器(相位采集):
点击“Monitors-DFT Monitor”,命名为“phi”;
位置:设置“x=0,y=0,z=1000”(位于纳米柱上方,远离结构干扰);
参数:在“Properties”中勾选“Ex”“Ey”“Ez”,选择“DFT type=Frequency”,频率设为 0.4 THz,用于提取电场相位信息。
面监视器(透射率采集):
点击“Monitors-DFT Monitor”,命名为“T”;
位置:z=1000(与点监视器同高度),x/y 方向覆盖仿真区域;
参数:勾选“Transmission”,设置“Reference power”为入射光功率,自动计算透射率 T = 透射功率 / 入射功率。
三、参数扫描与仿真执行
(一)参数扫描(优化纳米柱尺寸)
为获取不同尺寸单元的电磁响应,需对纳米柱关键参数(如半径 r 与单元周期的比率 tau= r / 周期)进行扫描:
创建扫描:在右侧“Optimizations and Sweeps”模块,点击“Create New Parameter Sweep”,命名为“circle”;
参数设置:
选择参数:在“Parameters”标签页,添加“tau”(比率参数),设置“Type=Number”,“Start=0.1”“Stop=0.9”“Number of points=41”(41 个采样点,覆盖大部分尺寸范围);
关联模型:通过脚本将 tau 与纳米柱半径绑定(如“r=tau*250”,单元周期为 500 μm,半径范围 25-225 μm);
结果选择:在“Results”标签页,添加“phi::Ex”(相位数据)与“T::Transmission”(透射率数据),确保扫描后自动采集结果。
(二)仿真前检查与运行
配置检查:点击上方“Check”按钮,软件自动检测模型、光源、监视器是否存在冲突(如光源超出仿真区域、边界条件错误),若有提示需根据日志修改;
资源分配:在“Resources”中设置“Number of threads=8”(根据电脑 CPU 核心数调整,提升计算速度);
启动仿真:点击“Run”按钮,“Job Manager”将显示各扫描任务的进度(单个任务耗时几分钟至几小时,取决于网格密度),完成后提示“Completed”。
四、仿真结果分析与优化
(一)核心指标提取
通过 FDTD 自带的“Visualizer”工具分析结果,重点关注两大指标:
透射率(T):
打开“Visualizer”,加载“circle::T”数据,生成“tau-T”曲线;
理想结果:透射率稳定在 60% 以上(本文案例中 tau=0.5 时,T≈0.7,满足设计需求);
优化方向:若透射率过低,可调整纳米柱高度或更换材料。
相位覆盖(Angle (Ex)):
加载“circle::phi::Ex”数据,生成“tau - 相位”曲线;
理想结果:相位覆盖 0-2π(360°)周期,且随 tau 线性变化;
案例:tau 从 0.1 增至 0.9 时,相位从 0° 平滑过渡至 360°,无相位跳变,符合超构表面单元的相位调控要求。
(二)结果导出与应用
数据保存:将透射率、相位数据导出为“mat”格式,便于后续通过 Matlab 或 Python 进行阵列排布设计;
电场分布查看:在“Objects Tree”中右键“phi-Visualize”,查看纳米柱周围的电场强度分布,分析光场聚焦或散射热点,验证单元的电磁响应机制。
通过 Lumerical FDTD 完成了超构表面单元的全流程仿真,从建模、参数设置到结果分析,核心在于“网格精度匹配结构尺寸”“边界条件模拟实际环境”“参数扫描覆盖设计空间”。该单元设计将为下期“超构表面阵列仿真”提供基础 —— 通过将不同 tau 值的单元按梯度排列,可实现光束偏转、聚焦、全息成像等功能。