使用Lumerical FDTD进行Photonic Crystal仿真
At The Start
Maybe you need to read:
- 使用Lumerical MODE进行平面平板波导仿真 - Maple’s Blog (maple367.eu.org)
- CWT in PCSEL - Maple’s Blog (maple367.eu.org)
FDTD?
FDTD is an abbreviation Finite-difference time-domain.
Finite-difference time-domain method - Wikipedia
Finite-difference time-domain (FDTD) or Yee’s method (named after the Chinese American applied mathematician Kane S. Yee, born 1934) is a numerical analysis technique used for modeling computational electrodynamics (finding approximate solutions to the associated system of differential equations). Since it is a time-domain method, FDTD solutions can cover a wide frequency range with a single simulation run, and treat nonlinear material properties in a natural way.
Layout Mode
对于980 nm波长,以以下参数进行建模:
Material | Thickness (μm) | Refractive Index |
---|---|---|
Air | 0.5 | 1 |
GaAs | 0.1 | 3.4824 |
Al0.1GaAs | 0.36 | 3.4461 |
Active Layer | 0.216 | 3.4 |
Al0.4GaAs | 2.16 | 3.2449 |
GaAs | 0.15 | 3.4824 |
注意此参数中衬底层和空气层设定为约0.5个有效波长,这是为了在边界保留足够的空间域,以避免数值求解及边界条件造成的异常反射等影响结果。
插入几何体
插入Layer structure
点击工具栏的Structures
即可添加一个rectangle
对象,右击选择Edit object
,分别设置该物体的几何参数Geometry
与材料参数Material
与建模参数一致。比如第一层空气z max
为500 nm,z min
为-500 nm,然后逐层往下设置
![]() | ![]() |
---|
逐步重复此过程,完成所有几何体的添加。x及y可以随意设置,建议保持中心对齐且长宽一致。注意此处需要将最顶端的空气和最底端的GaAs额外加厚0.5μm,目的是保证几何体连续的延伸到稍后设置的PML边界中。
最终会得到一个类似图示的结构模型(为了便于观察,调节了显示透明度以区分,可以在物体的Graphical rendering中调节alpha实现)。

插入空气孔
在Components
下拉框中选择Photonic crystals
,找到Rectangular lattice PC array
添加。然后就可以在Object Tree
中调整它的参数,设置如下。
其它建模方式
Lumerical Script Language
点击工具栏Group
下拉框,选择Structure
。可以看到新生成了一个structure group
对象,可以通过在Properties栏定义参数、Script栏输入脚本生成一组几何结构。具体脚本用法请参考Lumerical scripting language - By category – Ansys Optics。
Python API
Lumerical还支持使用Python API调用Script,进行建模及分析操作,可以将仿真与数据后处理集成。具体调用方法请参考Python API overview – Ansys Optics。
设定求解器
点击工具栏的Simulation
下拉框,选择Region
,即可创建一个FDTD
对象。调整其General
选项卡的dimension
为3D
,调整其Geometry以匹配模型大小与位置,并将Mesh settings
中的mesh accuracy
精度调节为3。最后设定Boundary conditions
为PML。具体设置参见下图。
![]() | ![]() |
---|---|
![]() | ![]() |
添加Source
由于FDTD是时域算法,所以我们需要一个初始激励,来形成电磁波。通常可以通过Source
添加。这里我们使用Analysis
中的More choices...
的Bandstructure
下的Diopole cloud
添加。调整参数如下图所示,参数的说明可以在Script
选项卡查看。
添加Monitor
我们还需要添加相应的monitor来获取我们需要的电磁场信息。这里我们选择添加Analysis
下的Q analysis
。调整参数如下表
Name | Value | Unit |
---|---|---|
x | 0 | um |
y | 0 | um |
z | -0.83 | um |
x span | 0.5 | um |
y span | 0.5 | um |
z span | 0.6 | um |
nx | 3 | \ |
ny | 6 | \ |
nz | 6 | \ |
此外还可以在Monitor
下拉选项中添加所需要的其他monitor。
运行仿真
调整Resources(可选)
在工具栏点击Resources
,按需求设置。
运行
点击工具栏Run
。
Analysis Mode
点击Run
之后会弹出Job Manager窗口,运行完之后即可查看每个monitor的结果。方法是在Object Tree
中右键相应monitor,然后Visualize
直接查看结果,或者Export to ZBF
导出数据后,自行处理。仿真的数据会存储在对应的仿真文件.fsp
中,如果需要重新运行,将会切换到Layout Mode
。此时文件中的所有结果数据都会丢失。
At The End
如果需要大量数据分析,建议使用自带的sweep功能并灵活运用Lumerical自身的script功能,或者使用Python API。
- Title: 使用Lumerical FDTD进行Photonic Crystal仿真
- Author: Maple
- Created at : 2024-12-31 11:39:46
- Updated at : 2024-12-31 13:36:47
- Link: https://www.maple367.eu.org/Optics/Simulation/使用lumerical-fdtd进行photonic-crystal仿真/
- License: This work is licensed under CC BY-NC-SA 4.0.