浅谈分子动力学(MD)模拟及其势文件

文章目录

        • 1.分子动力学概述
        • 2.力场介绍及其应用
          • 2.1 简单液体的力场
          • 2.2 分子物质的力场
          • 2.3 材料力场
        • 3.势文件的拟合
        • 4.温度、压强与周期性边界条件
          • 4.1 温度
          • 4.2 压强
          • 4.3 周期性边界条件
        • 5.in文件命令解析、基本内容
          • 5.1 in文件命令解析
          • 5.2 in文件基本内容
        • 6.并行通信算法、出错解决思路
          • 6.1 并行通信算法
          • 6.2 出错解决思路

1.分子动力学概述

    拉普拉斯妖:拉普拉斯提出一个想法,如果存在一只神奇的动物,它能基于经典力学计算出世界上所有东西的位置和速度并加以分析,那么就可以推测出这个世界中的一切,包括过去和未来。这是经典力学的世界观和认识论,后来由于量子力学的诞生,粒子的不确定性和波粒二象性直接导致了拉普拉斯妖的不存在。
    分子动力学的理论就是基于这样的认识论,分子动力学(Molecular Dynamics,简称MD),其目的为了求解任意时刻所有组成物体原子的位置和速度,从而认识物质世界。
    分子动力学基于牛顿力学,即经典力学。经典力学中有三个主要内容:质点、力和运动,其中牛顿第二定律是经典力学的核心。基于此理论,若我们提前知道了质点的质量、初始速度、初始位置和依赖于此的受力函数,那我们再选择一个足够小的 △ t \triangle t t,就能够准确得到质点的所有运动信息。
    分子动力学的基本任务是获得研究对象不同时刻的位置和动量,然后基于统计力学知识获得想要的物理量,解释对象的性质和行为。

2.力场介绍及其应用

    依赖于位置的受力函数,称为相互作用。在分子动力学中,这个相互作用通过原子之间的势能进行描述,因此又称为势能函数或势函数。而受力是势能相对位置的负梯度,因为实践表明原子之间的受力都是保守力(保守力的功与物体运动所经过的路径无关,只与运动物体的起点和终点的位置有关)。
    在计算受力的时候,直接用势能对两个原子之间的相对位置进行求导,然后将这个力乘方向余弦就能得到xyz三个方向上的受力。对于一个对象,描述其相互作用的势能表达式和表达式中常数值的集合称为该对象的力场

2.1 简单液体的力场

    原子之间相互作用只有范德瓦尔斯作用的物质,描述该作用最常用的表达式是Lennard-Jones 12/6势。通常用LJ12/6描述的物质也称为简单液体。
U ( r ) = 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] U\left(r\right)=4\varepsilon\left[\left(\frac{\sigma}{r}\right)^{12}-\left(\frac{\sigma}{r}\right)^{6}\right] U(r)=4ε[(rσ)12(rσ)6]
浅谈分子动力学(MD)模拟及其势文件_第1张图片
上图为LJ12/6势函数的图像。势能的最低点到零点之间的绝对值 ε \varepsilon ε,称为势能函数的特征能量,势能的零点位于 r = σ r=\sigma r=σ处, σ \sigma σ称为势能函数的特征长度
    势能函数的最低点位于 r = 2 1 / 6 σ r=2^{1/6}\sigma r=21/6σ处,在该点处势能对位置的导数为零,所以该点处受力为零,该点也称为平衡位置。当体系处于平衡状态时,原子之间的距离也大概在平衡位置附近,所以势能是负的。当 r < 2 1 / 6 σ r<2^{1/6}\sigma r<21/6σ时,两个原子之间表现为相互排斥;当 r > 2 1 / 6 σ r>2^{1/6}\sigma r>21/6σ时,两个原子之间表现为相互吸引
    从势函数的图像可以看出,当 r r r较大时,势能趋于零,其导数也趋于零。即当两个原子距离很远时,原子之间的相互作用可以忽略不计,因此在实际计算中会使用截断的LJ12/6势。截断距离称为截断半径,其值大概为 2.5 σ 2.5\sigma 2.5σ。类似于LJ12/6势以及其他拓展的LJ势,都称为对势,其意为两个原子之间的相互作用只由这一对原子决定,与其他相邻原子没有关系。

