首页 示例 截图 用户手册 Bluesky logo YouTube
OghmaNano 模拟有机/钙钛矿太阳能电池、OFET 和 OLED 下载

FDTD 教程:硅基 Mach–Zehnder 调制器

OghmaNano 中加载的硅基 Mach–Zehnder 调制器示例的 3D 视图。
在 OghmaNano 中加载的硅基 Mach–Zehnder 调制器示例。

1. 概述:你将要仿真的内容

Mach–Zehnder 调制器(MZM)是一种干涉型光子器件,可将电控制 信号转换为光学振幅(或强度)变化。光被分到两条波导臂中,累积相对 相位差,然后再次复合。输出功率取决于两条臂之间的相位关系: 当两条臂同相复合时输出很强,而当它们反相复合时输出被抑制。

在硅光子学中,MZM 被广泛用于高速数据通信、相干光学、光互连 以及集成微波光子学。实际器件通常使用平台中可用的电光机制来实现相位控制 (对于硅,这通常是通过 PN 结、MOS 电容器实现的载流子色散,或通过加热器实现的 热光调谐)。无论驱动机制如何,器件的光学核心都是相同的: 一个分束器、两条导波臂和一个复合器。

在本教程中,你将运行一个代表性硅基 Mach–Zehnder 调制器结构的FDTD 仿真。 这里的目标不是构建完整的电学协同仿真;相反,你将使用时域场传播来 建立直觉,理解导引能量如何分裂、沿两条臂传播,并在输出端复合。你将 检查功率密度快照并解读探测器时间轨迹,包括位于两条臂上的探测器 与放置在更下游、两条臂重新汇合处的探测器之间的传播延迟。

从数值角度看,这个示例刻意设计得较“重”:仿真区域相对较大,并且会向磁盘 写出大量数据。这使它成为整个 FDTD 流程的一个良好压力测试:几何定义、 源注入、CPML 吸收边界、时间推进和探测器提取,以及输出流程 (快照和探测器查看器)。

2. 创建新仿真

点击新建仿真按钮,打开New simulation窗口。在该窗口中,选择 FDTD examples类别,然后双击 Silicon Mach–Zehnder modulator演示(它列在底部)。 出现提示时,将仿真保存到本地磁盘

该示例在执行期间会写出大量文件(快照、探测器输出和中间数据)。因此, 请避免将其保存到网络驱动器或虚拟化/云同步目录(例如 OneDrive)。本地 SSD 最理想。 如果你将其保存到较慢的存储设备,运行时间可能会显著增加,或者界面在 写出输出时变得迟缓。

OghmaNano 的 New simulation 窗口,用户在其中选择 FDTD Examples 并打开 Silicon Mach–Zehnder modulator 演示。
New simulation窗口。选择FDTD examples并双击Silicon Mach–Zehnder modulator
OghmaNano 主窗口,显示具有两个跑道形臂和不同颜色探测器的 Mach–Zehnder 调制器几何结构。
加载 Mach–Zehnder 调制器示例后的主 OghmaNano 界面。
Output 选项卡列出由 Mach–Zehnder 调制器仿真生成的快照和探测器输出。
Output选项卡:运行期间和运行结束后,快照和探测器会显示在这里。
Output 选项卡列出由 Mach–Zehnder 调制器仿真生成的快照和探测器输出。
Output选项卡:运行期间和运行结束后,快照和探测器会显示在这里。

3. 在主窗口中熟悉界面

器件显示在Device structure选项卡中的3D view中 (??)。 你应该能够识别出两条干涉仪臂(类似跑道的波导路径)以及沿结构放置的彩色探测器 对象(紫色、绿色和红色)。具体颜色并不重要,但它们使你更容易看出 几何中正在监测信号的位置。

对于这个示例,你将主要使用:

4. 运行仿真

按下 F9 或点击蓝色播放按钮(▶)开始运行。这个仿真规模相对较大, 完成需要一定时间,因为网格较大,并且会将快照和探测器 数据写入磁盘。

在一台性能合理的笔记本电脑上,一次典型运行大约需要 10–15 分钟。在运行过程中,你 可以打开 Output 选项卡并观察文件逐渐出现。特别是,你将看到 snapshots/ 目录, 并且随着仿真推进,你将看到探测器输出(Detector 0、Detector 1、Detector 2)出现。

5. 查看功率密度快照

