对于lammps新手来说,系综的选择令人困惑,到底是应该用nvt系综还是npt系综?
我在初学lammps时就被这个问题困扰了很久。如果去问别人,可能会告诉你一个答案:根据模拟需要确定。
其实和没说一样。
到底如何确定系综,确实不是一句两句能够说清楚的,不同的体系、不同的模拟目的要选择不同的系综。
前几天遇到的一个合金的模拟案例,比较有代表性,分享出来供大家参考。
建模方法和之前介绍过的高熵合金建模方法类似,先建立单晶模型,然后使用替换原子的命令获得合金结构。
建模完成后,按照常规,先上nvt系综进行驰豫。
驰豫完成把dump文件下载下来放到ovito里查看,发现结构出现问题。
合金内部出现了很多空洞,在正常情况下,合金不可能出现空洞。
一开始猜测可能是势函数问题,重新下载了一个势函数,上机运行,症状依旧。
既然不是势函数问题,那还是要分析一下原因。
在nvt系综下驰豫,box体积保持不变,原子在力的作用下抱团收缩,原子之间的距离变小,原子总体积小于box体积,从而产生空洞。
这种情况下就不能再用nvt进行驰豫。
npt系综根据原子总体积的变化自动调整box的尺寸,比较适合当前的体系,于是把nvt改为npt。
在npt下驰豫后发现合金在开始阶段有比较大的收缩,收缩之后空洞消失,得到比较致密的合金组织,完美解决问题。
多数情况下,用nvt系综进行驰豫即可,但部分体积变化比较大的体系,用npt系综进行驰豫效果会更好。
问题的答案又回到原点,假如别人问你如何选择系综,优雅地告诉他“根据具体情况而定”,这答案准没错。
更多lammps教程,扫码关注公众号: