化学吧 关注:1,449,367贴子:11,361,875
  • 8回复贴,共1

【科普】分子动力学方法(Molecular Dynamics)简介

取消只看楼主收藏回复


前言
吧内精品区有过一些对于计算化学/分子模拟相关的介绍,但都比较概括。本文将着重于分子模拟中的分子动力学方法(Molecular Dynamics,下简称MD),通过一些简单的MD程序实例,来让大家产生一个直观的认识。本文将尽量不出现具体的数学或代码,而更多的以图文的形式来描述这一方法。


1楼2017-12-24 15:17回复
    一、什么是分子动力学?
    首先请不要把分子动力学与物理化学中的化学反应动力学搞混。后者是研究的是化学反应的速率问题,而前者是一种对分子运动进行计算机模拟的方法。二者尽管名字很像但却没有什么关系。
    分子动力学的思想十分简单。如果我们假设分子的运动符合牛顿运动定律的话,若我们能计算出分子所受到的作用力,那么我们就可以通过简单的积分方法算出每时每刻分子所处的位置以及运动速度。知道了分子在不同时刻位置和速度,我们就可以对这些数据进行分析,获得宏观的统计数据以及微观的结构信息。前者可以与实验结果进行对比来检验MD体系的正确性,而后者通常是实验中难以轻易观察到的,而这也就是MD方法的优势了。在实验上,无论是时间尺度还是空间尺度的观测都很难做到很小,而MD方法中每个分子的全部细节是可知的,因此理论上也就可以在任意所需的时间/空间尺度上展开模拟。当然这里一般是指实验上难以到达的小尺度。
    那么分子之间的作用力该如何描述呢?根据不同的需要可以有不同的作用力,而最简单的作用力是兰纳德-琼斯势(Lennard-Jones Potential, LJ Potential)。这个势的势能图长下面这样:

    简单来讲就是在近距离为排斥力,远距离为吸引力,并存在一个势能最低的平衡位置。这个力可以作为分子间范德华力的一种近似描述。


    2楼2017-12-24 15:18
    回复
      二、实例
      上一段不知有多少读者能耐心读下去。读不下去也无所谓,直接跳到这一段就好了。这里我将建立一个二维的简单MD体系,并且运行一些小项目。
      让我们想象一个模拟盒子。最开始我们把分子均匀的放在盒子里面,如下图。这里每一个点就代表一个分子。


      3楼2017-12-24 15:18
      回复
        之后再给每一个原子设定一个随机的初始速度。因为温度的本质就是平均动能,因此这里的初始速度的设定也就决定了体系的初始温度。这样体系的初始化就完成了。
        之后我们就要在每一个时间节点计算出一个分子与其余分子的LJ作用力,并通过积分运算得到新的位置和速度。我们可以把每一个时间点的分子的位置描绘出来,然后做成一个小动画:

        我们看到,开始运行之后,盒子里面的分子立即离开初始位置,进行无规则的运动。在当前的参数条件下,体系基本为液态。分子之间保持一定的间距,但仍在做较为自由的运动。


        4楼2017-12-24 15:19
        回复
          不过此时体系的温度并不是确定的。尽管在初始化的时候我们确定了体系的初始温度,但是不采取措施的话体系并不能稳定地保持在我们需要的温度上。那么如何控制温度呢?要用到称为thermostat的方法。我们可以把它想象为把我们的模拟盒子浸入一个巨大的恒温水箱里面,体系不断地与水箱进行热交换,这样就温度保持在了一个恒定的水平上。
          当我们拥有了良好的控温方法后,就可以来观察一下同一个体系在只改变温度的时候会发生什么


          上面两张图分别是高温和低温下的模拟结果。可以看到高温下体系还拥有较好的流动性,而低温的时候分子的运动速度明显较慢,并且逐渐地向六方晶体结构过渡,每个分子开始在某一平衡位置附近做小幅振动——体系结冰了。


          5楼2017-12-24 15:20
          回复
            我们还可以把MD运用在高分子的模拟上。这里我们需要把高分子抽象成一条项链,相邻的珠子之间的作用力我们用弹簧势来描述。简单起见我们只在盒子的中心放一条链,并观察这条链自身的运动情况。如下图


            6楼2017-12-24 15:21
            回复
              三、讨论
              有人可能会问了:你这个MD体系也太抽象了吧?一个点就表示一个分子?一串珠子就是一条高分子链?那分子内部的信息岂不都消失了?
              首先要说的是MD方法也可以同样进行全原子模拟,也就是在体系内放入“真实”的原子并用化学键相连。而此时原子间的作用力就不能再用简单的LJ势来描述了,而是要用到综合考虑了LJ势,化学键能,键角能,二面角能甚至于氢键等等的一套详细的力场。
              但是即使是采用了这种全原子的方法,也实际上只是采用了更加精确的参数而已,信息丢失的问题确实会存在。相比于其他基于量子力学的计算方法,这种简单的MD方法并不能给出原子内的电子跃迁或是化学反应路径之类的信息。但是没有一种方法是适用于研究所有问题的。当我们关心问题出现在不同尺度时应该去找到最适合描述这个尺度的方法,而不是一味的追求精确。如果我们关注的问题的尺度较大,比如生物大分子、物质的流动性质、相行为等等时,完全可以采用这种粗粒化方法来更高效地解决问题。这种情况下分子内部的细节实际上已经不重要了。
              参考: Daan Frenkel & Berend Smit, Understanding Molecular Simulation,second edition


              7楼2017-12-24 15:21
              回复
                镇楼图来自于VMD网站。VMD是一个用于将MD结果可视化的软件。最后再来欣赏一些MD艺术作品吧。




                8楼2017-12-24 15:21
                回复
                  @ZDX003 @Leiem


                  9楼2017-12-24 15:23
                  收起回复