2015-12-08 22:24:58
力场的概念及其分类
力场(Force Field, 常简写为FF)这个物理学名词听起来有点高深, 可如果理解了它的含义你就会觉得这是很自然的一个概念, 没有什么特别之处.
在中学物理或者初等力学中, 研究物体的运动都是从分析其受力出发的, 可以说是以力为基础, 这也是称为力学的原因. 牛顿第二定律直接将物体的受力与其加速度联系起来, 这样只要知道了物体的受力情况, 就能计算出其运动轨迹. 在力学中, 一般将力作为一个基本物理量, 不讨论物体之间的相互作用力来自哪里, 其本质是什么. 但对于重力和电场力, 却讲到了它们的来源. 实际上人们就是在研究这两种力的时候引入了场的概念. 重力, 就是物体在重力场中所受的力, 或更宽泛一点说, 是在引力场中由于物体存在静质量而受到的力; 而电场力, 则是在电场中的物体由于存在净电荷而受到的力. 以这种观点看来, 任何相互作用力都可以引入一个相应的力场来说明其来源, 或者说, 任何相互作用都可以使用相应的场来描述.
那如何描述场呢? 使用能量. 因为力实际上可以认为是能量的梯度(也就是导数), 就像重力是重力势能的梯度, 电场力是电势能的梯度一样. 与使用力进行描述比较起来, 使用能量描述还有一个优点, 简单. 因为能量是标量, 对空间的每点只需要使用一个值进行描述, 而力是矢量, 在空间的每点都要使用三个分量值进行描述. 量子化学中的密度泛函方式比波函数方式更简单, 也与此类似, 可对照思考.
从能量出发, 而不是从力出发, 这是现代物理学的通用做法. 无论研究什么体系, 尺度多大, 其基础都是得到体系的能量函数. 如果能够写出体系的能量函数, 再知道其演化方程, 理论上就相当于知道了体系的一切性质, 大到宇宙星系, 小到微观粒子, 都是如此. 体系的能量函数在物理学中也称为体系的哈密顿量(Hamiltonian). 如果学过一点分析力学或是量子力学, 就容易理解这种思路了. 在这些学科中, 分析问题时首先要写出体系的哈密顿量, 然后根据它遵循的方程求解体系的运动, 只不过经典力学中使用哈密顿方程(它是推广的牛顿运动方程), 而量子力学中则使用薛定谔方程(或狄拉克方程).
以能量为出发点的物理学, 或许可以称为能学, 以便与力学对应. 历史上的唯能论就持这种观点, 只不过太极端了一些, 认为所有一切都可认为是能量. 相对论的质能方程倒是有点支持这种观点的意味.
从宏观深入到微观, 相互作用(能)的概念更成为主流, 因为在这些领域中你很难像在宏观领域中那样, 直接给出分子的具体受力情况, 而只能根据基本的物理学原理推测分子之间的相互作用. 我们可以将描述微观分子相互作用的场称为分子力场. 它是力场的一种, 和重力场, 电场的概念没有本质区别, 只不过比这两个场更复杂, 因为分子之间的相互作用更复杂.
如果知道了分子力场以及分子运动遵循的方程, 便可以求解分子的运动轨迹, 这就是分子动力学的实质. 根据所用力场和运行方程的不同, 分子动力学可分为不同的层次:
- 量子分子动力学: 使用量子力学描述分子力场, 假定分子运动遵循薛定谔方程
- 从头算或第一性原理分子动力学: 使用量子力学描述分子力场, 假定分子运动遵循牛顿方程
- 经典分子动力学: 使用经典的势能函数, 库仑作用, 范德华作用描述分子力场, 假定分子运算遵循牛顿方程. 这是狭义的分子动力学, 通常说分子动力学时所指的一般就是这种.
要描述分子之间的相互作用, 经典的分子力场必须包含两个方面的内容:
-
描述分子之间相互作用的势能函数
如果要将分子中的原子抽象成经典粒子, 并给出合适的势能函数, 一般是将化学键近似为力学中的弹簧, 这样对键合作用就可以采用键, 键角, 二面角来描述. 由于原子并不一定是中性的, 所以也需要考虑原子之间的静电能. 根据量子力学的色散作用和泡利原理, 原子之间还存在一定的吸引作用和排斥作用, 所以还需要使用范德华势能函数来描述这些相互作用. 虽然基本的相互作用类型都差不多, 但用于描述相互作用的势能函数可采用各种不同形式, 不同类型的力场采用的函数形式可能很不相同.
-
势能函数的参数
即便采用相同的势能函数形式, 这些函数中的参数也可能不一样, 这样的力场也是不同的, 虽然它们之间的区别比要比上面的小些.
一般来说, 一个力场的势能函数形式是和参数一起的, 所以最好不要在同一个体系中使用不同力场的参数. 更具体的讲, 同一个原子在一个力场中的电荷与其在第二个力场中的电荷是不一样的, 其他键合参数也是一样. 一般来讲, 最好不要修改力场中某个特定原子的参数, 因为各个原子之间的参数可能是互相依赖的. 但是, 上面的做法并不是一定不行, 相反的, 为了模拟一些不常见的分子, 经常需要根据已有的参数(力场已有的, 来自论文的)来构建新的参数. 大体的原则是, 如果原力场中已经含有需要的参数, 就尽量使用.
根据对分子抽象程度的不同, 经典的分子力场一般可分为三种类型:
- 全原子力场: 考虑分子中的所有原子, 并定义其参数, 如OPLS-AA, AMBER, CHARMM这些力场
- 联合原子力场: 忽略分子中的一些原子(如非极性的氢原子), 将相互作用整合到与其成键的相邻原子上. 比如由于甲基在模拟中近似不变, 可使用一个基团来代表. GROMOS力场就属于这种类型.
- 粗粒化力场: 进一步抽象分子结构, 将更大的基团视为一个珠子(或称颗粒). 比如可将蛋白侧链看作一个珠子, 甚至将整个氨基酸残基当作一个珠子的力场. Martini力场是常用的一种粗粒化力场.
显然, 抽象程度越高, 计算越快, 能处理的体系也越大. 比粗粒化抽象程度更高一些的, 就接近经典的连续模型了. 利用不同抽象程度的力场来描述体系, 对关键区域使用量子力学, 关键区域周围的区域使用经典分子力场, 更远的范围使用连续模型, 这样就可以处理非常大的体系, 这种做法常被称为多尺度模拟.
如何发展力场
待补充, 暂且先将王喜军对问题范德华相互作用参数获得的回答放在这里
想请教大家一下,如何运用势能面扫描获得范德华相互作用参数,还是用其他的什么办法可以获得?
扫描势能面,然后用范德华作用能表达式拟合这个势能面,即不断改变势阱参数和半径参数,直到两势能面差距的平方和最小,即可得到最佳范德华作用参数。不过前提是你需要先得到电荷参数,因为静电作用对势能面有很大贡献呢,要大于范德华作用。
遗憾的是,这样得到的参数,并不能用于分子模拟。因为你的势能面一般是在气相中优化得到的,缺少多体效应。在凝聚态中,由于诱导,极化等效应,体现为介电常数不同,故而其势能面与在气相中有很大差别。电荷也不同,自然范德华参数也就难以精确获取。
那么我们用的范德华参数从哪里来的呢?是Jorgensen他老人家用以下方法得到的:
选定初始参数,做分子模拟,然后看模拟结果和实验值的差别,然后调整参数,继续模拟,直到达到收敛标准。说起来简单,其实很难。参数很多,实验值有限,这是一个约束数量少于未知数的线性方程组,是一个多解问题。所以要加上很多经验修正。特别是需要先固定一些参数,如C, H的电荷和范德华参数。并根据化学性质区分不同的原子类型,然后给不同的原子类型以不同的参数。
所以,不存在单独的“范德华相互作用参数”,因为它是分子力学力场的一个部分。要做一个力场,你就必须先确定分子力学模型:要不要极化,要不要氢键;然后选定势函数模型:键参数咋搞,非键咋搞;然后确定原子类型划分标准,然后确定参数化流程和实验值拟合收敛标准(e.g. &#lt;5%),然后开始搞。。。