系综的实现方式(nve、nvt、npt)
每个动力学模拟必须要通过fix命令设置系综,若没有设置系综,则就没有时间积分。
一、NVE系综
更新位置和速度,V和E恒定。
velocity all create 300.0 4928459 rot yes dist gaussian #控制原子的初始速度
fix 1 all nve
二、NVT系综
几种实现的方式:
LAMMPS中,系综的温度控制一般有以下几种方法:
1)直接速度标定法:fix temp/rescale command
2)Berendsen温控机制: fix temp/berendsen command
3)Langevin温控机制: fix Langevin command
4)Nose-Hoosver温控机制: fix nvt command
前三种温控方法使用时前面必须加fix nve command,否则无时间积分,原子位置不改变。
两种比较常用的nvt系综设置方式如下:
第一种:
fix 1 all nve #更新位置和速度,e和V保持不变。若只有这个命令,就只nve系综,如果和控温命令一起,就是nvt系综。
fix 2 all langevin 298.0 298.0 100 699411 #控温,fix ID group-ID langevin Tstart Tstop damp seed keyword values 这里温度不变,恒温298k。100表示温度阻尼系数。
第二种:
fix 1 all nvt temp 300.0 300.0 100.0 #执行NVT系综, 1为fix的ID,all是对所有原子,第一个300 和第二个300分别为给系统设置的初始温度和最后温度,100为温度阻尼系数。温度阻尼一般是步长的100-500倍
三、NPT系综
系综的压力控制一般有两种方法:
1)Nose-Hoosver控压机制: fix npt command
2)Berendsen控压机制:fix press/berendsen command
第二种方式同样需要配合fix nve command或fix nvt command进行时间积分。值得注意的是,fix npt是对整个盒子进行设置,不能单独对部分原子设置,而且必须在具有周期性边界的方向才可以进行控压。
常用的设置方式:
fix 1 all npt temp 300 300 100 iso 1 1 1000 #各向同性控压,盒子三个方向同样变化,温度设置为300K,压强为1atm,压强阻尼一般是步长的1000倍
fix 1 all npt temp 300 300 100 aniso 1 1 1000 #各向异性控压,三个方向不同变化
另外,要注意的是:
fix nvt和fix npt不能控制温度为0 K。因为LAMMPS中采用的是Nose/Hoover控温方法,因此不能把Tstop设置为零度,可设置为足够小的非零数值。drag是增加一个额外的阻尼减少不必要的Nose/Hoover的震动。
温度阻尼一般是步长的100-500倍
压强阻尼一般是步长的1000倍
温度阻尼一般是步长的100-500倍