自动化与脚本
为什么要对仿真进行自动化?
一旦建立了器件结构,下一步通常会提出诸如: “如果我改变有源层的迁移率,太阳能电池效率会发生什么变化?” 或 “如果我改变量子阱的厚度,激光器的发射波长会如何漂移?” 之类的问题。 回答这些问题需要在一定范围内系统性地改变一个或多个材料参数, 并分析由此产生的数据。手动完成这些工作既缓慢又容易出错,也无法扩展。 自动化提供了一种更快速、更可靠的方法,用于探索设计空间并深入理解器件物理。
自动化的优势
- 批量运行: 一次性自动运行数百甚至上千个仿真,在无需人工干预的情况下探索广泛的参数范围。
- 可重复性: 自动化脚本确保仿真以一致的方式执行,使结果易于复现和共享。
- 优化: 自动化工作流可以系统性地搜索最优器件配置,例如最大化功率转换效率(PCE)或调谐激光发射波长。
- 集成: 脚本可以将 OghmaNano 与外部分析工具(例如 Python + NumPy/matplotlib,或 MATLAB 工具箱)连接起来,从而简化从仿真到发表的流程。
自动化的方法
OghmaNano 提供了多种实现仿真自动化的方法,具体取决于你的编程经验水平以及任务的复杂程度:
-
参数扫描窗口: 参数扫描窗口 允许你通过图形用户界面以步进方式改变一个或多个参数。 无需任何编程知识,非常适合快速的探索性研究。 这种方法覆盖了大多数日常使用场景,即你只需了解某个参数如何影响结果。
-
Python 脚本: 对于需要更精细控制的情况,OghmaNano 支持 Python 脚本。 Python 是开源的,在科学计算中被广泛使用,能够提供最大的灵活性来调整仿真参数、 自动化大规模批量运行,或与外部分析和可视化库集成。 这种方法在科研工作流中特别强大。
-
MATLAB 脚本: 另一种选择是 MATLAB 脚本。 MATLAB 为许多科学家和工程师所熟悉,因此提供了一种易于上手的自动化方式。 其缺点在于 MATLAB 是商业软件,并非所有人都可以使用。 GNU Octave 是一个免费的替代方案,但在撰写本文时,它尚不包含 JSON 读写器,从而限制了兼容性。
自动化在底层是如何工作的
所有这些方法都依赖于相同的基本原理:系统性地编辑 OghmaNano 仿真文件(sim.oghma),
并执行核心引擎(oghma_core.exe)以生成新的结果。
需要理解的一个关键点是,sim.oghma 实际上只是一个包含 JSON 文件(sim.json)的 ZIP 压缩包。
这种文件格式在
此处
有更详细的说明。
如果你能够编辑这个 JSON 文件——无论是使用 Python、MATLAB,还是
任何编程语言(C、C++、Java、Perl、PHP、Ruby 等)——你就可以实现 OghmaNano 的自动化。
👉 下一步: 继续阅读 了解 Oghma 文件格式, 包括其结构以及仿真参数的存储方式。