这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版后一修订版两侧同时换到之后的修订记录 | ||
atk:neb方法研究pt在pt表面的扩散 [2016/10/31 23:04] – [参考文献] liu.jun | atk:neb方法研究pt在pt表面的扩散 [2016/11/02 16:59] – [前言] dong.dong | ||
---|---|---|---|
行 1: | 行 1: | ||
======NEB方法研究Pt在Pt表面的扩散====== | ======NEB方法研究Pt在Pt表面的扩散====== | ||
=====前言===== | =====前言===== | ||
- | 在本文中将演示如何使用Nudged Elastic Band (NEB)方法研究扩散及其能垒。作为范例,将计算Pt原子在Pt(100)表面两个不同扩散机制的能垒< | + | 本教程演示如何使用 Nudged Elastic Band (NEB) 方法研究扩散反应及其能垒。作为范例,将计算 Pt 原子在 Pt(100) 表面两种不同扩散机制的能垒 < |
- | * 创建并使用ATK-Classical优化Pt晶体结构; | + | 主要包含如下内容: |
- | * 创建包含一个吸附Pt原子的Pt(100)表面; | + | * 创建并使用 ATK-Classical 优化 Pt 晶体结构; |
- | * 使用VNL内置的高质量反应路径初始猜测生成工具,以及交换扩散、直接跳跃扩散的起始结构、最终结构,产生两种扩散的NEB路径; | + | * 创建包含一个吸附 Pt 原子的 Pt(100) 表面; |
- | * 设置并使用ATK-Classical进行NEB计算; | + | * 使用 VNL 内置的高质量的反应路径初始猜测生成工具,基于交换扩散、直接跳跃扩散的起始结构、最终结构,产生两种扩散的NEB轨迹; |
+ | * 设置并使用 ATK-Classical 进行 NEB 计算; | ||
* 分析结果并与文献对比。 | * 分析结果并与文献对比。 | ||
- | 关于构建、优化NEB计算的参数的更详细信息,请参阅[[http:// | ||
- | <WRAP center | + | 关于构建、优化 NEB 计算的参数的更详细信息,请参阅[[http:// |
- | 注意: | + | |
- | 本文中使用的NEB方法需要用户对初始结构和末态结构,以及路径进行预定,这通常非常重要。不过,使用其他非常强大方法,比如ATK内置的new Adaptive Kinetic Monte Carlo (AKMC)工具,即使不给定末态结构和猜测路径,通过计算也能获得与本例完全一样的信息。 | + | <WRAP center box 100%> |
+ | === 注意 | ||
+ | NEB 方法需要用户对初始结构、末态结构以及路径进行预先设定,这通常是必须的。不过,使用其他非常强大方法,比如 ATK 内置的全新的 | ||
</ | </ | ||
- | =====在Pt(100)表面创建吸附Pt原子===== | + | =====在 Pt(100) 表面创建吸附 Pt 原子===== |
- | 本章中设置Pt(100)表面的吸附Pt原子,作为NEB计算的初始结构。 | + | 本章中设置 Pt(100) 表面的吸附 Pt 原子,作为 NEB 计算的初始结构。 |
- | 1,打开VNL,并点击Create New创建一个新的Project,将其命名(这里命名为// | + | 1,打开 VNL,并点击 Create New 创建一个新的 Project,将其命名(这里命名为// |
- | 2,在**VNL**主窗口,点击图标{{: | + | 2,在 **VNL** 主窗口,点击图标{{: |
{{ : | {{ : | ||
- | 3,导入Pt的面心立方晶体结构:点击Add ‣ From Database,并搜索“Platinum”。之后点击窗口右下角的{{: | + | 3,导入 Pt 的面心立方晶体结构:点击 Add ‣ From Database,并搜索 “Platinum”。之后点击窗口右下角的 {{: |
- | 4,点击窗口右下角的图标,将Pt原胞从Stash送入**Script Generator**。{{ : | + | 4,点击窗口右下角的图标,将 Pt 原胞从 Stash 送入 **Script Generator**。{{ : |
- | 5,在**Script Generator**中将**Global IO**中的**Default output file**中的名字改为// | + | 5,在 **Script Generator** 中将 **Global IO** 中的 **Default output file** 中的名字改为 // |
- | 6,通过双击如下图所示的左边的**Blocks**中的对应图标,将其添加到**Script**面板中: | + | 6,通过双击如下图所示的左边的 **Blocks** 中的对应图标,将其添加到 **Script** 面板中: |
* **New Calculator** | * **New Calculator** | ||
* **Optimization ‣ Optimize Geometry**{{ : | * **Optimization ‣ Optimize Geometry**{{ : | ||
- | 7,双击Script面板中的New Calculator,并修改参数如下: | + | 7,双击 Script 面板中的 New Calculator,并修改参数如下: |
- | * 在Calculators面板,选择**ATK-ClASsical** | + | * 在 Calculators 面板,选择 **ATK-ClASsical** |
- | * 在Potential Settings面板,选择// | + | * 在 Potential Settings 面板,选择 // |
{{ : | {{ : | ||
- | 8,双击Optimize Geometry,并修改参数: | + | 8,双击 Optimize Geometry,并修改参数: |
* Force tolerance: 0.01 eV/Å | * Force tolerance: 0.01 eV/Å | ||
* Stress tolerance: 0.001 eV/Å | * Stress tolerance: 0.001 eV/Å | ||
- | * 取消勾选constrain cell,以允许晶格的弛豫 | + | * 取消勾选 constrain cell,以允许晶格的弛豫 |
- | **Optimize Geometry**面板看起来应该如下图所示: | + | **Optimize Geometry** 面板看起来应该如下图所示: |
{{ : | {{ : | ||
- | 9,点击{{: | + | 9,点击 {{: |
- | 10,在**Select Machine**窗口,确保**Machine**的下拉菜单设置为**Local**,之后按**OK**。 | + | 10,在 **Select Machine** 窗口,确保 **Machine** 的下拉菜单设置为 **Local**,之后按 **OK**。 |
{{ : | {{ : | ||
- | 11,在**Job Manager**窗口中,确保// | + | 11,在 **Job Manager** 窗口中,确保 // |
{{ : | {{ : | ||
- | 任务结束后,关闭**Job Manager**并回到**VNL**的主窗口。 | + | 任务结束后,关闭 **Job Manager** 并回到 **VNL** 的主窗口。 |
- | 12,在**VNL**主窗口,**LabFloor**栏出现了两个新项目,分别对应着Pt晶体初始结构(// | + | 12,在 **VNL** 主窗口,**LabFloor** 栏出现了两个新项目,分别对应着 Pt 晶体初始结构(// |
- | 13,将// | + | 13,将// |
- | 14,在**Builder**中,选择这个最新导入的// | + | 14,在 **Builder** 中,选择这个最新导入的 // |
- | 15,在**Define the surface**面板,确保**Miller**指数为//h=1,k=0,l=0//,并点击Next。 | + | 15,在 **Define the surface** 面板,确保 **Miller** 指数为 |
- | 16,在**Define the surface**面板,参照下图设置// | + | 16,在 **Define the surface** 面板,参照下图设置 //5×5p// 表面。 |
{{ : | {{ : | ||
- | 之后点击Next。 | + | 之后点击 Next。 |
- | 17,参照下图设置Finalize output configuration面板中的参数,得到一个包含5层以及10Å真空层的板。 | + | 17,参照下图设置 Finalize output configuration 面板中的参数,得到一个包含 5 层以及 10Å 真空层的板。 |
{{ : | {{ : | ||
- | 之后点击Finish将该结构添加到**Stash**。 | + | 之后点击 Finish 将该结构添加到 **Stash**。 |
- | 18,在**Stash**窗口,右键点击// | + | 18,在 **Stash** 窗口,右键点击 // |
- | 19,点击{{: | + | 19,点击 {{: |
{{ : | {{ : | ||
- | 调整好之后,关闭**Camera**面板,并使用鼠标滚轮可以放大、缩小视图。 | + | 调整好之后,关闭 **Camera** 面板,并使用鼠标滚轮可以放大、缩小视图。 |
- | 20,按住**CTRL**键不放,使用鼠标左键分别选中// | + | 20,按住 **CTRL** 键不放,使用鼠标左键分别选中 //Pt(100)// 最顶层的四个 Pt 原子。之后点击 {{: |
{{ : | {{ : | ||
- | 21,选择新添加的Pt原子,点击窗口右边**Coordinate Tools ‣ Translate**。 | + | 21,选择新添加的 Pt 原子,点击窗口右边 **Coordinate Tools ‣ Translate**。 |
{{ : | {{ : | ||
- | 22,在**Translate**面板,定义平移矢量,如下图所示: | + | 22,在 **Translate** 面板,定义平移矢量,如下图所示: |
{{ : | {{ : | ||
- | 填好数字之后,点击**Apply**,该原子即沿z方向向上移动1.6Å。该结构作为作为// | + | 填好数字之后,点击 **Apply**,该原子即沿 z 方向向上移动 1.6Å。该结构作为作为 //Pt(100)// 表面吸附 Pt 原子模型的初始结构,用于本文中的两个 **NEB** 计算。 |
{{ : | {{ : | ||
=====创建交换扩散过程的末态结构===== | =====创建交换扩散过程的末态结构===== | ||
- | 在本章中,将会设置Pt(100)面吸附Pt原子的交换扩散的末态结构< | ||
- | 在交换扩散过程中,其中一个表面的Pt原子被吸附的Pt原子替换,而该表面原子沿// | + | 在本章中,将会设置 Pt(100) 面吸附 Pt 原子的交换扩散的末态结构< |
+ | |||
+ | 在交换扩散过程中,其中一个表面的 Pt 原子被吸附的 Pt 原子替换,而该表面原子沿 //[010]// 方向移动到下一个 4 原子包围的 Hollow 位,如下图所示: | ||
{{ : | {{ : | ||
- | 该路径从能量上,比吸附原子直接跳到近邻的// | + | 该路径从能量上,比吸附原子直接跳到近邻的 //Pt(100)// 面 hollow 位(见下一章)更有优势< |
- | 1,在**Stash**中左键点击// | + | 1,在 **Stash** 中左键点击 // |
- | 2,选择**Stash**中// | + | 2,选择 **Stash** 中 // |
{{ : | {{ : | ||
- | 3,在**Translate**面板,使用下图所示的平移矢量移动选中的原子: | + | 3,在 **Translate** 面板,使用下图所示的平移矢量移动选中的原子: |
{{ : | {{ : | ||
- | 4,选择吸附Pt原子,使用下图所示的平移矢量进行平移: | + | 4,选择吸附 Pt 原子,使用下图所示的平移矢量进行平移: |
{{ : | {{ : | ||
- | 5,通过这种方式,获得了**NEB**计算交换扩散过程的末态结构。 | + | 5,通过这种方式,获得了 **NEB** 计算交换扩散过程的末态结构。 |
- | {{ :atk:202.png?650 |}} | + | {{ :atk:Ptsurface202.png?650 |}} |
=====创建直接跳跃过程的末态结构===== | =====创建直接跳跃过程的末态结构===== | ||
- | 在本章中,将会设置另一个可能的// | + | 在本章中,将会设置另一个可能的 //Pt(100)// 表面的吸附 Pt 原子扩散过程的末态结构。在这种扩散过程中,吸附原子直接在两个相邻的 4 原子包围的 hollow 位间跳跃。 |
- | 1,在**Stash**中再次**Copy** // | + | 1,在 **Stash** 中再次 **Copy** // |
- | 2,选择**Stash**中的// | + | 2,选择 **Stash** 中的 // |
- | 3,在**Translate**面板,使用如下图所示的平移矢量进行,对吸附Pt原子进行平移。 | + | 3,在 **Translate** 面板,使用如下图所示的平移矢量进行,对吸附 Pt 原子进行平移。 |
{{ : | {{ : | ||
- | 4, | + | 4, |
{{ : | {{ : | ||
- | =====构造NEB路径===== | ||
- | 本章演示如何产生沿着交换扩散反应路径的**NEB**各个构象.这也适合于直接跳跃的扩散路径, | + | <WRAP center important 100%> |
+ | === 注意 === | ||
+ | 这两种方法创建的末态结构看上去是一样的,但是原子编号的顺序是不同的。由于NEB初始路径创建时,即使对于同种的原子也要按原子编号追踪每个原子移动的路径,因此,使用这两种末态结构创建的路径是完全不同的。 | ||
+ | </ | ||
- | 1, | + | =====构造NEB轨迹===== |
- | 2, | + | 本章演示如何产生沿着交换扩散反应路径的 **NEB** 各个构象.这也适合于直接跳跃的扩散路径,唯一的差别是在设置 **NEB** 轨迹的末态结构的时候,需要选取 // |
+ | |||
+ | 1,点击 **Builder ‣ Nudged Elastic Band**,并将 // | ||
+ | |||
+ | 2,在 **Nudged Elastic Band** 面板设置参数如下图所示: | ||
{{ : | {{ : | ||
- | 设置完毕之后,点击**Creat**,在**Stash**中创建一个名为// | + | 设置完毕之后,点击 **Create**,在 **Stash** 中创建一个名为 //“NEB: initial.nc final_exchanged.nc”// |
{{ : | {{ : | ||
- | <WRAP center | + | <WRAP center box 100%> |
- | 注意: | + | === 注意 |
- | + | **VNL** 中的 // | |
- | **VNL**中的// | + | |
</ | </ | ||
- | + | <WRAP center box 100%> | |
- | <WRAP center | + | === 注意 |
- | 注意: | + | |
可以对NEB的各个映像直接进行操作,例如可以: | 可以对NEB的各个映像直接进行操作,例如可以: | ||
* 选择特定映像并/ | * 选择特定映像并/ | ||
* 删除一个或多个映像,通过右键点击选中的任意两个映像,重新计算整个路径或两个选定映像之间的路径 | * 删除一个或多个映像,通过右键点击选中的任意两个映像,重新计算整个路径或两个选定映像之间的路径 | ||
- | * 将NEB映像中的某一个结构直接拖到Stash窗口 | + | * 将NEB映像中的某一个结构直接拖到 Stash 窗口 |
* 将任何一个兼容的结构拖到NEB映像中 | * 将任何一个兼容的结构拖到NEB映像中 | ||
- | * 使用Coordinate Tools下面的Mirror、Rotate、Translate工具编辑选中的原子。该操作将应用到所有映像或者选中映像 | + | * 使用Coordinate Tools 下面的 Mirror、Rotate、Translate 工具编辑选中的原子。该操作将应用到所有映像或者选中映像 |
</ | </ | ||
- | =====设置并运行NEB计算===== | + | =====设置并运行 NEB 计算===== |
- | 本章中学习如何设置并运行交换扩散过程的NEB计算。直接跳跃扩散过程与此类似。 | + | 本章中学习如何设置并运行交换扩散过程的 NEB 计算。直接跳跃扩散过程与此类似。 |
- | 1, | + | 1, |
- | 2, | + | 2,在 **Script Generator** 中,将 **Global IO** 面板中的**Default output file** 名字改为 // |
- | 3,将如下内容通过双击屏幕左侧**Blocks**面板里面对应的图标将其添加到**Script**栏: | + | 3,将如下内容通过双击屏幕左侧 **Blocks** 面板里面对应的图标将其添加到 **Script** 栏: |
* **New Calculator** | * **New Calculator** | ||
* **Optimization ‣ Optimize Geometry** | * **Optimization ‣ Optimize Geometry** | ||
- | 4,双击**Script**面板中的**New Calculator**,并修改如下参数: | + | 4,双击 **Script** 面板中的 **New Calculator**,并修改如下参数: |
- | * 在**Calculator**面板选择**ATK-Classical** | + | * 在 **Calculator** 面板选择 **ATK-Classical** |
- | * 在**Potential Settings**面板选择// | + | * 在 **Potential Settings** 面板选择 // |
- | 5,双击**Script**面板中的**Optimize Geometry**,并参照下图设置参数: | + | 5,双击 **Script** 面板中的 **Optimize Geometry**,并参照下图设置参数: |
{{ : | {{ : | ||
- | 6,点击{{: | + | 6,点击 {{: |
- | 7,在**Select Machine**窗口,确保**Machine**下拉菜单选择的是**Local**,然后按**OK**。 | + | 7,在 **Select Machine** 窗口,确保 **Machine** 下拉菜单选择的是 **Local**,然后按 **OK**。 |
+ | |||
+ | 8,在 **Job Manager** 中,确保脚本 // | ||
+ | |||
+ | <WRAP center tip 100%> | ||
+ | === 提示 === | ||
+ | 为了快速得到演示结果,这里选择了使用经验力场 ATK-Classical 计算能量和力并进行结构优化。实际研究中可以根据体系的特性和大小选择ATK-DFT、ATK-SE(Slater-Koster)等其他方法。也可以将结构导出使用 VASP 进行计算。 | ||
+ | </ | ||
- | 8,在**Job Manager**中,确保脚本// | ||
=====分析结果===== | =====分析结果===== | ||
- | 1,交换和直接跳跃两种扩散过程的**NEB**计算都完成之后,两个新的文件出现在**VNL**主窗口的**LabFloor**面板。本文中,二者分别名为// | + | 1,交换和直接跳跃两种扩散过程的 **NEB** 计算都完成之后,两个新的文件出现在 **VNL** 主窗口的 **LabFloor** 面板。本文中,二者分别名为 // |
{{ : | {{ : | ||
- | 2,打开// | + | 2,打开 // |
{{ : | {{ : | ||
- | 3,类似的打开// | + | 3,类似的打开 // |
- | 4,通过对比**Movie Tool**中的两个能垒(见下图),可以看到交换扩散到能垒和直接跳跃扩散能垒分别为// | + | 4,通过对比 **Movie Tool** 中的两个能垒(见下图),可以看到交换扩散到能垒和直接跳跃扩散能垒分别为 //0.589eV// 和 // |
<WRAP center round box 60%> | <WRAP center round box 60%> | ||
行 224: | 行 236: | ||
<WRAP center round box 100%> | <WRAP center round box 100%> | ||
- | 注意:通过[[http:// | + | 注意:通过 [[http:// |
</ | </ | ||
=====结论===== | =====结论===== |