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

FDTD 教程:双缝(连续正弦波)

1. 引言

双缝实验是展示光表现为波动的经典实验。一个相干光源照射两个 狭窄孔径,透射场扩展到狭缝后方的区域。由于两个孔径发射出 相干波前,它们会发生干涉:相位一致的区域形成强度极大值,而相位相反的 区域形成极小值。结果是一个具有特征性的扇形衍射图样,并受到干涉条纹的调制。

你将运行内置的 Double slit 示例,确认已检测到 OpenCL 设备(这样仿真 在可用时可在 GPU 上运行),然后检查功率密度快照,以观察波前如何通过 两个开口发生衍射,并在自由空间区域中形成预期的干涉图样。

2. 创建新仿真

从 OghmaNano 主窗口开始,点击 New simulation。在 New simulation 浏览器中, 双击 FDTD examples,然后双击 Double slit (??, ??)。 这将打开 ?? 中所示的主仿真窗口。

显示包括 FDTD examples 选项在内分类的 OghmaNano New simulation 窗口。
打开 New simulation 并双击 FDTD examples
包含 Double slit 示例的 FDTD 示例列表。
从 FDTD 示例列表中选择 Double slit

3. 熟悉主窗口

加载该示例后,几何结构将显示在 Device structure 选项卡中 (??)。 Terminal 选项卡会在执行期间显示求解器输出,包括网格间距、时间步长以及已选择的 OpenCL 设备。Output 选项卡列出仿真生成的文件,包括包含随时间变化功率密度数据的 snapshots 目录。

显示已加载 Double slit FDTD 示例的 OghmaNano 主窗口。
加载 Double slit 示例后的主 OghmaNano 界面。
显示仿真运行和 OpenCL 设备选择的 Terminal 选项卡。
运行期间的 Terminal 选项卡。注意 Searching for OpenCL devices 和设备选择信息。

4. 运行仿真

通过点击 Run simulation (▶) 或按下 F9 开始计算。 求解器输出会显示在 Terminal 选项卡中 (??)。 在此示例中,你可以看到一条绿色状态行,表明 OghmaNano 正在 searching for OpenCL devices, 并且已经找到并选择了一个 OpenCL 设备。

这对性能很重要。如果存在支持 OpenCL 的 GPU(集成式或独立式),OghmaNano 可以在 GPU 而不是 CPU 上运行 FDTD 更新步骤,这对于此类基于网格的 计算通常会显著更快。大多数现代计算机至少提供一个 OpenCL 设备,因此在很多情况下你会看到设备被自动 选择。如果没有找到兼容设备,仿真仍会在 CPU 上运行;只是耗时会更长。

5. 检查输出

运行完成后,打开 Output 选项卡查看仿真生成的文件。输出列表显示在 ?? 中。 你可以从这里打开 snapshots/ 文件夹,其中包含运行期间保存的 随时间变化的场派生量。

Output 选项卡列出了 Double slit 仿真生成的文件,包括 snapshots 文件夹。
运行后的 Output 选项卡。打开 snapshots/ 以查看时域功率密度快照。

6. 查看功率密度快照

Output 选项卡中双击 snapshots/ 目录以打开快照查看器。然后选择 power_density.csv 作为要绘制的文件。查看器底部的滑块可沿时间步进,让你 观察仿真推进过程中电磁能量密度如何演化。

显示在 ???? 中的序列展示了预期的物理现象。连续正弦波进入结构,到达两个孔径,然后 衍射到狭缝后方区域。由于存在两个相干发射体,扩展的波前会重叠 并相互干涉,形成扇形衍射区域,其中交替的条带对应于相长和相消 干涉。

点击 Colors 可更改快照查看器的配色方案。这不会改变仿真 结果;它只会改变相同数据映射到显示调色板的方式。对于出版物或教学, 切换调色板有助于使干涉条纹在背景中更容易看清。

Double slit 仿真的早期时间功率密度快照。
早期时间快照:CW 光源启动,功率开始向狭缝区域传播。
显示功率密度到达狭缝区域的快照。
功率到达孔径,并开始通过两个开口发生衍射。
显示狭缝后方干涉扇形开始形成的快照。
衍射场发生重叠,狭缝后方的干涉扇形开始可见。
显示已形成衍射/干涉图样的较晚时间快照。
较晚时间快照:随着 CW 场接近稳定振荡状态,干涉结构变得更加清晰。

