新手们总是会困惑,LAMMPS为什么要提供special bonds这个独特的命令。因为在别的软件中,使用全原子力场,基本不会涉及到这个概念。在LAMMPS里面,这个参数特别重要,对应使用全原子力场做模拟的LAMMPS用户来说,稍有不慎,会错的离谱。那么special bonds到底是何方神圣,对模拟影响那么大呢(这里指全原子模拟),且听iSimuLy给你唠叨唠叨。
对于这个问题的理解,首先我们大脑里(提示大家用脑思考噢)要有个分子的模型;简单来讲,你大脑里想想如下结构:
1----2
\
3----4
上图是由四个点(bead),组成的一个分子。直观来想, 对于这样的一个分子来说,bead间除了对相互作用(pair),还应该有键、角、二面角的作用。可是当科学家(力场开发者),预设好上面相互作用的表达式,并想办法获得相互作用的参数时,发现pair作用,和键、角作用比,小了2个数量级(物理上,有量级差异的时候,是可以忽略贡献小的),所以键(紧邻或者special bonds说的1-2作用)、角(次紧邻或者specail bonds说的1-3作用)作用存在下,pair作用可以不考虑了。但是,研究人员发现,两面角作用强度和pair作用基本上在一个等级上,那么由两面角控制的1-4作用,和 (1-4bead间)pair作用,怎么处理呢?不同的力场发展者,在这个处理上就即兴而为了,有的力场,完全不考虑1-4对作用(当然是通过二面角来约束分子构型了),有的力场部分考虑(因为他们发现,在他们的势函数下,不考虑,算得结构不好),有的虽然考虑,但是只取对作用贡献的50%(这不是徒增计算量么,可是力场发展着为了精确,愿意这样)。
可见不同的力场,对1-2,1-3,1-4的处理是有不同的,特别是1-4。但LAMMPS软件是只给势函数,为了适应于大多数力场,所以提供了这个special_bonds命令,来让大家自己设置。到这里,大家该明白这个命令的功能且知道其重要性了吧。 大家用LAMMPS做全原子模拟的时候,一定要搞清楚,你用的力场如何处理1-2-3-4相互作用的,不然,算得结果,只能呵呵了。
还好,LAMMPS对 amber,charmm,dreiding,fene
(这个粗粒化polymer模型用的,因为键势函数里包含了lj左右) 有关键词处理。
specail_bonds确实special.