Output 选项卡中打开 snapshots/ 文件夹 (??) 以启动快照查看器。一个代表性的快照查看器窗口如 ?? 所示。 使用蓝色加号按钮,将 powerdensity.csv 添加到查看器中。然后你可以使用滑块逐步查看时间演化。

查看这个仿真的最有用方式,是跟踪导引能量如何在器件中传播。 在早期时刻,你会看到源注入到输入波导中并到达分束区域。随着时间 推进,功率分配到两条臂中。后续快照显示功率继续沿跑道形 波导臂传播。再往后,两条臂重新复合,你可以看到能量被引导进入输出部分。

代表性的快照如 ???? 所示。即使不更改任何器件 参数,这些快照也能清楚地表明这是一个干涉结构:能量被分开,沿两条 物理上分离的路径传播,然后再次汇合。

从 snapshots 文件夹中打开的快照查看器;通过蓝色加号按钮添加 power\_density.csv。
snapshots/ 中打开的快照查看器。添加 powerdensity.csv 并逐步查看时间演化。
功率密度快照显示能量在两条 Mach–Zehnder 臂之间分裂。
中间时刻快照:功率分到两条臂中,并沿跑道形路径传播。
早期时刻的功率密度快照,显示注入场启动并接近分束区域。
早期时刻快照:注入场启动并向干涉仪区域传播。

6. 查看探测器输出

在仿真运行期间(以及完成之后),你将在 Output 选项卡中看到探测器输出出现 (??)。 每个探测器条目看起来像一个小的 CCD 风格图标。双击探测器将其打开,然后双击 该探测器目录中的 power.csv 以打开探测器功率查看器。

这个示例使用三个探测器。两个探测器监测两条干涉仪臂(因此你可以比较 导引能量到达每个臂监测器的时间),第三个探测器放置在更下游的 最终输出级,两条臂在那里重新复合。三个探测器图如 ?????? 所示。

在这次运行中,你应当观察到,在两条臂上的探测器中,功率大约在 \(3 \times 10^{-13}\,\mathrm{s}\) 开始上升,而下游探测器开始得更晚(大约约为 该时间的两倍),因为它位于传播路径更靠后的位置,即两条臂传播并复合之后。 这是对结构中传播延迟的一种直接且直观的演示:臂上的监测器先响应, 而最终级监测器响应更晚,因为导引能量必须在物理上走得更远。

来自一条 Mach–Zehnder 臂的 Detector 0 功率-时间图。
Detector 0:臂监测器。功率在 \(3 \times 10^{-13}\,\mathrm{s}\) 左右开始上升。
来自另一条 Mach–Zehnder 臂的 Detector 1 功率-时间图。
Detector 1:第二条臂上的监测器。起始时间与 Detector 0 类似。
两条臂复合后的最终输出级的 Detector 2 功率-时间图。
Detector 2:输出级监测器。起始时间有延迟,因为该探测器位于更下游。

这些轨迹并不完全平滑,因为我们没有进行强时间平均;相反,你可以看到时变的 导引场成分通过监测器。通常你并不希望将这些图解释为“瞬时”功率; 在本教程中,更有用的解释是到达时间以及信号包络的演化, 即导引能量如何继续传播并发生干涉。

7. 检查导模

在 Mach–Zehnder 调制器仿真中,光学模式传播经过某个探测器时的放大视图。
某个探测器附近导引光学模式的放大视图。

为了更好地理解仿真在做什么,对波导中的导引 模式进行放大观察是很有帮助的。一个示例如 ?? 所示。 在这张图中,探测器位于波导的导引模式内部。

该模式看起来像一串点或短线段。这种外观只是 快照查看器所使用渲染方法造成的伪影:为了降低 GPU 负载并允许大规模仿真 进行交互式可视化,场被绘制为离散采样点。 尽管采用了这种渲染方式,导引 模式的传播仍然非常清楚,你可以轻松看到场沿波导传播。

你可以通过使用快照查看器工具栏中的colour wheel 按钮来尝试不同的可视化风格。这会更改用于显示 功率密度场的颜色映射,有时可以更容易看出干涉条纹或较弱的辐射 特征。

8. 改变激发波长

像 Mach–Zehnder 干涉仪这样的光子结构,其行为 强烈依赖于注入光的波长。在 OghmaNano 提供的示例中,波长被选择为与硅波导的导模相匹配。 作为一个实验,我们现在将故意改变波长,使得 该结构不再支持导波传播。