7. 解释你所看到的现象

双缝结果的关键特征是两种效应的组合。首先,每个孔径都会产生衍射, 因此即使只有单个狭缝,透射场也会展宽为一个扩展分布。其次,由于存在两个 由同一相干光源馈入的孔径,透射场保持相位相关,因此它们的叠加会产生 干涉条纹。在快照中,这表现为狭缝后方区域中的结构化图样,其中 高功率密度条带之间由较低功率区域隔开。

在连续正弦波(CW)运行中,通常首先会有一个初始瞬态阶段,此时计算域被注入场填满, 随后进入一个场按正弦方式振荡的阶段,并且在按快照采样频率观察时, 功率密度图样在时间上看起来是稳定的。如果你看到强烈的伪反射、边界附近意外的亮带,或 不稳定增长的场,通常的原因包括边界条件、吸收层厚度不足,或 对于所选网格分辨率而言时间步长设置过大。

8. 快速检查与常见失效模式

9. 启用光学探测器

Double slit 示例可以选择性记录入射到用户定义探测器区域上的光功率。这些探测器的作用 类似于放置在仿真域中的小型监测窗口:在运行期间,OghmaNano 会对穿过每个 探测器区域的功率进行积分,并将时间轨迹保存到输出目录中。

要启用探测器,请导航到 Optical 功能区并找到 Optical Detectors 按钮, 其显示为 CCD 风格的相机图标 (??)。

OghmaNano Optical 功能区,高亮显示 Optical Detectors 图标(CCD 相机)。
Optical 功能区。点击 Optical Detectors(CCD 相机图标)以编辑并启用探测器。

点击 Optical Detectors 会打开探测器编辑器。在此示例中有两个探测器(名为 onetwo),并且二者最初都被禁用。当探测器被禁用时,工具栏会显示红色的 Disabled 状态。点击该禁用按钮即可启用它;指示器会变为绿色,表示探测器处于活动状态 (??, ??)。 对第二个探测器重复此操作,使两个探测器都处于启用状态。

在探测器编辑器中,你还可以看到探测器的位置(x、y、z)及其尺寸(单位为微米)。对于本教程, 你无需更改这些数值;该示例已预先配置,用于展示一个重要的物理点:一个探测器位于 高衍射强度区域,而另一个位于衍射场相对较弱的区域。

光学探测器编辑器,显示探测器列表并高亮 Disabled 状态。
探测器编辑器:两个探测器最初都处于 Disabled 状态。
光学探测器编辑器,显示探测器已启用并带有绿色指示器。
点击禁用按钮以启用探测器;指示器会变为绿色。
启用后主窗口中显示仿真域内可见的两个探测器。
启用两个探测器后,主仿真视图中会出现两个探测器区域。

10. 重新运行并查看探测器输出

启用探测器后,重新运行仿真(▶ 或 F9)。运行完成后,打开 Output 选项卡。 现在你应当能看到两个额外的输出项,对应于探测器结果(例如 detector0detector1),如 ?? 所示。 双击每个探测器项以打开其功率-时间曲线 (??, ??)。

启用探测器并重新运行后,Output 选项卡中显示新的 detector0 和 detector1 项。
重新运行后的 Output 选项卡:探测器输出现在显示为新条目。
探测器 0 的功率-时间图,显示低功率信号。
探测器 0:收集到的功率非常低(注意 y 轴刻度)。
探测器 1 的功率-时间图,显示更强的信号在延迟后到达。
探测器 1:在波前到达探测器区域后收集到更大的功率。

通过比较它们的纵轴刻度,最容易理解这两条曲线之间的差异。一个探测器记录的功率仅处于 数微瓦(或更低)的水平,而另一个在衍射场到达后记录到明显更大的信号。 两条曲线中的延迟起始都是预期现象:仿真在 t=0 时随着光源开启而开始,而探测器只有在 电磁波从光源传播、穿过狭缝并跨越自由空间区域到达其 位置后才能响应。

