目录

分子动力学的定义

有限差分方法


分子动力学的定义

首先介绍分子动力学的定义,也就是分子动力学在研究什么。

如图提供了两种对分子动力学的定义方式。第一种方式是一个分子动力学模拟相对正式的说法:给一定体系的牛顿运动方程,对于这个运动方程进行数值积分。用形象的语言描述就是按照特定的规则(统计热力学玻尔兹曼分布)给模拟对象各个粒子赋予起始位置和速度(粒子指构成分子原子),这其中符合玻尔兹曼分布的是各个粒子的起始速度。之后要模拟对象遵循力学规律进行运动。这种遵循规律的运动其实就是牛顿运动方程所描述的一个运动过程。让这个体系运动起来,就是进行数值积分的这样一个过程。可以把这个过程形象的看作一段动画片,在计算机里面去模拟整个体系运动的过程,并且按照约定的时间把这个运动的过程记录下来。构成了一个分子间遵循牛顿力学运动的电影,基于这个电影我们可以输出分子构象随时间的演化以及能量随时间的变化,还有像体积,压强,密度等等性质随时间的演化,基于这些随时间演化的信息来获取分子整体的热力学性质。那么这个呢就是分子动力学模拟的一个定义。

分子动力学模拟主要有以下几种目的:第一,搜索相空间优化分析结构。什么叫优化分子结构?为什么要优化分子结构?为什么还需要用分子动学模拟的方法去优化分子结构?主要是由于呢我们常规的常见的分子结构优化的方法,都是能量单调下降的。这样的一种优化的方式呢,最终优化的结果高度的依赖起始结构,它在这个模拟的过程中优化的过程中,体系不能翻越势,能量只能向下去移动。我们知道化学分子的结构是比较复杂的,因此势能量的维度很高,结构很复杂。要想获得整个体系全局的结构信息,就需要采取一些和常规的优化方法不同的手段,分子动力学模拟中由于分子是遵循牛顿力学进行运动的,故可以在动能和势能之间相互转化,这种相互转化就使得体系可以在势能面上既可以向下走,也可以向上走爬坡翻越势来。如果引入了温度控制的手段的话,整个体体的温度还能够进一步的升高。因此这种模拟的方法在理想化的情况下能够遍历相空间,把这个整个体系到最小的结构,也就是全局最优结构找出来。因此这是一个全局优化的目的和方法。在很多需要优化分子结构的场景,比如我们通过同源模键的方法构建了一个生物大分子结构,就需要运行一段时间的分子动力学模拟来对这个结构进行优化,通过动力学模拟的手段还降低体系内部的张力,降低势能。这是第一种目的。

第二种目的是在相空间内进行采样,沟通宏观世界和微观世界。因为进行分子模拟的主要是希望通过模拟去说明一些宏观的物理性质和微观的结构之间的观点。而宏观的物理性质和微观的对应值之间并不是严格的完全的对应关系。因为我们知道宏观的物理性质,这就是宏观体系实验所得到,那么宏观体系的实验往往是哪怕很小体系(ms, ns),那也是十的10~20次方,几万个,十几万个,上百万个就已经很多了,这和阿弗加德常数的数量上就有巨大差异。因此仅仅是对于这些模拟的体系进行简单的模拟是不够的,需要很长运行一段时间的分子动力学模拟。基于统计学里面的遍历假设,可以认为一段时间内这些分子行为的平均可以等同于大量分子一个时间内行为的平均。应用统计学的原理,就可以基于分子动力学模拟的采样去计算宏观的氧化性。这些氧化性质包括我们常用的热学函数,熵、焓、自由能以及一些特殊的参数等等。数据都可以通过分子动力学模拟的方法基于采样来获取。

第三种目的是获取大分子结构动态变化。比如蛋白质结构的折叠,药物构象的变化,离子或者是分子通过离子通道的过程,那么这些过程是与时间相关的,会随着时间的演化发生变化。分子动力学模拟是一个可以提供随时间演化信息的方法,是一个研究生物研究大分子构象变化的有效手段。除此之外其他的hanshi性质那么也是分子动力学可以覆盖的目标,其他与分子间相互作用有关的物理现象也是基于分子间相互作用所开展进行的,这些就构成了分析目标。可以看到分子动力学是一个有效的沟通宏观世界和微观世界,以及对于复杂的势能面进行有效分析的手段。

有限差分方法

分子模拟的对象作为一个多体的体系,它的受力随位置变化的函数很难写出解析式。因此也很难求得解析的运动方程,需要用数值的方法去生成一个轨迹。

如图所示一个质量,位置矢量为的原子,可以写出它牛二的方程的形式,并解析的写出速度方程和位置方程。因为我们无法给出f随位置变化的解析式,因此呢我们就无法给出这两个方程的解析解,需要进行数值积分数学其中的方法。

所谓数值积分方法就是按照积分步长,把关注的这些函数方程的轨迹画出来之后得到积分的结果,这样就构造了分子动力学模拟的基本流程。在分子动力学模拟时,首先要确定模拟的起始结构。在生物体系的环境里面这些结果往往是通过实验的手段进行表征,我们的材料体系里面往往是在获取了结构的信息之后通过程序生成这种有规律的结构。确定了模拟的起始结构之后,就需要对起始结构进行优化,优化起始结构的目的是为了尽可能的释放起始结构内部的张力,让他能够比较稳定,从一个稳定的结构出发去开始分子动力学的模拟。这样一来体系里面不会迅速的把大量的张力释放出来,相应的他这个运动呢也是比较稳定可控的。根据分子运动论,一个体系温度的物理意义就是整个体系里面所有分子的平均动能。当运动速度加快的时候温度会随之迅速上升,日常的生活经验告诉我们,很多的体系温度一旦上升,它的理化性质就会发生重大的变化。我们平时在厨房里面经常可以看到的煮鸡蛋,炖肉的过程,都是因为温度上升造成蛋白质趋于折叠并且发生变性的过程。这样的过程在分子动力学模拟环境里一样有可能发生。那么如果温度过高,整个体系运动太过于剧烈,那么整个粒子(整个大分子)的结构就会散掉,从而导致不能够有效的折叠造成变性,最终导致实验的失败。因此呢我们不希望体系不受控制的发生一个剧烈的温度变化,为了避免这种剧烈的温度变化,就要避免迅速的非常快的势能到动能的转换。这就需要起始结构处于一个局部的最小点。在进行完这个优化之后,根据玻尔兹曼分布随机的赋予整个体系初始速度,赋予初始速度之后就可以开始模拟进行一段时长的分子动力学模拟,根据各个粒子的位置可以计算受力,根据受力可以计算加速度,根据速度和加速度和位置就可以得到新的位置和新的速度。这样就是分子动力学模拟的轨迹,据这个轨迹再进行进一步的分析,就可以得到我们想要的结论。这是一般分子动力学模拟的流程。

在这个流程里核心的工作是根据位置去计算受力,根据受力计算加速度,根据位置速度和加速度计算新的位置和加速度。这个过程被称为有限差分法。其基本思想是把一个整体的曲线拆散成若干个很小的小段,每一个小段有固定的自变量的间隔进行分隔,在这个分隔的这个区段之内,认为其受力和加速度是不发生变化的。这就相当于是在曲线的2点之间,用一个直线把它替换掉,如果我们相间隔的两点距离足够近,分割的足够多,那么这样连连缀形成的曲线也可以近似等同于这段曲线。有限差值法在分子中学模拟中计算的步骤主要是体现在一步一步的位置和速度的计算。首先设定各个粒子的初始位置和初始的速度,根据粒子的位置和去计算每一个例子受力,根据例子的位置,速度和受力再去计算各个粒子新的位置和新的速度。更新的粒子的位置和速度之后就可以回到第二步,之后再去计算其下一步的受力、位置、加速度,速度和新的位置。

在整个这个过程里分析一下这四步,其中对于分子动力学模拟来说,最关键是其中第二步。如何构造一个高效的,准确的算法做到能够根据例子当前的位置,速度和受力来去计算粒子新的位置和新的速度,这样的一个过程叫做积分方法。这样的一个利用这个牛顿运动方程积分求解的过程形成采样的方法也是其他分子模拟的时候所没有的,因此列在积分方法重要性的第一位。

第二位重要的是初始化,要有初始的各个粒子的位置和速度,分子动力学模拟是一个比较依赖于起始结构的方法。因为往往描述或模拟的对象是一个比较复杂的势能面。而在比较复杂的势能面能够处理的时间和空间尺度面往往只能在局部的区域进行采样。因此起始阶段在一个合理适当的区域是非常重要的。合理的势能面区域或合理的相空间的区域既包括了位置,也包括了速度。所以位置和速度的初始化影响了一个分子动力学模拟的质量,因此这也是非常重要。

第三个重要的因素就是在第二部里面去计算每一个粒子的受力,可以说动力学模拟的准确性主要取决于这个力的求算是否准确,如果准确则后续计算的结果也会可靠;如果不准确,则后续计算的结论可靠性就会打折扣。