OghmaNano 的 Optical 功能区,显示光学网格和仿真控制。
用于配置仿真参数的 Optical 功能区。
显示 FDTD 仿真波长设置的光学网格编辑器。
显示波长配置的光学网格编辑器。
当激发波长不再被波导约束时产生的辐射图样。
当该波长不再被导引时产生的辐射图样。

转到 ?? 所示的Optical功能区,并打开光学网格编辑器。在波长设置中 (??) 将波长范围改为使仿真在绿光下运行。

起始波长设置为 530 nm,并将 终止波长设置为 531 nm。这比示例中最初使用的波长 短得多。

完成此更改后,重新运行仿真。结果如 ?? 所示。 光场现在不再局限在波导中,而是向外扩散到 整个仿真区域中。结果形成了一个醒目的辐射图样,类似于 蝴蝶或干涉扇。

出现这种情况,是因为相对于波导 几何结构而言,当前波长已经变得短得多,因此该结构不再支持良好约束的导模。 因此,Mach–Zehnder 干涉仪不再像一个光子电路那样工作, 而更像一个简单的辐射孔径。

这个实验突出了集成光子学中的一个重要设计原则: 波导结构具有很强的波长依赖性。 你可以使用不同波长重复这一测试,以确定该几何中哪些光谱 区域支持导波传播。

9. 网格分辨率与辐射模式

在默认示例中,你会注意到波导弯曲部分看起来极其平滑。 这是有意为之。平滑弯曲有助于将光学模式保持在 波导内部,并在光场改变传播方向时防止辐射损耗。

上下文菜单,显示如何为波导元件打开网格编辑器。
右键点击一个波导段并选择 Mesh editor
显示弯曲波导元件参数的网格编辑器。
弯曲波导段的网格编辑器。
从低分辨率波导弯曲处泄漏出来的辐射模式。
当波导弯曲变得锯齿化时产生的辐射。

本教程中的 Mach–Zehnder 结构由四个弯曲波导段构成, 形成一个跑道形干涉仪。为了说明平滑几何的重要性, 右键点击离你最近的弯曲波导元件并选择 Mesh editor??)。

这会打开 ?? 所示的网格编辑器窗口。 找到名为 Arc segments 的参数。 在原始示例中,该值设置为 32,从而产生一个 平滑的弯曲波导。

将弧段数量减小到 1。这是允许的最小 段数,并且实际上会将平滑弯曲转换为一个粗糙的多边形, 由矩形段构成。

当你重新运行仿真时,你将观察到在波导拐角附近出现强烈的辐射损耗, 如 ?? 所示。 当光场到达每一个急剧转向处时,部分能量 将不再被导引,而是以辐射形式泄漏出去。

你还会在源注入区域附近看到一些辐射。这种辐射 仅仅是由于注入源本征模与波导的精确 本征模之间存在失配造成的,在本演示中可以忽略。

10. 编辑光源

最后,我们将简要探讨如何修改激发源。默认情况下, 该仿真使用连续正弦波源。然而,OghmaNano 允许配置多种 源类型和参数。

显示 Mach–Zehnder 调制器仿真结构的 3D 视图。
仿真的标准器件视图。
显示作为光源的绿色箭头的视图。
光源在结构中显示为一个绿色箭头。
上下文菜单,显示如何编辑光源对象。
右键点击源并选择 Edit object
光源编辑器,显示脉冲持续时间和偏振等参数。
显示波形和时序设置的光源编辑器。

切换到 ?? 所示的视图后,可以看到激发源作为一个绿色箭头从 波导底部发出。右键点击这个箭头并选择 Edit object??)。

这将打开光源编辑器 (??), 你可以在其中配置激发波形。除了连续正弦 波之外,你还可以指定脉冲、更改起始和终止时间,或激发不同的 场分量。

一个有用的实验是用 simulation steps 而不是飞秒来设置源持续时间。例如,将结束 时间设置为大约 400 steps。当仿真运行时,源会 向波导中注入一束光,然后关闭。随后你可以观察 生成的波包如何通过干涉仪传播,并最终离开 结构。

你还可以尝试激发不同的场分量(x、y 或 z 偏振),或者测试不同的脉冲形状。在研究光子 器件中的瞬态行为、群延迟或脉冲畸变时,这些变化都非常有用。

至此,Mach–Zehnder 调制器教程结束。通过尝试不同波长、 网格分辨率和源参数,你可以探索光子结构如何在集成光子电路中导引、 约束并操控光场。