11. 物理解释:探测器与衍射波瓣

放置两个探测器的目的,是将时域数据与空间衍射图样联系起来。在双缝系统中, 远场结构并不均匀:存在两个狭缝贡献相长叠加的方向(高强度), 也存在相消叠加的方向(低强度)。换句话说,衍射场会形成波瓣和波谷,而 测得的探测器功率强烈取决于探测器位于亮区还是零点附近。

这一点可以直接在带有探测器的快照视图中看到 (??)。 一个探测器位于强衍射波瓣路径中,因此累积了显著的光功率。另一个探测器则位于 干涉主要为相消的区域(图样的波谷),因此穿过其监测区域的功率相对较少。 这就是为什么两条输出曲线相差数个数量级,即使这些探测器在其他方面是完全相同的对象。

显示衍射/干涉图样以及两个探测器区域的快照,其中一个位于亮波瓣内,另一个位于弱场区域。
显示探测器的快照:一个探测器放置在强衍射波瓣内,另一个位于低强度区域。

从概念上讲,这与光学计量和成像中使用的物理完全相同:探测器测量的并不是仿真的抽象“总功率”,而是 在其具体位置上穿过其有限面积的那部分场。仅仅将探测器移动很小一段 距离,就可能使其从亮条纹移到相邻的暗条纹中,从而显著改变测得功率。在实际 系统中,这种敏感性正是衍射和干涉图样有用的原因:它们将几何信息(狭缝间距、 孔径尺寸、波长)编码为可测量的强度分布。

12. 调整狭缝几何结构

数值 FDTD 实验的一个优点是几何结构可以交互式修改, 并且由此产生的光学行为可以立即进行探索。在本节中,我们修改构成 双缝孔径的中央遮挡元件的位置,并观察这如何改变衍射图样 以及两个光学探测器检测到的功率。

3D device window 中使用鼠标,选择构成双缝的中心块, 并按照 ?? 所示将其拖向结构左侧。 正常情况下,拖动对象时它们不能彼此穿过,但如果该块与其他对象发生碰撞, 你可以在拖动时按住 Shift 键。这样可使 该块穿过其他几何对象,从而便于重新定位。

移动该块后,重新运行仿真(▶ 或 F9)。所得的光学 场分布显示在 ?? 中。

在 3D 窗口中使用鼠标移动双缝中央块。
使用鼠标将中央块拖向结构左侧。
移动狭缝块后的仿真结果,显示衍射减弱。
移动狭缝几何结构后的仿真结果:光束更直接地穿过孔径, 并且大多避开了探测器。

在这种配置中,光束不再分裂成两个可比的衍射源。 相反,光主要通过单个开口,并以前向更为 准直的方式传播。仍然会发生一定衍射, 因为任何有限孔径都会根据波动光学产生展宽,但此前由两个 相干狭缝产生的干涉图样现在要弱得多。因此,与原始几何结构相比, 探测器接收到的光功率很小。

13. 将该块向光源方向移动

接下来,我们以另一种方式修改几何结构。再次使用鼠标,将中心块 按照 ?? 所示向后拖向光源。 与前面一样,如果需要,你可以在拖动时按住 Shift 键,使该块能够 穿过其他对象。

该块重新定位后,重新运行仿真。所得的场分布 显示在 ?? 中。

使用鼠标将中央块向光源方向移动。
将中央块向后移动,靠近光源。
改变孔径几何结构后,显示修改后衍射图样的仿真结果。
改变孔径几何结构后的衍射图样结果。

将遮挡元件移得更靠近光源会改变有效孔径几何结构, 从而改变透射光场的空间分布。由于衍射 对孔径相对于入射波前的形状和位置高度敏感, 即使相对较小的几何变化也会显著改变最终的干涉 结构。在此情况下,衍射光束以不同角度射出,干涉 图样也会相应改变。

这展示了波动光学仿真的一个关键特征:衍射图样完全由 几何结构和波长决定。通过修改结构的物理布局,你可以 探索孔径形状、狭缝间距和障碍物位置如何影响最终的光场 分布以及放置在仿真域中的探测器所测得的功率。