但是初始化粒子求算都不是分子动力学模拟核心方法。结构的初始化在很多其他分子模拟中,而力学的求算在几乎所有以分子力学为基础的模拟中都需要。因此我们从重要性排序上来说,积分方法最为重要,初始化的结构第二,一个准确和有效的力场第三

分子动力学(一)-定义与理解相关推荐

  1. mysql三大范式 答案_数据库三大范式定义与理解

    数据库三大范式定义与理解 发布时间:2018-06-04 10:24, 浏览次数:291 一.第一范式(1NF) 要求: 要求:每一个分量必须是不可分的数据项. 特点: 1)有主键,且主键不能为空. ...

  2. 群、环、域的概念,定义和理解.

    群.环.域的概念,定义和理解. 以下链接很好的解释了群环域的概念. http://sparkandshine.net/algebraic-structure-primer-group-ring-fie ...

  3. 轻量级模型设计与部署总结(关键字定义/架构理解/高效CNN)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[模型部署]技术交流群 后台回复[模型部署工程]获取基于TensorRT的分类.检测任务 ...

  4. 关于机器学习的定义的理解

    对机器学习定义的理解 Tom M.Mitcjell provided a widely quoted, more  formal definition: "A computer progra ...

  5. 对极限定义的理解_宏观区间和微观区间_20160326

    对极限定义的理解_宏观区间和微观区间

  6. Python 中类的定义和理解

    Python 中类的定义和理解 前言 一.类的定义 二.具体的案例分析 1. 定义一个类 2. 类的实例化 3. 内置__init__方法 欢迎学习交流! 邮箱: z-@1-6.com 网站: htt ...

  7. OSI 七层网络协议的定义与理解

    计算机网络,是计算机的基础课程,也是对互联网应用开发人员,必须要了解或者深入理解的一门网络课程,也是必要的基础.一般,在面试中,都被涉及或者解剖的问题. OSI 模型各层间关系和通讯时的数据流向如图所 ...

  8. 高等数学一:函数与极限二:对数列极限定义的理解

    试着去理解数列极限的定义,这个定义如下(摘自同济版高等数学第七版): 设Xn为一个数列,如果存在常数a,对于任意给定的正数k(无论它多小),总存在正整数N,使得当n>N时候,不等式 |Xn-a| ...

  9. 车载GNSS/INS/LiDAR坐标系定义与理解

    目录 一.基本坐标系 1.1 地心惯性坐标系(Inertial coordinate system,i系) 1.2 地心地固坐标系(Earth-Centered, Earth-Fixed,e系) 1. ...

  10. libev中ev_loop结构体中宏定义的理解

    libev源代码由于有各种宏定义,十分让人费解,作者这么写确实使得代码很简练,但也给读者的阅读带来了巨大的麻烦,下面将分析下ev_loop这个结构体的定义,加深对作者代码简化的理解,先上代码: str ...

最新文章

  1. 方向对了,就能学好Linux
  2. List遍历删除注意事项
  3. 图像变换——分段线性变换
  4. 超囧的图片链接批量获取和下载
  5. 【分享】如果我没有那么优秀,我研究生阶段选择机器学习方向还有出路吗?...
  6. C# C++ 共享内存 结构体读写 结构体中嵌套结构体 结构体中带string Char*的处理方式
  7. window删除文件夹时提示源路径太长无法删除的解决办法
  8. 超参数调整——网格搜索
  9. labeltool标注工具使用说明
  10. OEM、ODM、OBM分别是什么?
  11. ybc_xxx类模块应用1-ybc_speech(第一片)
  12. linux网线插拔后ip地址丢失,网线拔掉检测,嵌入式网线直连开发板断电网线拔掉之后,上电仍能自动设置static静态ip地址...
  13. attr 与prop 的区别
  14. Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
  15. CAD制图怎么绘制对称的图形?
  16. c盘内存不足怎么清理(如何清理电脑c盘空间)
  17. (转载)成都移动IPV6光猫设置教程
  18. Android java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@
  19. 基于Docker容器的DevOps应用方案
  20. AddressSanitizer使用介绍

热门文章

  1. ext4文件系统布局
  2. C++ Templates中文版 p61页的一个问题
  3. Vue入门之vue框架简介库和框架的区别MVVM介绍安装vuevue所管理的边界双向数据绑定vue事件vue的生命周期
  4. httpf发送 json_https和http的post发送总结
  5. CF1427F-Boring Card Game【贪心】
  6. 传统建材采购的痛点有哪些?
  7. 《雍正皇帝·九王夺嫡》物质文化专有词泰译研究(二)
  8. VS绿豆沙屏幕保护色参数设置
  9. mimikatz猕猴桃工具使用教程
  10. C++著名库的比较和学习经验