vasp的分子动力学模拟 联系客服

发布时间 : 星期四 文章vasp的分子动力学模拟更新完毕开始阅读

ISIF = 2 # 就算压力。

NPACO = 200,APACO = 10 # 计算对关联分布的。具体可以看 manual,很简单。 NELMIN = 6 # 电子最少的自恰步数,一般是 4 到 8。 NBANDS = 700 # 能带数,这个最好自己设,否则容易出问题。 LCHARG = F # 尽量不写 CHG,太占硬盘资源。

TEBEG = 1000;TEEND=1000 # 初始温度和末态温度,默认是两者相当,所以一般设 TEBEG 就可以。

##------END---------

PREC 一般也不用设,默认即可。ENCUT 会等于 ENMAX。我能想起来的参数就这些,有问题可以直接问

我。因为分子动力学是一个统计概念,当然原子越多越好的。所以我认为最少也得算 100 个原子。一般 100 个

原子的话,k 点用一个就可以。注意的是在分子动力学里,PSTRESS 是没有的用的。因为没有 NPH 或 NPT

系综。再有分子动力学常用的几个概念就是,对关联函数,这个实验可测。写在 PCDAT 里。速度自关联函数,

这个可以自己看一下公式,很简单,可以自己写程序做。

做分子动力学最好用 vasp5,因为很多参数都不用测了,4.6 好像还得测,

否则慢。还有实际 vasp 在输出温度是需要修正的,这个可以看看 manual,很简单,如果

原子数多的话可以不

修正。还有压力也需要修正,但通常影响不大,可以直接用 vasp 的。

youzhizhe(金币+1): 谢谢分享。如果是转载,请注明转载地址。 2011-08-13 09:53:45 cenwanglai: 这个是goldfish专家的帖子 2011-11-17 22:13:23

很长一段时间以来,一直有人在问BOMD与CPMD究竟有什么不同?这里我就简单说一些二者的区别。

实际上,我想大部分人理解和接触的第一原理分子动力学方法以CPMD居多。CPMD,就是Car和Parrinello两个人作出的基于密度泛函的分子动力学方法,其特点是在引入电子虚拟质量,将电子运动耦合到了运动方程中,每一步分子动力学计算后,对电子结构的计算就不再需要自洽场迭代这一过程,因此可以大大节省计算资源,在计算机还不是那么好的80,90年代是弥足珍贵的。CPMD的建立开创了第一原理分子动力学方法的新时代,使其真正开始了实用化进程。

而BOMD,顾名思义,就是Born-Oppenheimer分子动力学。Born-Oppenheimer近似,也就是绝热近似,指的是将电子和离子的求解分离开来,只处理离子的动力学部分,而认为电子可以快速跟上电子的运动。其特点是每一步分子动力学计算之后都需要对电子结构进行自洽场迭代,使电子达到基态。正式由于这个自洽场迭代过程需要的计算量巨大,致使其一直没有达到广泛运用,直到90年代中后期,计算机技术的发展,才使BOMD开始逐步被人们重视。

CPMD和BOMD各有优劣。CPMD虽然计算速度更快,不需要进行自洽场迭代计算,计算量小,但是由于计算中并没有使体系真正达到基态,而只是尽量靠近基态,因此其准确性对电子的虚拟质量这个参数的选取依赖程度很大,一旦计算参数不对,得到的体系很可能远远偏离真实的势能面,得不到正确的动力学轨迹。同时,为了保证其尽量靠近基态,分子动力学时间步长一般选得较小。而BOMD虽然计算量大,但是由于每一步都保证系统达到基态,

因此其分子动力学步长可以取得较大,一般1fs到5fs都有可能。综合来说,如果能结合二者的优势,第一原理分子动力学计算效率将大大提高,这也成为近年来其发展的重要方向。

偶曾经用CASTEP的MD算了一个晶格的结构相变问题,目前打算把手上那个表面的东西搞完后就做点QMD的东西。现在偶每天除了看点文献外就是马丁的《Electronic Structure》和《Ab Initio Molecular Dynamics: Basic Theory and Advanced Methods》两本书对比看,感触颇多啊!

SMASS =1,2,3 虽说都是NVT 系统,但是,还是有区别的,SMASS 是控制温度震荡的频率的。要选择合适的值,以防止Nose-热浴和离子的运动脱耦,导致非正则的系宗。 这是我以前模拟退火的一个例子 SYSTEM = TiNi ENCUT = 550

ISTART = 0;ICHARG = 2 ISMEAR = -5 VOSKOWN = 1

NSW = 500; IBRION =0 SMASS =-1

ISIF =0 ; POTIM =0.2 NWRITE =1 ISYM =0

TEBEG =500 ;TEEND =0 IWAVPR = 2 PREC = Accurate

一般做分子动力学的时候都需要较多原子,一般都超过100个。

当原子数多的时候,k点实际就需要较少了。有的时候用一个k点就行,不过这都需要严格的测试。通常超过200个原子的时候,用一个k点,即Gamma点就可以了。

INCAR:

EDIFF 一般来说,用1E-4 或者1E-5都可以,这个参数只是对第一个离子步的自洽影响大一些,对于长时间的分子动力学的模拟,精度小一点也无所谓,但不能太小。 IBRION=0 分子动力学模拟

IALGO=48 一般用48,对于原子数较多,这个优化方式较好。 NSW=1000 多少个时间步长。

POTIM=3 时间步长,单位fs, 通常1到3. ISIF=2 计算外界的压力.

NBLOCK= 1 多少个时间步长,写一次CONTCAR,CHG和CHGCAR,PCDAT. KBLOCK=50 NBLOCK*KBLOCK 个步长写一次 XDATCAR. ISMEAR=-1 费米迪拉克分布. SIGMA =0.05 单位:电子伏

NELMIN=8 一般用6到8, 最小的电子scf数.太少的话,收敛的不好. LREAL=A

APACO=10 径向分布函数距离, 单位是埃. NPACO=200 径向分布函数插的点数.

LCHARG=F 尽量不写电荷密度,否则CHG文件太大. TEBEG=300 初始温度.

TEEND=300 终态温度。 不设的话,等于TEBEG.

SMASS -3 NVE ensemble;-1 用来做模拟退火。大于0 NVT 系综。

SMASS=1,2,3 是没有区别的。都是NVT ensemble。 SMASS只要是大于0就是NVT系综。

学习了,但是要指出你的一点小错误。

NBLOCK= 1 指的是多少个离子步(时间步长只是对于MD而言,对于其它的计算,NBLOCK也是起控制作用的)写一次XDATCAR

KBLOCK=50 NBLOCK*KBLOCK 个离子步写一次PCDAT.

CONTCAR是每个离子步之后都会写出来的,但是会用新的把老的覆盖 CHG是在每10个离子步写一次,不会覆盖 CHGCAR是在任务正常结束之后才写的。

在vasp的说明书中关于模拟退火有这么一段话:

Usually a simulated annealing run is more efficient if all masses are equal, since then the energy dissipates more quickly between different vibrational modes. This can be done by editing the lines POMASS in the POTCAR file. The partition functions remains unaffected by a change of the ionic masses.

我想知道这个POMASS是不是真的可以随便改,比如我想算H在Fe里的扩散,我把H的POMASS设置成和Fe的一样行不行? 谢谢!

看了各位的回复让我壮了胆子试了一试,果然对能量没什么影响,计算效率稍有提高。 得到的启示是:以后还是不要去钻研这种小东西,多花些时间在设计模型上才是正道!!! 谢谢各位!