2.2 分子物质的力场

    原子之间有化学键连接的物质。对于分子物质,其相互作用包括两类:非键结势能键结势能非键结势能用来描述没有化学键连接原子之间的相互作用;键结势能用来描述有化学键连接原子之间的相互作用。
    键结相互作用分为键能(bond)键角能(angle)二面角能(dihedral)离平面能(improper)
      1.两个以化学键相连的两个原子具有键能相互作用,当化学键偏离平衡长度的时候两个原子就会出现相互作用。
      2.两个化学键连接的相邻原子之间具有键角能,当三个原子之间的角度偏离平衡角度的时候就会产生键角能。
      3.四个化学键连接的相邻原子之间会存在二面角相互作用,当四个原子构成的二面角偏离平衡二面角的时候四个原子之间会出现二面角相互作用。
      4.四个相邻化学键连接的相邻原子之间有时还会存在离平面势作用,当第四个原子偏离前三个原子所构成平面的平均夹角时,四个原子之间会存在离平面能相互作用。
    值得注意的是,在分子体系中原子一般都带有电荷,所有非键结原子之间会存在静电相互作用

2.3 材料力场
  • cvff(consistent valence forcefield):用于有机分子、蛋白质模拟
  • pcff:主要用于聚合物和有机材料,也用于无机材料,还有糖、核酸、脂的参数
  • REBO:反应力场,主要用于固体,无非键参数。后来添加了C、H的LJ参数的叫做AI-REBO力场
  • ReaxFF=Reactive force field:用于爆炸、燃烧过程的反应不错。支持所有主族和过渡金属元素,步长需要比较小,比如0.1-0.5fs,只适合最多用于几千个分子。

