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

参数扫描窗口

OghmaNano parameter scan icon
OghmaNano 中的参数扫描工具图标。

系统地改变仿真参数的最直接方法是使用扫描窗口。在这个 示例中,我们将系统地改变 PM6:Y6 太阳能电池有源层的迁移率,您可以在示例仿真中的 Scripting and fitting/Scan demo (PM6:Y6 OPV) 下找到 这个示例。找到该仿真并打开之后,接着需要调出参数扫描窗口,这可以通过 单击 Automation 功能区中的 Parameter scan 图标来完成(见 ??)。 然后通过单击 new scan 按钮(1)新建一个扫描(在示例仿真中,这一步已经 为您完成)。通过双击表示该扫描的图标(2)来打开新扫描,见 ??。这将弹出扫描窗口,见 ??

1. 选择要变化的参数

一旦 scan window 打开,通过单击图 17.1 中的加号图标(1)新建一条扫描线,然后选择该 行使其高亮(2),接着单击三个点(3)以选择要扫描的参数。 同样,如果您使用的是示例仿真,这一步已经为您完成。

OghmaNano new parameter scan window
OghmaNano 中的新参数扫描窗口。
OghmaNano add scan line window
第 3 步:向扫描中添加一个扫描线
OghmaNano parameter scan selection window
OghmaNano 中的参数扫描选择窗口。

在本示例中,选择扫描 PM6:Y6 太阳能电池的电子迁移率。 这是通过导航到 epitaxy\(\rightarrow\) PM6:Y6\(\rightarrow\) Drift diffusion\(\rightarrow\) Electron mobility y 来完成的。 选中该参数并单击 OK。随后,所选参数将显示在扫描列表中。 下面解释该参数路径中每一层级的含义:

尽管这一工作流程一开始看起来可能相对复杂,但本质上它只是以结构化方式 编辑底层 .oghma JSON 文件中的值和路径。 参数选择窗口只是提供了一个图形界面,用于安全且一致地导航和修改该 文件。 文件结构的详细说明可见文档 OghmaNano 文件格式

2. 设置数值

接下来输入您想要扫描的迁移率数值,在本例中我们将输入 1e-5 1-6 1e-7 1e-8 1e-9,然后单击 run scan(见图 17.2 2)。OghmaNano 将在您计算机的每个核心上运行一个仿真,直到所有 仿真完成。

OghmaNano parameter scan input values window
第 6 步:输入要扫描的迁移率(或其他参数)数值,然后运行仿真。

3. 查看仿真结果

要查看仿真结果,单击 output 选项卡,这将显示仿真输出,见 图 17.3。您可以看到, 为我们扫描的每个变量都创建了一个目录,因此有 1e-5、1e-6、1e-7、1e-8 和 1e-9。如果查看每个目录内部,它都会是基础仿真目录的完整副本。如果您 双击带有多色 JV 曲线的文件,见图 17.3 中的红框,OghmaNano 将自动把 每个仿真的所有曲线绘制到同一张图中,见图 17.4

OghmaNano parameter scan output tab
第 7 步:Output 选项卡,显示五个仿真目录和多色绘图文件。
OghmaNano JV curve from mobility scan
第 8 步:迁移率扫描结果。

4. 复制参数——改变有源层厚度

很多时候,人们希望在改变一个参数的同时,将另一个参数设置为与其变化值相同。 一个简单的例子是在模拟具有对称输运特性的器件时,同时扫描电子和空穴迁移率。 这可以通过扫描窗口中的 Duplicate 功能实现,如 ?? 所示。在这个例子中,我们考虑一个稍微更微妙的问题。与其复制迁移率,我们改变 有源层的物理厚度,同时调整电学网格使其与之匹配。 如 网格划分部分 中所讨论的那样, 有源层的宽度应与电学网格的宽度相匹配。 最好保持两者一致,以避免仿真中的数值和几何不一致。

当在层编辑器中手动改变层宽时,OghmaNano 会自动更新电学 网格。然而,当通过脚本或参数扫描修改模型时,这种更新可能不会 自动执行。因此,在下面的例子中,我们显式复制相关参数。

首先,我们扫描:

epitaxy\(\rightarrow\)PM6:Y6\(\rightarrow\)对象的 dy

接着,我们添加另一条扫描线,并在 Parameter to scan 下选择:

mesh\(\rightarrow\)mesh_y\(\rightarrow\)segment0\(\rightarrow\)len

然后将该参数设置为:

epitaxy\(\rightarrow\)PM6:Y6\(\rightarrow\)对象的 dy

使用 Operation 下拉菜单进行设置。选择后,Values 列下将显示 duplicate 一词。

运行仿真时,参数 “epitaxy\(\rightarrow\)PM6:Y6\(\rightarrow\)对象的 dy” 会被扫描,而 “mesh\(\rightarrow\)mesh_y\(\rightarrow\)segment0\(\rightarrow\)len” 会自动跟随它,从而确保网格厚度与物理层厚度保持一致。

OghmaNano duplicating material parameters
复制材料参数。

5. 设置常数值

OghmaNano parameter scan editor showing constant and scanned parameters
参数扫描编辑器,显示了扫描参数与常数参数的混合设置。

除了扫描参数之外,参数扫描编辑器还可以使用 constant 操作将参数 显式设置为固定值。 当在改变某个参数的同时,其他若干参数必须保持不变时,这一点很有用。

在这个例子中,通过扫描器件层的 dy 参数来改变有源层厚度。同时,对应的 垂直网格段长度被复制,以便电学网格保持与变化的层厚度 一致。与这些扫描参数一起,电子迁移率和空穴迁移率都通过 Operation 列中的 constant 选项设置为固定值。

使用 constant 可确保这些参数在扫描中的每次仿真中都取指定值, 无论其他参数如何变化。 这使得可以将几何变化的影响 (例如层厚度)与输运参数清晰分离开来,并避免扫描量之间出现 非预期耦合。

6. 循环的等效形式

在扫描参数范围时,通常希望运行大量仿真。 在这种情况下,手动输入每个值是不现实的。为了解决这个问题,OghmaNano 在扫描窗口中提供了 循环的等效形式。

例如,要以步长 1 将某个参数从 100 变化到 400,可以输入:


[100 400 1]

7. 扫描窗口的局限性

扫描窗口为改变材料或器件参数并 快速可视化结果提供了一种务实且简便的方法。对于简单研究——目标是了解某个量 如何变化并在数秒内获得结果——它通常是最有效的方法。

然而,一旦仿真数量变得很大,或者需要更复杂的参数相互作用, 扫描窗口就可能变得有限制。在这种情况下,更合适的做法可能是通过脚本接口 以程序方式驱动 OghmaNano,例如通过 PythonMATLAB, 它们能够对参数生成、执行逻辑和数据收集进行完全控制。

类似地,如果目标是优化器件堆叠——而不是简单地观察曲线如何随 参数变化——通常最好使用内置优化工具。相关内容在手册的 多参数器件优化器 部分中进行了说明。

👉 下一步: 现在继续阅读 多参数优化, 在那里您可以了解如何同时优化多个器件参数。