这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:分子动力学基础 [2016/09/05 19:24] – [结果分析] dong.dong | atk:分子动力学基础 [2019/11/16 22:50] (当前版本) – [介绍] dong.dong | ||
---|---|---|---|
行 2: | 行 2: | ||
=====介绍===== | =====介绍===== | ||
- | Virtual NanoLab 和 ATK 可以使分子动力学模拟变得非常简单:只需要向构型(configuration)添加所需的计算器(calculator)和分子动力学模块(MolecularDynamics block),就可以开始计算了。对于不同类型的模拟,什么样的参数和设置是最合适的,在这里给出了一些指导方针。本文简要介绍 VNL-ATK 中分子动力学(MD)功能,并且一步步的解释了如何正确地设置模拟过程以得到想要的结果。 | ||
所谓分子动力学(MD)模拟,是在预先确定条件下(比如温度,压力,应力,外力等等)模拟原子和分子运动的一种方法。分子动力学模拟可以用来研究纳米尺度下的动力学过程,还可以用来计算相图、扩散系数和各种响应函数等诸多性质。 | 所谓分子动力学(MD)模拟,是在预先确定条件下(比如温度,压力,应力,外力等等)模拟原子和分子运动的一种方法。分子动力学模拟可以用来研究纳米尺度下的动力学过程,还可以用来计算相图、扩散系数和各种响应函数等诸多性质。 | ||
- | =====方法论===== | + | |
+ | QuantumATK(和 NanoLab)可以使分子动力学模拟变得非常简单:只需要向构型(configuration)添加所需的计算器(calculator)和分子动力学模块(MolecularDynamics block),就可以开始计算了。对于不同类型的模拟,什么样的参数和设置是最合适的,在这里给出了一些指导方针。本文简要介绍 QuantumATK 中分子动力学(MD)功能,并且一步步的解释了如何正确地设置模拟过程以得到想要的结果。 | ||
+ | |||
+ | <WRAP center info 100%> | ||
+ | === 提示 === | ||
+ | **本教程使用特定版本的QuantumATK创建,因此涉及的截图和脚本参数可能与您实际使用的版本略有区别,请在学习时务必注意。** | ||
+ | </ | ||
+ | ===== 方法原理 | ||
分子动力学模拟本质上是对给定初始构型中原子运动的牛顿方程求数值解。这通常是通过对有限时间步长进行积分计算得到的。原子之间的相互作用(也就是原子间力)可以通过不同的方法(可以是密度泛函理论(DFT)或经典力场)来进行计算。这些力决定了原子的加速度并且使得原子的位置和速度传递到下一个时间步长。多次重复这个过程会产生一系列的构型快照,这些快照描述了系统在相空间中的运动轨迹,从而可以进一步从中分析提取出想要的性质。 | 分子动力学模拟本质上是对给定初始构型中原子运动的牛顿方程求数值解。这通常是通过对有限时间步长进行积分计算得到的。原子之间的相互作用(也就是原子间力)可以通过不同的方法(可以是密度泛函理论(DFT)或经典力场)来进行计算。这些力决定了原子的加速度并且使得原子的位置和速度传递到下一个时间步长。多次重复这个过程会产生一系列的构型快照,这些快照描述了系统在相空间中的运动轨迹,从而可以进一步从中分析提取出想要的性质。 | ||
行 11: | 行 17: | ||
在设置模拟之前你需要选择你所感兴趣的计算类型。要考虑得因素有:总能量是否守恒(孤立体系中的情况)?模拟体系与热浴(heat bath)之间的耦合时是否要保持温度不变?系统是否受到外加压力或者应力?基于这些考虑我们应该选择一套合适的模拟参数:时间步长大小, 积分步长的数量(模拟持续的时间),积分算法,初始温度,约束条件等等。 | 在设置模拟之前你需要选择你所感兴趣的计算类型。要考虑得因素有:总能量是否守恒(孤立体系中的情况)?模拟体系与热浴(heat bath)之间的耦合时是否要保持温度不变?系统是否受到外加压力或者应力?基于这些考虑我们应该选择一套合适的模拟参数:时间步长大小, 积分步长的数量(模拟持续的时间),积分算法,初始温度,约束条件等等。 | ||
- | 类似于真实的实验,进行分子动力学模拟需要一些实证上的知识和经验。在本例中,你将会了解分子动力学模拟的基本组成部分,以及如何使用 | + | 类似于真实的实验,进行分子动力学模拟需要一些实证上的知识和经验。在本例中,你将会了解分子动力学模拟的基本组成部分,以及如何使用 |
将这些技巧应用于一个简单、著名的测试体系——块体硅,你将逐步学习到如何选择时间步长大小,如何控制温度和压力,以及如何通过约束条件来固定某些原子。 | 将这些技巧应用于一个简单、著名的测试体系——块体硅,你将逐步学习到如何选择时间步长大小,如何控制温度和压力,以及如何通过约束条件来固定某些原子。 | ||
行 87: | 行 93: | ||
你将以室温下结构的平衡态为开始。用上述同样的方法和同样的模块(NewCalculator 和 Optimize ‣ MolecularDynamics) 来准备脚本。实际上,如果你先前的脚本还存储在 **ScriptGenerator** 里,你可以重新使用它。 | 你将以室温下结构的平衡态为开始。用上述同样的方法和同样的模块(NewCalculator 和 Optimize ‣ MolecularDynamics) 来准备脚本。实际上,如果你先前的脚本还存储在 **ScriptGenerator** 里,你可以重新使用它。 | ||
- | 双击 MolecularDynamics 模块打开设置。由于我们要运行 NVT 系综下的模拟,我们这回需要选择一个不同的 Type。对于 NVT 模拟,ATK 提供了四种选项: | + | 双击 MolecularDynamics 模块打开设置。由于我们要运行 NVT 系综下的模拟,我们这回需要选择一个不同的 Type。对于 NVT 模拟,QuantumATK |
- NVT Berendsen((J. C. Berendsen, J. P. M. Postma, W. F. van Gunsteren, A. DiNola, and J. R. Haak: Molecular-Dynamics with Coupling to an External Bath. J. Chem. Phys. 81, 3684, 1982)) | - NVT Berendsen((J. C. Berendsen, J. P. M. Postma, W. F. van Gunsteren, A. DiNola, and J. R. Haak: Molecular-Dynamics with Coupling to an External Bath. J. Chem. Phys. 81, 3684, 1982)) | ||
- NVT Nose Hoover((W. G. Hoover: Canonical dynamics: Equilibrium phase-space distributions. Phys. Rev. A 31, 1695, 1985)) | - NVT Nose Hoover((W. G. Hoover: Canonical dynamics: Equilibrium phase-space distributions. Phys. Rev. A 31, 1695, 1985)) | ||
行 140: | 行 146: | ||
打开 **MolecularDynamics** 设置。通过查看 Type 下面的选项,你会找到两个运行 NPT 模拟的选项:**NPT Berendsen** 和 **NPT Melchionna** 算法。 | 打开 **MolecularDynamics** 设置。通过查看 Type 下面的选项,你会找到两个运行 NPT 模拟的选项:**NPT Berendsen** 和 **NPT Melchionna** 算法。 | ||
- | **NPT Berendsen** 方法的工作原理和 NVT 积分器相同,所以不能精确产生正确的物理系综,尽管偏差通常也很小。而且,ATK 中 Berendsen 的实现只考虑压力标量 $P=1/ | + | **NPT Berendsen** 方法的工作原理和 NVT 积分器相同,所以不能精确产生正确的物理系综,尽管偏差通常也很小。而且,QuantumATK |
为了将压力分量 $P_{ij}$ 与固定的压力分别耦合,你更应该选择使用 NPT Melchionna 方法((S. Melchionna, G. Ciccotti, B.L. Holian: Hoover NPT dynamics for systems varying in shape and size. Mol. Phys. 78, 533, 1993))。平衡定温定压 1 bar 下的硅超胞的合适的设置如下图所示。 | 为了将压力分量 $P_{ij}$ 与固定的压力分别耦合,你更应该选择使用 NPT Melchionna 方法((S. Melchionna, G. Ciccotti, B.L. Holian: Hoover NPT dynamics for systems varying in shape and size. Mol. Phys. 78, 533, 1993))。平衡定温定压 1 bar 下的硅超胞的合适的设置如下图所示。 | ||
行 152: | 行 158: | ||
最后,应力耦合编组框允许你选择恒压器(barostat)与哪个压力/ | 最后,应力耦合编组框允许你选择恒压器(barostat)与哪个压力/ | ||
- | 要知道, ATK NPT Melchionna 方法总是将所有压力分量当做互相独立的。并且,不仅是单个外界压力,你也可以为每一个分量设定独立的参考应力值来模拟力学剪切或者蠕变实验。ATK参考手册[[http:// | + | 要知道, QuantumATK |
====编辑脚本==== | ====编辑脚本==== | ||
将脚本送到 Editor 来增加一些额外的功能。为了可视化体积和压力随时间变化的涨落,将这几行代码附在脚本的末尾: | 将脚本送到 Editor 来增加一些额外的功能。为了可视化体积和压力随时间变化的涨落,将这几行代码附在脚本的末尾: |