3.势文件的拟合

    在原子分子尺度上的模拟,其对应的现象包括声子导热、力学行为(如弹性形变、塑性形变、断裂)、扩散、液体弛豫、蛋白质动力学等。这些现象本质来源于量子力学,应该用基于密度泛函(density functional theory,DFT)的第一性原理方法研究,但目前计算机算力无法实现1000个原子以上的DFT计算,所以通过拟合出一些经验势能(或称力场,force field),来代替精确的量子力学作用(专业术语:将电子自由度给coarse-grain),然后用牛顿力学来描述原子核的运动。
    一方面,绝大多数做分子模拟只是应用势能而不是开发势能,若想知道如何从量子力学推导出经典力学的势能公式,可以参考这两本书:Intermolecular Interactions (2006) by KaplanInteratomic Forces in Condensed Matter (2004) by Finnis,书封面及简介已附于文末。
    另一方面,经验势领域正在经历一场技术革命:以深度学习为代表的机器学习可以拟合出精度接近DFT的经验势,从而能够彻底解决原本MD的精度问题,而之前人工拟合的势能会被逐渐抛弃。
    目前有两个较成熟的开源框架可以实现用机器学习从DFT结果中拟合出一个新的势能,然后用到MD中去。一个是鄂维南院士组开发的DeePMD(http://www.deepmd.org/),另一个是剑桥Gabor Csanyi组开发的GAP(https://libatoms.github.io/GAP/)。
    记住,MD需要你的势文件能够准确描述你的体系,势能很大程度上决定最后模拟结果的好坏

浅谈分子动力学(MD)模拟及其势文件_第2张图片
内容简介:

The subject of this book — intermolecular interactions — is as important in physics as in chemistry and molecular biology. Intermolecular interactions are responsible for the existence of liquids and solids in nature. They determine the physical and chemical properties of gases, liquids, and crystals, the stability of chemical complexes and biological compounds.
In the first two chapters of this book, the detailed qualitative description of different types of intermolecular forces at large, intermediate and short-range distances is presented. For the first time in the monographic literature, the temperature dependence of the dispersion forces is discussed, and it is shown that at finite temperatures the famous Casimir-Polder asymptotic formula is correct only at narrow distance range. The author has aimed to make the presentation understandable to a broad scope of readers without oversimplification. In Chapter 3, the methods of quantitative calculation of the intermolecular interactions are discussed and modern achievements are presented. This chapter should be helpful for scientists performing computer calculations of many-electron systems.
The last two chapters are devoted to the many-body effects and model potentials. More than 50 model potentials exploited for processing experimental data and computer simulation in different fields of physics, chemistry and molecular biology are represented. The widely used global optimisation methods: simulated annealing, diffusion equation method, basin-hopping algorithm, and genetic algorithm are described in detail.
Significant efforts have been made to present the book in a self-sufficient way for readers. All the necessary mathematical apparatus, including vector and tensor calculus and the elements of the group theory, as well as the main methods used for quantal calculation of many-electron systems are presented in the appendices.

浅谈分子动力学(MD)模拟及其势文件_第3张图片
内容简介:

There is a continuing growth of interest in the computer simulation of materials at the atomic scale, using a variety of academic and commercial computer programs. In all such programs there is some physical model of the inter-atomic forces, which may be based on something as simple as a pair interaction, such as the Lennard-Jones model, or as complex as a self-consistent, all-electron solution of the quantum mechanical problem. For a student or researcher, the basis of such models is often shrouded in mystery. It is usually unclear how well founded they are, since it is hard to find a discussion of the physical assumptions that have been made in their construction. The lack of clear understanding of the scope and limitations of a given model may lead to its innocent misuse, resulting either in unfair criticism of the model or in the dissemination of nonsensical results. In the present book, models of inter-atomic forces are derived from a common physical basis, namely the density functional theory.The interested reader will be able to follow the detailed derivation of pairwise potentials in simple metals, tight-binding models from the simplest to the most sophisticated (self-consistent) kind, and various ionic models. The book is self-contained, requiring no more background than provided by an undergraduate quantum mechanics course. It aims to furnish the reader with a critical appreciation of the broad range of models in current use, and to provide the tools for understanding other variants that are described in the literature. Some of the material is new, and some pointers are given to possible future avenues of model development.

4.温度、压强与周期性边界条件

4.1 温度

    温度原子热运动剧烈程度的度量,根据统计力学,在三维系统中温度与原子速度的关系:
3 2 N k B T = ∑ i = 1 N 1 2 m i v 2 \frac{3}{2}Nk_{B}T=\sum^{N}_{i=1}\frac{1}{2}m_{i}v^{2} 23NkBT=i=1N21miv2
N N N为原子总数, k B k_{B} kB玻尔兹曼常数。可以通过调整原子速度来控制系统的温度。

4.2 压强

    压强在分子动力学中的定义:
P = N k B T V + ∑ i N ′ r i f i 3 V P=\frac{Nk_{B}T}{V}+\frac{\textstyle\sum^{N'}_{i}r_{i}f_{i}}{3V} P=VNkBT+3ViNrifi
V V V是系统体积,第一项来自原子热运动的贡献,第二项来自原子之间相互作用的贡献,称为维里项。对于固体来说,压强实质上就是内应力,是系统内部应力张量的对角线分量。
    压强和温度都是强度量其值与系统规模无关。与之对应的是广延量,比如能量,当系统规模扩大时,系统能量增加。

4.3 周期性边界条件

    周期性边界条件等价于在模拟区域周围放置与模拟区域完全相同的镜像。其有两个特点:1.当某个原子跨越一个边界时,会立刻从对面的边界重新进入模拟区域。2.在计算边界附近原子的受力时,不仅要考虑本身模拟区域中截断半径以内的原子,还要将最近的周期性镜像区域中处于截断半径所表征区域内的原子也考虑在内。
    由周期性边界条件的特点可知,非键结力的截断半径的大小不能超过模拟区域最小尺寸的一半。在实际的分子动力学模拟中,当某个原子在一个时间步内在某个方向上移动距离超过了该方向上模拟区域的尺寸,此时意味着原子之间受到了非常大的力,应当终止模拟。

5.in文件命令解析、基本内容

5.1 in文件命令解析

  1.若该行最后一个可打印字符为"&"字符,则这允许长命令跨两行或多行继续。
  2.从第一个"#"字符开始的所有字符都视为注释并被丢弃。
  3.一些命令允许使用变量引用来代替数字变量,通常使用参数的语法v_name来完成,其中name是变量的名称。在读取输入和解析命令之前,使用语法${name}会执行直接替换
  4.${myTemp}和$x指的是名为"myTemp"和"x"的变量,而"$xx"被解释为一个名为"x"的变量后跟一个"x"字符
  5.如果$后跟括号"()",则括号内的文本被视为“立即”变量并作为等式变量进行评估。"立即"变量表达式后面可以跟"冒号+C风格的格式字符串",例如“:%f”或“:%.10g”。格式字符串必须适合双精度浮点值。格式字符串用于输出变量表达式求值的结果,如果未指定格式字符串,则默认使用高精度“%.20g”
  6.如果参数本身是一个需要带引号的参数的命令(例如,使用print命令作为if的或run every命令的一部分),则可以以通常的方式嵌套单引号、双引号或三引号,但只允许嵌套一级

5.2 in文件基本内容

  1.定义模拟的基本原则
    units命令:
    常见的单位系统:描述分子体系的real,描述金属体系的metal,描述简单液体的lj
    boundary命令:
    周期性边界条件(p),固定边界条件(f)和缩放边界条件(s)。f的作用是粒子从边界跑出去之后,不会再回来且计算时将其丢掉。s的作用是盒子的大小会随着粒子的位置而缩放,当最靠近边界的粒子向外移动时边界位置也跟着移动,反之亦然。
    需要注意的是每个方向上都有两个边界当写一个参数时默认该方向上两个边界条件相同。例如boundary p fs p,表示在x和z方向上都是周期性边界条件,在y方向上下面是f,上面是s。
    neighbor命令:
    建立邻居列表的时候是r_c(截断半径)+skin为半径进行寻找的,只要邻居列表中的原子距离都小于skin,那么这个列表就可以在下一步继续使用。建立邻居列表的方法,最常用的是bin方法,bin在大多数情况下是最快的。
  2.定义对象的几何模型
    atom_style命令:
    style为full:粒子编号,粒子所属分子的编号,粒子类别(atom type),带电量,x坐标,y坐标,z坐标。
    style为atomic:粒子编号,粒子类别,x坐标,y坐标,z坐标。
  3.定义对象的力场参数
    pair_style命令:
    在实际计算中只需要对势能进行求导就能获得受力。非键结是不通过化学键的作用,非键结相互作用包括范德华和静电。范德华仅有短程相互作用,而静电既有短程又有长程作用,如果体系中有静电作用,还要定义长程静电求解类型kspace_style。键结是通过化学键的相互作用,在分子体系的键结相互作用分为键(bond),键角(angle),二面角(dihedral),离平面(improper)
    special_bonds命令:
    当键结作用出现时,设定有键结相互作用的粒子之间是否还具有pair相互作用
  4.定义分组信息
  5.弛豫部分
  6.正式模拟
    timestep命令:
    分子体系会要求 △ t = 1 f s \triangle t=1fs t=1fs,简单液体体系放宽至 △ t = 5 f s \triangle t=5fs t=5fs,晶体体系可以为 △ t = 2 f s \triangle t=2fs t=2fs反应力场reaxff要求更小的时间步 △ t = 0.1 − 0.5 f s \triangle t=0.1-0.5fs t=0.10.5fs
    fix命令:
    nve系综是只求解牛顿方程而不对速度和位置做任何干涉的系综;npt通过改变盒子的体积来实现控压的,所以在控压的方向上只能使用p边界条件。若要让模拟对象发生一定变形,就用fix deform命令;要对对象施加一个电场就用fix efield命令。fix ave/chunk命令输出模拟盒子不同位置处的原子属性的时间平均值fix ave/time命令输出某些全局的平均值

6.并行通信算法、出错解决思路

6.1 并行通信算法

    在进行多核并行计算时,lammps采用基于空间分配技术将模拟区域分割成小的三维子区域,然后将每一个子区域分配给一个处理器进行计算。处理器之间通过MPI进行消息通信,并且将跨越子区域边界的原子记录为ghost原子以备调用。处理器与其子域边界的原子通信并存储"ghost"原子信息。空间分配算法处理器之间的通信是局部的,这与基于原子分配和受力的算法不同(这两种算法的通信是全局的)。
    模拟区域三个方向上设定的处理器个数应当使得每个处理器负责的子区域的形状越接近正方体越好。在空间分配算法中,通信消耗的时间与模拟子区域的表面积成正比,每个处理器负责两个数据结构。第一个数据结构,每个处理器存储原子的完整信息,如位置、速度、邻居列表等;第二个数据结构,只存储原子的位置。空间分配算法是最高效的,但是其效率依赖于模拟的几何形状。
    部分lammps功能还支持OpenMP多线程、矢量化和GPU加速(带有粒子分解的)。

6.2 出错解决思路

    理论上,应该在任何数量的处理器和任何机器上得到相同的结果。在实践中,数值四舍五入会导致分子动力学空间轨迹在几百个或几千个时间步长内的微小差异和最终发散。但两次运行的统计特性(例如平均能量或温度)应该仍然相同
    如果在lammps输出中看到剧烈的热力学值或NaN值,则说明模拟有问题。如果怀疑有这种情况正在发生,最好通过thermo频繁输出热力学信息,来监控正在发生的事情。
    不正确的几何模型和物理模型会导致一系列错误,比如lost atoms、bond/angle/dihedral/improper missing、simulation unstable、cannot compute pppm、too many bin等。这时你能修改优化几何模型或者检查力场参数来解决错误。

你可能感兴趣的:(科技)