用户工具

站点工具

本页面的其他翻译:
  • zh

atk:使用akmc方法模拟si0.5ge0.5中空位的扩散

这是本文档旧的修订版!


使用AKMC方法模拟Si0.5Ge0.5中空位的扩散

版本:2017. alpha

在本教程中,我们将采用自适应动力学蒙特卡洛方法(AKMC)模拟 Si0.5Ge0.5 合金空位扩散。AKMC 是一种可以即时执行的动力学蒙特卡洛(KMC)模拟算法,无需预先定义一组状态和反应机制。通过定位势能面上的鞍点确定反应机制,然后运用谐波过渡态理论(HTST)计算反应速率。您可以在以下教程中了解更多 AKMC 方法的相关信息:Adaptive Kinetic Monte Carlo Simulation of Pt on Pt(100)

注意

对于经典的 MD 模拟,超过几百纳秒的模拟是不切实际的。但是,通过使用 AKMC,我们将能够在更长的时间范围内对体系的动态进行模拟。这是因为 KMC 模拟是将体系的动态描述为状态之间的转换,故一旦发现就可以快速计算出来。

获取初始结构

为了生成初始的 Si0.5Ge0.5 合金结构,我们在 2015ATK Builder 里点击 Builders Substitutional Alloy。如果您使用的是更早版本,可以用这个脚本代替:↓initial-structure.py

  1. 打开 Builder
  2. Add From Database,点击 Silicon (alpha)。
  3. Bulk Tools Repeat,设置 A = 4,B = 4,C = 4,点击 Apply 按钮。
  4. 选择 Builders Substitutional Alloy。
  5. 采用默认设置,用 Ge 替代 50% 的 Si。
  6. 点击 Create 按钮。

现在,您可以在 Builder 的主窗口和 Stash 中看到初始合金结构。可能与上图显示的有所不同,这是因为合金是随机生成的。接下来,我们要在初始结构上做一个 Si 的空位。本例中,我们删除了前面蓝色 Ge 后面的一个黄色 Si。您也可以随机创建一个 Si 空位。

现在,我们将要优化初始结构。

  1. 点击 按钮,将初始结构发送到 Script Generator
  2. 添加 New Calculator OptimizeGeometry 模块。
  3. 修改输出文件名为 alloy.nc
  4. 双击 New Calculator 模块,选择 ATK-Classical 计算器,参数为 StillingerWeber_SiGe_1995
  5. OptimizeGeometry 模块,设置 Force tolerance 为 0.01 eV/Å。
  6. 点击 按钮,将脚本发送到 Job manager。

您也可以下载使用脚本:↓initial-structure.py。该脚本会生成一个硅超胞,然后用 Ge 随机替换 Si 以达到 50:50 的比例,最后做一个如下所示的 Si 空位。

通过拖动脚本到主 VNL 窗口并放到 Job Manager 上或直接通过终端运行脚本。

现在您已经有包含一个空位的 4×4×4 SiGe 超胞,结构优化后保存为 alloy.nc。请注意,这是一个很小的体系,仅用于说明的目的。进行科学有效的模拟时,您将需要一个更大的体系。您可以通过从 LabFloor 合金中选中 gID0001,并将其拖放到 Viewer 从而在实现在 VNL 中可视化结构的功能。效果如下所示。

上图结构中有一个空位,但很难识别出。您将执行一个 LocalStructure 计算找出哪个原子没有典型的类金刚石排列方式。

  1. LabFloorgID0001 结构拖到 Scripter
  2. Scripter,双击 Analysis LocalStructure。
  3. 选择默认输出文件名为 local_structure.nc
  4. 点击 按钮,将脚本发送到 Job manager,运行计算。预计耗时在一分钟内。

现在,您可以更清晰的观察到结构中的空位。在主窗口中,打开 Viewer 中的 LocalStructure,并展开侧栏的 Local Structure 面板,选择 Diamond-like。现在,所有不在空位附近并具有理想晶体结构的原子都被已经选中。打开 Properties 对话框,在 Atoms 选项卡中将所选原子的 opacity(不透明度)改为 0.1。将其他原子变得几近透明可以凸显空位附近的原子。结果如下图所示,请注意原子群中间明显的空缺。

运行 AKMC 模拟

现在您已经有一个优化好的初始结构,可以开始进行 AKMC 模拟了。将 alloy.nc 从主 VNL 窗口拖到 Script Generator New Calculator 会在 Scripter 中自动加载。从 ATK 2017 版开始,AdaptiveKineticMonteCarlo 是在 Scripter 操作实现的。如果您用的是老版本,您可以下载脚本 ↓adding-akmc.py,将其附加在 Editor 的目录里,而不用按照如下的步骤操作。

添加 Optimization AdaptiveKineticMonteCarlo 模块。

1. 双击 AdaptiveKineticMonteCarlo

2. 在 Saddle Search 选区,设置 Number of searches 为 100。

3. 在 Optimization 选区,按下 Atomic Constraint Editor 按钮。

  • 选择一个离空位最远的原子。
  • 按下 Add tag from Selection 按钮。
  • 将 Constraint 的选择从 None 改为 Fixed
  • 按下 OK

4. 在 Molecular Dynamics 部分,设置 temperature 为 1200 K。

注意

如果您查看 AdaptiveKineticMonteCarlo 界面上的 Help… 按钮,里面有设置和定义的详细介绍。更高的搜索次数和更高的置信度会提供给我们更好的准确性,但相应的计算成本也会很大。

5. 保存输出文件为 akmc.nc

提示

您看到的 AKMC 脚本(无论是从 Scripter 还是 ↓adding-akmc.py)都可以使用现存的文件重启模拟。更多有关 AKMC 参数描述的详细内容可参考教程:Adaptive Kinetic Monte Carlo Simulation of Pt on Pt(100)

现在运行脚本,在台式机上耗时应该不超过半小时。最后,您将会有一个 MarkovChain 数据块存储在 akmc_markov_chain.nc 文件,一个 KineticMonteCarlo 数据块存储在 akmc_kmc.nc 文件。MarkovChain 数据块存储了模拟期间的所有状态(构形)以及它们之间的连接,它可以用来计算整个体系的全速率矩阵。

注意

由于这些方法里的随机元素存在,您也许不能获得跟此处完全相同的结果。如果您想要追求与本教程相同的分析,可以下载用于制作教程的文件:↓akmc_kmc.nc↓akmc_markov_chain.nc↓akmc_log.nc

选择 Labfloor 上 akmc_markov_chain.nc 文件里的 labfloor_markovchain.png gID000,点击右边面板的 Markov Chain Analyzer

检查每个状态(下面图里显示的为状态 0 和状态 5),使用 movie 工具里的播放按钮 查看原子的扩散和移动。从状态 0 开始,系统到状态 1 的能量势垒非常低,为 0.065 eV。您观察过程影片可以发现,它似乎是弛豫过程而不是真正的扩散。

状态 0

状态 5

结论

参考

atk/使用akmc方法模拟si0.5ge0.5中空位的扩散.1527388544.txt.gz · 最后更改: 2018/05/27 10:35 由 xie.congwei

© 2014-2022 费米科技(京ICP备14023855号