对势:一切的起点
最早的分子动力学,用的是最简单的模型——对势。两个原子之间的相互作用,就只算这两个原子的事,不考虑周围其他原子的影响。最具代表性的就是 Lennard-Jones 势(简称 LJ)。
LJ 的公式看起来复杂,但本质上它就说了两件事:
- 原子靠太近会互相排斥
- 离远了会轻微吸引
这个"排斥-吸引"的平衡点,就是原子的平衡距离。就是这样一个简单的模型,硬是撑起了分子模拟的半壁江山。为什么?因为它足够简单。简单到任何一个新人,花五分钟就能看懂、三天就能上手跑起来。LJ 就像编程里的 "Hello World",不是不能用,它是一切的起点。
但 LJ 的局限也很明显:它只能描述惰性气体这类简单的球状原子,稍微复杂一点的体系,比如金属或者有化学反应,它就无能为力了。简单和精确,往往是一对冤家。
多体势:金属模拟的基石
LJ 搞不定金属,这不是 LJ 的错——金属键的本质是多体相互作用。不能把金属原子之间的关系简单理解成两个球之间的排斥和吸引,周围其他原子的存在会显著改变这两个原子之间的相互作用。
于是多体势来了,其中最成功的就是 EAM(Embedded Atom Method,嵌入原子方法)。
EAM 的思路很巧妙:每个原子就像"嵌入"在一个电子海里,它的能量不仅取决于自己和邻居的距离,还取决于周围电子的密度。这个"密度",就是多体效应的体现。EAM 出现之后,金属模拟才真正成为可能。位错、晶界、辐照损伤、纳米颗粒,这些金属领域的经典问题,终于有了靠谱的计算工具。
后来又出了 MEAM(Modified EAM),它在 EAM 的基础上加了方向性,能够描述半导体、含方向键的体系,比 EAM 更精确,但参数更多、门槛更高。
EAM 使用注意:
- EAM 是金属模拟的基石,至今仍然是行业标准,但它不是万能的
- 描述金属和氧化物的界面、或者涉及电荷转移的体系,EAM 就需要打补丁
- EAM 参数是拟合出来的,不同文献的参数可能有些微差异,做模拟的时候最好用文献里验证过的参数
全原子力场:有机分子与生物体系的主角
如果说 EAM 是金属的老大,那全原子力场就是有机分子和生物体系的主角。
有机分子和金属不一样,它们有明确的化学键(碳-碳、碳-氢、氧-氢),这些键有固定的键长和键角,不是随便拉扯的。全原子力场就是来处理这个的:它把每个原子分成不同类型(比如碳原子在 sp² 杂化和 sp³ 杂化里是不同的类型),然后给每种类型定义键长、键角、二面角、非键相互作用。一套完整的力场就是这样一套规则手册。
这个领域里有"三座大山":
- CHARMM:诞生于哈佛,最早是给蛋白质设计的,后来扩展到生物大分子,在生物体系里积累最深,很多经典工作都是用 CHARMM 做的
- AMBER:名字取自氨分子,最擅长核酸和蛋白质,它的参数大多来自量子化学计算,精度上比较纯
- OPLS:最早是用来模拟有机液体的,后来也被广泛用于生物体系,它的特点是比较均衡,有机和生物都能用,兼容性好
还有 GAFF(General Amber Force Field),顾名思义就是 AMBER 的通用版,专门给那些没有现成参数的有机小分子用的。去 PubChem 拉一个结构,GAFF 基本都能给出参数。
这三个力场没有绝对的优劣:CHARMM 在蛋白质里用得多,AMBER 在核酸里有优势,OPLS 做有机液体比较稳。重要的是用哪个就坚持用哪个,不要混着用。不同力场的参数体系不一样,混用就像把宝马的发动机装到奔驰的车身里,不是不行,但容易出问题。
另外,全原子力场是固定拓扑的,化学键是预设的、不能断。这意味着要模拟化学反应、键的断裂和形成,它就不太灵了。
反应力场:让化学键"动"起来
化学键不能断,这是全原子力场最大的痛点。但很多问题恰恰需要断键:燃烧、腐蚀、催化、辐照损伤……这些过程里,化学键是动态变化的。
反应力场就是来解决这个问题的。
ReaxFF 是最著名的代表,它不再预设固定的键,而是用键级的概念——两个原子之间有没有键、有多强,是根据它们之间的距离动态计算的。这样,键可以断开,也可以重新形成。模拟化学反应第一次成为可能,虽然代价是计算量比普通力场大十倍不止。
COMB3 是另一个代表,主要用于氧化和燃烧,它在描述电荷转移方面比 ReaxFF 更精细。
ReaxFF 使用建议:
- ReaxFF 是革命性的,第一次让模拟化学反应不再是科幻,但别神话它
- ReaxFF 的参数拟合难度很大,不是随便一套参数就能搞定所有体系
- 它的精度介于 DFT 和普通 MD 之间,做定性研究可以,做定量预测还是要小心
- 建议用 ReaxFF 做探索性的机理研究,看看反应路径可能有哪些,然后用 DFT 对关键步骤做精确验证,这样既有效率,又有精度
粗粒化:用精度换尺度
到这里体系都是全原子的,每个原子都清清楚楚。但有些问题原子太多算不起——蛋白质折叠、膜融合、聚合物相变,这些过程涉及毫秒甚至秒的时间尺度,全原子算到天亮也算不完。
粗粒化来了。思路很简单:把几个原子打包成一个"珠子"。比如 MARTINI 力场,4 个水分子合成 1 个珠子,这样体系瞬间缩小四分之一,时间步长可以放大十倍,模拟速度提高几百倍。
常见的粗粒化模型有:
- MARTINI:最流行的生物粗粒化力场,水、脂质、蛋白质都能用
- SDK:日本学者开发的,适合蛋白质
- United-Atom:不把氢原子单独表示,而是和碳合并
粗粒化是用精度换尺度,这是智慧还是取巧,取决于要回答什么问题。如果关心的是原子级别的细节,比如药物和受体的精确结合模式,粗粒化帮不了忙;但如果关心的是大尺度行为,比如蛋白质的整体折叠路径、膜的弯曲刚度,粗粒化就很有价值。
另外,粗粒化有个反向映射的问题——珠子可以再映射回原子,但这个过程不一定完全可逆。粗粒化做出来的结果,最好还是用全原子模拟验证一下。
机器学习势函数:未来的方向
2010 年以后,机器学习势函数突然火起来了。
传统的势函数,不管是 LJ 还是 EAM,都是人手工设计的——人想一个函数形式,然后拟合参数。机器学习不一样,让神经网络自己从数据里学势能面。代表性的工作有:
- Behler-Parrinello 神经网络(2012 年):开创性工作,用原子周围的对称函数描述环境,神经网络学习能量和力的关系
- GAP(Gaussian Approximation Potential):英国学者发展的,用高斯过程,精度很高但计算量大
- DeepMD:中科大的工作,端到端学习,最近几年很火
- PhysNet:把物理先验嵌入神经网络
为什么机器学习势函数这么火?因为它兼顾了精度和效率——传统力场要么快但粗糙(如 LJ),要么精确但慢(如 DFT),机器学习势函数可以做到接近 DFT 的精度,同时保持 MD 的速度。
机器学习势的现状:
- 最大的问题是数据鸿沟:需要一个训练集,用 DFT 算出几百到几千个构型的能量和力,然后让神经网络学。训练集的质量直接决定了势函数的精度,如果研究的体系和训练集差太多,预测就会跑偏
- 另外一个隐患是泛化能力:神经网络在训练数据覆盖的区域表现很好,但到了没见过的区域,可能会给一个离谱的预测,这叫分布外(out-of-distribution)问题
- 目前的判断是:机器学习势函数是未来,但现在还在基础设施建设阶段。每换一个体系,往往需要重新训练一个势函数,真正的通用势函数还没出现
力场选型速查表
| 体系类型 | 推荐力场 |
|---|---|
| 惰性气体、简单流体 | LJ |
| 金属、合金 | EAM |
| 有机小分子、溶剂 | OPLS 或 GAFF |
| 蛋白质、核酸 | CHARMM 或 AMBER |
| 需要模拟化学反应 | ReaxFF |
| 特别大、时间特别长的生物体系 | MARTINI |
| 需要 DFT 精度但要 MD 规模 | 机器学习势函数 |
几条铁律
- 用成熟的,别自己发明
- 查文献——看看同类型体系前人用什么
- 不同力场的参数体系不要混用
- 永远用小体系先验证,再放大
另外,针对特定体系开发的力场还有很多,比如专门针对黏土的、钙钛矿的、沸石的、聚合物电解质的。这些力场通用性没那么强,但在自己的领域算得很准,具有很强的公信力。如果正好在做相关体系,不妨去文献里搜一搜——有时候专精比通用更靠谱。
结语
想要的精度越高,计算成本越大;想要的尺度越大,牺牲的细节越多。这不是分子模拟的特殊现象,这是整个科学的常态——不可能既要又要。
选力场如此,选研究方向如此。理解研究对象,选一个最合适的模型,这才是做模拟的核心功力和真正分水岭。