传输矩阵模型(TMM)
1. 引言
传输矩阵方法(TMM)是一种快速、可靠的技术,用于在法向入射条件下对多层(“夹层型”)结构中的光 传播进行建模。它被广泛用于太阳能电池、光学滤波器和传感器等器件, 在这些器件中需要量化光在薄膜中的吸收、反射与 透射。
与 FDTD 等全波求解器相比,TMM 通常以低几个数量级的计算代价 获得类似的洞见。这使其非常适合用于多层堆叠结构的快速设计迭代、参数扫描与优化,同时仍能捕捉决定器件行为的关键 干涉与薄膜效应。尽管 TMM 在平面堆叠的法向入射情况下最为直接,但在需要时也可以 扩展到斜入射以及与偏振相关的分析。
👉 想现在就开始仿真?: 试试关于传输矩阵模型的 快速入门教程
2. 访问 TMM 工具
传输矩阵仿真工具可在主窗口的 Optical 功能区中选择 Transfer matrix 来访问 (见 Figure ??)。
3. 运行 TMM 仿真
点击 Run optical simulation (见 Figure ??) 将计算结构内光分布随波长与位置的变化。 在仿真窗口顶部,你可以从多个光学模型中进行选择。 选择 Transfer matrix 会执行完整的光学仿真,而其他选项提供简化近似 ,可用于探索替代的产生率分布。
可用的仿真模式包括:
- Transfer matrix: 执行完整的传输矩阵计算,包括界面处的多次反射与光学损耗。 这是最准确(并推荐)的模型,通过求解 1D 波动方程得到光场分布。
- Exponential profile: 使用指数衰减近似光吸收: \[I = I_{0} e^{-\alpha x} \label{efield2}\] 层间透射由下式给出: \[T = 1 - \frac{n_1 - n_0}{n_1 + n_0} \label{equ:transfermatrixreflection}\] 该模型忽略反射。
- Flat profile: 假设每一层内光强均匀,仅在界面处按 Equation ?? 衰减。 适用于在不引入空间变化产生率的情况下探索载流子动力学。
- From file: 导入自定义产生率分布,通常由更高级的求解器(如 FDTD)生成。
- Constant value: 允许你通过旁边的菜单为每一层设置固定的产生率。 这常用于概念性研究或性能扫描,例如绘制产生率与 \(V_{oc}\) 的关系。
光学仿真窗口提供多个标签页,用于探索光与器件的相互作用。 例如,?? 显示结构内部的光子密度,其中层间界面的反射产生了清晰的干涉条纹。 ?? 给出了与 ?? 相同的数据, 但以能带图形式显示。 该替代视图可通过在窗口中右键并调整菜单选项获得,并且特别适合生成用于论文的能带图。 最后,?? 显示光学模型的配置窗口。 其中一个关键参数是 photon efficiency,它指定每个被吸收光子产生多少对电子–空穴。 在有机器件中,该参数用于考虑同生复合,而在无机或高度有序体系中通常应设置接近 1.0。
5. 输出文件
概览: 运行光学仿真后,可在光学仿真窗口中查看结果概览 (??), 如上所述。为进行更详细的分析,还可在主窗口的 Output 标签页中获取更多信息 (??)。在 ?? 中可以看到两个关键图标:optical_output 和 optical_snapshots。 双击 optical_output 会打开光学结果窗口 (Figure ??), 而双击 optical_snapshots 会打开 Optical Snapshots 窗口 (??)。Optical Snapshots 窗口允许你检查按波长分辨的数据,例如光子密度、被吸收光子数, 以及器件内部的电场分布。 由于结果会为每个波长存储一次,该工具能够提供器件性能在整个光学谱段上的详细视图 。
optical_output 与 optical_snapshots 通常仅在直接运行光学仿真时生成,
当光学求解器作为耦合电学仿真的一部分被调用时不会写出。
Optical_snapshots: 上述 optical_snapshots 文件夹可在图形界面中访问随波长变化的光子密度、被吸收光子数, 以及光学电场。 但它本质上只是一个标准目录,也可以在文件管理器中直接浏览。 如 Figure ?? 所示, 该文件夹包含编号从 0 到 12 的子目录,每个子目录对应一个被模拟的波长。 打开其中一个子目录(例如目录 0)会看到 Figure ?? 所示的输出文件。
这些文件包含诸如吸收剖面、电场、光子密度与产生率等数据, 均以纯文本 CSV 格式写出,便于检查或后处理。 下表总结了一个典型波长目录的内容:
photons_abs.csv 的内容示例,展示了元数据以及仿真输出数值。
由于这些输出是纯文本,它们可以用任何编辑器打开。 如 Figure ?? 所示, 每个 CSV 的第一行包含用于绘图的元数据,第二行描述坐标轴,后续行提供原始数值数据。
| 文件名 | 说明 |
|---|---|
alpha.csv |
y 位置 vs. 在所选波长处的吸收 |
data.json |
包含波长数值与绘图信息的 JSON 元数据文件 |
En.csv |
y 位置(m)vs. 电场负分量(V/m) |
Ep.csv |
y 位置(m)vs. 电场正分量(V/m) |
G.csv |
y 位置(m)vs. 产生率(\(m^{-3}s^{-1}\)) |
n.csv |
y 位置(m)vs. 折射率 n 的实部 |
photons.csv |
y 位置(m)vs. 光子密度(\(m^{-3}\)) |
photons_abs.csv |
y 位置(m)vs. 被吸收光子数(\(m^{-3}s^{-1}\)) |
optical_output 文件夹详解:
optical_snapshots 目录存储按波长分辨的结果(每个被模拟波长对应一个子文件夹),
而 optical_output 目录包含按波长积分的数据,以
波长 vs. 位置 的二维图形式给出。
这些输出提供了光与器件在全谱段相互作用的概览,包括关键量
如电荷载流子产生率、光子密度、归一化光子密度、透射与反射等。
目录内容如
Figure ?? 所示。
Figure ?? 中列出的文件在 Table ?? 中进行了详细说明。
optical_output 目录,包含传输矩阵求解器生成的按波长积分的汇总文件。
| 文件名 | 说明 | 图类型 |
|---|---|---|
data.json |
包含 JSON 格式仿真设置的元数据文件 | 1D |
G_y.csv |
y 位置(m)vs. 电荷产生率(\(m^{-3} s^{-1}\)) | 2D |
G_zxy.csv |
zxy 位置(m)vs. 电荷产生率(\(m^{-3} s^{-1}\)) | 2D |
Htot_zxy.csv |
zxy 位置(m)vs. 光学热产生(\(W m^{-3}\)) | 2D |
light_src_id_xxx.csv |
波长(m)vs. 来自指定光源的光强(\(W/m\)) | 2D |
photons_abs_yl.csv |
波长(m)vs. y 位置(m)vs. 被吸收光子数(\(m^{-3} s^{-1}\)) | 2D |
photons_yl.csv |
波长(m)vs. y 位置(m)vs. 光子密度(\(m^{-3}\)) | 2D |
photons_yl_norm.csv |
波长(m)vs. y 位置(m)vs. 归一化光子密度(a.u.) | 2D |
reflect.csv |
波长(m)vs. 器件堆叠的反射光 | 1D |
transmit.csv |
波长(m)vs. 透过器件堆叠的透射光 | 1D |
6. 模拟光学厚层(非相干层)
典型光电器件的有源层厚度在 10 nm 到 100 nm 之间。 但这些器件通常沉积在厚度为 10 mm 到 1 cm 的衬底上。 在许多情况下,不仅要模拟器件本身,还要模拟衬底的光学效应。 这需要一种能跨越从纳米到米的长度尺度的仿真工具。 这样做主要有三个挑战:
- 问题 1:模拟不同长度尺度 – 数值求解器在同一次计算中同时处理非常大与非常小的数时会遇到困难。 这可能导致舍入与数值误差。
- 问题 2:光的波长 – 由于可见光波长远小于 1 cm, 模拟厘米级厚层需要极其细的空间网格来捕捉干涉效应,因而不切实际。
- 问题 3:相干性丧失 – 传输矩阵模型假设光以法向入射且各层无缺陷。 在厚衬底中,散射与不均匀性会破坏这些假设, 使光场变为非相干。
OghmaNano 通过两种方式解决这些问题。 首先,它允许用户将某一层视为 incoherent, 仅考虑吸收并忽略相位信息。 这种方法解决了问题 2 与问题 3。 该选项可在层编辑器中设置 (Figure ??)。 在标注为 Solve optical problem 的列中,标记为 Yes – n/k 的层同时包含相位与吸收, 而标记为 Yes – k 的层仅考虑衰减,从而有效地将其作为非相干层处理。
其次,为处理问题 1(长度尺度差异很大), OghmaNano 允许为任意层指定 effective optical thickness。 例如,衬底在层编辑器中可能定义为 100 nm 厚, 但赋予 1 m 的有效深度。 在内部,这通过缩放吸收系数来实现:
\[\alpha_{\text{effective}}(\lambda) = \alpha(\lambda)\,\frac{L_{\text{effective}}}{L_{\text{simulation}}}\]
其中 \(\alpha_{\text{effective}}\) 是仿真中使用的缩放后吸收, \(\alpha\) 是材料吸收系数, \(L_{\text{effective}}\) 是期望的有效厚度(例如 1 m), 而 \(L_{\text{simulation}}\) 是编辑器中的实际层厚度。 这种方法减少数值问题,并且还能生成更有用的图, 使衬底不会主导坐标轴,而器件层仍保持清晰可见。
要使用该功能,按 Figure ?? 所示设置器件结构。 然后在传输矩阵窗口中点击 Optical Thickness 按钮 (Figure ??)。 这将打开配置对话框 (Figure ??), 其中可指定任意层的有效光学厚度。 在所示示例中,玻璃衬底被设为 1 m。
4. 何时运行 TMM?
传输矩阵仿真可通过两种方式运行。 第一种是点击 Play 按钮直接启动。 另一种是当运行电学仿真时,光学模型会自动执行,无需额外用户操作。
这两种模式的主要区别在于输出。 直接运行时,光学仿真会在磁盘上生成更完整的一组输出文件。 相比之下,当它作为电学仿真的一部分被调用时,输出会减少为仅包含必要数据,以避免拖慢电学求解器。
👉 TMM 理论: 前往 下一节 以理解传输矩阵理论。