自动化与脚本
1. 为什么要自动化仿真?
一旦建立了器件结构,下一步通常是提出如下问题: “如果改变有源层的迁移率,我的太阳能电池效率会发生什么变化?” 或 “如果改变量子阱厚度,我的激光器发射波长会如何变化?” 回答这些问题需要系统地改变一个或多个材料或器件参数, 在一定范围内扫描其数值,并分析所得数据。自动化对于拟合与参数提取同样至关重要。 在许多情况下,需要将模型拟合到实验测量数据——例如测量得到的 J–V 曲线——以提取具有物理意义的参数 (例如迁移率、复合速率或接触性质)。 手动执行此类拟合既缓慢、容易出错,也难以复现。
除了单次拟合之外,自动化仿真还使得通过参数或器件结构扫描, 以受控方式生成大规模且一致的数据集成为可能。 这些数据集在统计分析以及训练 机器学习模型方面越来越有价值, 在这些应用中可能需要成千上万甚至数百万次仿真。 在所有这些情况下,自动化都提供了一种可扩展且可靠的方法来探索设计空间、 提取参数,并深入理解器件物理。
2. 自动化示例
OghmaNano 提供多种自动化仿真的方法,具体取决于您的编程经验水平以及任务复杂度:
-
参数扫描窗口: 参数扫描窗口 允许您使用图形用户界面按步长改变一个或多个参数。 无需编程知识,因此非常适合快速的探索性研究。 当您只想查看某个参数如何影响结果时, 这种方法覆盖了绝大多数日常使用场景。
-
Python 脚本: 为了获得更精细的控制,OghmaNano 支持 Python 脚本。 Python 是开源语言,在科学计算中被广泛使用, 并提供最大灵活性来自动执行大规模批处理运行 或与外部分析工具集成。
-
MATLAB 脚本: 另一种选择是 MATLAB 脚本。 MATLAB 为许多科学家和工程师所熟悉, 但它是商业软件。 GNU Octave 是一个免费的替代方案, 不过目前尚未完全支持 JSON。
-
机器学习数据生成: 自动化工作流程可以通过系统地改变器件结构、 材料参数或工作条件, 生成大规模且一致的数据集, 用于机器学习模型。
-
自动化拟合与参数提取: 自动化还可用于通过反复运行模型来拟合实验数据, 例如从测量得到的 J–V 曲线或光谱中提取参数。
3. 自动化的底层工作原理
所有这些方法都依赖于同一个基本原理:系统地编辑 OghmaNano 仿真文件(sim.oghma),
并执行核心引擎(oghma_core.exe)以生成新的结果。
需要理解的一个关键点是,sim.oghma 实际上只是一个包含 JSON 文件(sim.json)的 ZIP 压缩包。
该文件格式在
这里
有更详细的说明。
如果您能够编辑这个 JSON 文件——使用 Python、MATLAB,
或事实上任何编程语言(C、C++、Java、Perl、PHP、Ruby 等)——
就可以自动化 OghmaNano。
👉 下一步: 现在继续阅读 理解 Oghma 文件格式, 其中介绍了其结构以及仿真参数的存储方式。