力场
力场(Force Field, 常简写为FF)这个物理学名词听起来有点高深, 可如果理解了它的含义你就会觉得这是很自然的一个概念, 没有什么特别之处.
在中学物理或者初等力学中, 研究物体的运动都是从分析其受力出发的, 可以说是以力为基础, 这也是称为力学的原因. 牛顿第二定律直接将物体的受力与其加速度联系起来, 这样只要知道了物体的受力情况, 就能计算出其运动轨迹. 在力学中, 一般将力作为一个基本物理量, 不讨论物体之间的相互作用力来自哪里, 其本质是什么. 但对于重力和电场力, 却讲到了它们的来源. 实际上人们就是在研究这两种力的时候引入了场的概念. 重力, 就是物体在重力场中所受的力, 或更宽泛一点说, 是在引力场中由于物体存在静质量而受到的力; 而电场力, 则是在电场中的物体由于存在净电荷而受到的力. 以这种观点看来, 任何相互作用力都可以引入一个相应的力场来说明其来源, 或者说, 任何相互作用都可以使用相应的场来描述.
那如何描述场呢? 使用能量. 因为力实际上可以认为是能量的梯度(也就是导数), 就像重力是重力势能的梯度, 电场力是电势能的梯度一样. 与使用力进行描述比较起来, 使用能量描述还有一个优点, 简单. 因为能量是标量, 对空间的每点只需要使用一个值进行描述, 而力是矢量, 在空间的每点都要使用三个分量值进行描述. 量子化学中的密度泛函方式比波函数方式更简单, 也与此类似, 可对照思考.
从能量出发, 而不是从力出发, 这是现代物理学的通用做法. 无论研究什么体系, 尺度多大, 其基础都是得到体系的能量函数. 如果能够写出体系的能量函数, 再知道其演化方程, 理论上就相当于知道了体系的一切性质, 大到宇宙星系, 小到微观粒子, 都是如此. 体系的能量函数在物理学中也称为体系的哈密顿量(Hamiltonian). 如果学过一点分析力学或是量子力学, 就容易理解这种思路了. 在这些学科中, 分析问题时首先要写出体系的哈密顿量, 然后根据它遵循的方程求解体系的运动, 只不过经典力学中使用哈密顿方程(它是推广的牛顿运动方程), 而量子力学中则使用薛定谔方程(或狄拉克方程).
以能量为出发点的物理学, 或许可以称为能学, 以便与力学对应. 历史上的唯能论就持这种观点, 只不过太极端了一些, 认为所有一切都可认为是能量. 相对论的质能方程倒是有点支持这种观点的意味.
从宏观深入到微观, 相互作用(能)的概念更成为主流, 因为在这些领域中你很难像在宏观领域中那样, 直接给出分子的具体受力情况, 而只能根据基本的物理学原理推测分子之间的相互作用. 我们可以将描述微观分子相互作用的场称为分子力场. 它是力场的一种, 和重力场, 电场的概念没有本质区别, 只不过比这两个场更复杂, 因为分子之间的相互作用更复杂.
如果知道了分子力场以及分子运动遵循的方程, 便可以求解分子的运动轨迹, 这就是分子动力学的实质. 根据所用力场和运行方程的不同, 分子动力学可分为不同的层次:
量子分子动力学: 使用量子力学描述分子力场, 假定分子运动遵循薛定谔方程
从头算或第一性原理分子动力学: 使用量子力学描述分子力场, 假定分子运动遵循牛顿方程
经典分子动力学: 使用经典的势能函数, 库仑作用, 范德华作用描述分子力场, 假定分子运算遵循牛顿方程. 这是狭义的分子动力学, 通常说分子动力学时所指的一般就是这种.
要描述分子之间的相互作用, 经典的分子力场必须包含两个方面的内容:
描述分子之间相互作用的势能函数
如果要将分子中的原子抽象成经典粒子, 并给出合适的势能函数, 一般是将化学键近似为力学中的弹簧, 这样对键合作用就可以采用键, 键角, 二面角来描述. 由于原子并不一定是中性的, 所以也需要考虑原子之间的静电能. 根据量子力学的色散作用和泡利原理, 原子之间还存在一定的吸引作用和排斥作用, 所以还需要使用范德华势能函数来描述这些相互作用. 虽然基本的相互作用类型都差不多, 但用于描述相互作用的势能函数可采用各种不同形式, 不同类型的力场采用的函数形式可能很不相同.
势能函数的参数
即便采用相同的势能函数形式, 这些函数中的参数也可能不一样, 这样的力场也是不同的, 虽然它们之间的区别比要比上面的小些.
一般来说, 一个力场的势能函数形式是和参数一起的, 所以最好不要在同一个体系中使用不同力场的参数. 更具体的讲, 同一个原子在一个力场中的电荷与其在第二个力场中的电荷是不一样的, 其他键合参数也是一样. 一般来讲, 最好不要修改力场中某个特定原子的参数, 因为各个原子之间的参数可能是互相依赖的. 但是, 上面的做法并不是一定不行, 相反的, 为了模拟一些不常见的分子, 经常需要根据已有的参数(力场已有的, 来自论文的)来构建新的参数. 大体的原则是, 如果原力场中已经含有需要的参数, 就尽量使用.
根据对分子抽象程度的不同, 经典的分子力场一般可分为三种类型:
全原子力场: 考虑分子中的所有原子, 并定义其参数, 如OPLS-AA, AMBER, CHARMM这些力场
联合原子力场: 忽略分子中的一些原子(如非极性的氢原子), 将相互作用整合到与其成键的相邻原子上. 比如由于甲基在模拟中近似不变, 可使用一个基团来代表. GROMOS力场就属于这种类型.
粗粒化力场: 进一步抽象分子结构, 将更大的基团视为一个珠子(或称颗粒). 比如可将蛋白侧链看作一个珠子, 甚至将整个氨基酸残基当作一个珠子的力场. Martini力场是常用的一种粗粒化力场.
显然, 抽象程度越高, 计算越快, 能处理的体系也越大. 比粗粒化抽象程度更高一些的, 就接近经典的连续模型了. 利用不同抽象程度的力场来描述体系, 对关键区域使用量子力学, 关键区域周围的区域使用经典分子力场, 更远的范围使用连续模型, 这样就可以处理非常大的体系, 这种做法常被称为多尺度模拟.
电荷
原子电荷,顾名思义就是位于原子中心点的电荷,是对体系中电荷分布最为简单的描述。原子电荷可以帮助化学研究者们考察分子的性质,预测反应位点等。另外,原子电荷对于计算化学工作者来讲也非常重要,如计算分子描述符建立虚拟筛选模型,在分子动力学模拟中考察静电相互作用等等。