14. 使用网格编辑器添加透镜

在前面的各节中,我们探索了改变孔径几何结构如何改变衍射图样。在本节最后部分,我们更进一步, 演示如何使用 Mesh editor 将一个简单对象转换为更复杂的网格。这是 OghmaNano 中一种强大的工作流程:你可以从简单基本体开始建立直觉,然后逐步引入更真实的 光学元件,例如透镜、曲面以及导入的 CAD 网格。

首先,重新调整器件视图方向,使其与 ?? 一致。然后右键单击双缝 结构的中心块,并打开 Mesh editor。这会打开 ?? 中所示的编辑器。 在网格编辑器中,点击 Lens 按钮,并完全按照 ?? 所示输入参数。

使用这些数值,你可以生成一个透镜形状的对象。如果保持透镜默认方向不变, 它将在器件视图中显示为一个“平放”的透镜,如 ?? 所示。 在本教程中,我们不希望透镜平躺在仿真平面中,因为那样光场不会以 有意义的方式与其相互作用。透镜需要旋转,使其竖立起来并拦截传播中的波前。

在打开网格编辑器创建透镜前重新定向后的器件视图。
重新调整视图,以便可以选择并编辑中心块。
从右键菜单打开的网格编辑器窗口。
为所选对象打开 Mesh editor
网格编辑器中的透镜配置,显示用于生成透镜形状的精确参数。
点击 Lens 并完全按照图示输入参数。
已创建但平躺在仿真平面中的透镜。
透镜最初呈平放状态;必须将其旋转,使波前能够与之相互作用。

15. 旋转透镜并设置光学材料

要旋转新透镜对象,请右键单击透镜并打开 Object editor。这会打开 ?? 中所示的编辑器。 按照图示将旋转角精确设置为 90900(x、y、z)。这会将 透镜旋转到传播路径中直立的位置,使其能够与入射场发生强烈相互作用。

在对象编辑器中时,还要通过选择图中所示的光学材料,使透镜在光学上透明: inorganic/Si/Green-2008。这是一个适用于硅的便捷宽带折射率谱, 适合用于演示折射和聚焦行为。分配该材料后,透镜就成为真正的折射对象, 而不再只是一个几何遮挡体。

设置旋转和材料后,几何结构应当如 ?? 所示, 此时透镜在仿真区域中竖直放置。

对象编辑器,显示旋转设置为 90、90、0,且光学材料设置为 inorganic/Si/Green-2008。
Object editor 中,将旋转设置为 90, 90, 0,并指定 inorganic/Si/Green-2008
在器件视图中已旋转为直立状态的透镜,使波前能够与其相互作用。
旋转后的透镜:它现在直立地位于光路中。

16. 运行带透镜的 FDTD 仿真

在透镜存在的情况下重新运行仿真。一个具有代表性的功率密度快照显示在 ?? 中。 你可以清楚地看到入射波前与曲面折射表面相互作用:一部分场透过 透镜并发生折射,另一部分则被反射回光源方向。

透射场在透镜内部及周围形成了更为密集的波前结构区域,而出射场表现出 聚焦迹象:透射能量集中到更小区域,而不是像裸孔径情形那样继续自由扩散。 与此同时,透镜反射将相当一部分光功率送回孔径区域, 从而减少了到达下游探测器的功率。这与物理预期完全一致:折射 元件会在其界面处引入阻抗失配,除非透镜带有减反射涂层或实现折射率匹配,否则 Fresnel 反射 可能相当显著。

这个示例说明了为什么“网格变换”工具在实际仿真中很重要。即使是简单系统也会很快被 曲面和工程化光学元件所主导。能够将一个基本块体变成透镜(或任何其他网格对象),使你可以 直接在用于 FDTD 的同一工作流程中构建光学结构。相同的方法还可用于创建和研究微透镜、聚光器、衍射 光学元件、波前整形结构,或用于真实器件的导入 CAD 几何。

FDTD 快照,显示波前撞击透镜、向光源方向的强反射、透过透镜的传输以及聚焦。
带折射透镜的 FDTD 结果:入射波前部分反射、部分透射,且透射场显示出聚焦。