24小时热门版块排行榜    

CyRhmU.jpeg
查看: 9416  |  回复: 13
本帖产生 2 个 模拟EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ChemiAndy

木虫 (正式写手)


[交流] 第一原理动力学的系综选择,和各种系综的输入文件Example已有9人参与

做Car-Paranello MD,无论是用VASP, DMOL还是CPMD/cp2k, 都面临着如何选择系综的问题。那该怎么选择呢?我的看法是,应该尽可能使用NVE系综,而不是NVT/NPT。为什么呢?

因为NVE系综是真正体系能量守恒的。

像使用Nose-Hoover chain 的NVT系综固然也能保证能量守恒,但是它使用一个或多个虚拟的储热罐来缓存由温度波动引起的能量波动,从而模仿一个NVE系综。这种扩展拉格朗日体系方法对体系性质的热力学平均和采样的影响不大,但是,对具体的动力学性质的细节会产生一定影响,因为虚拟的储热罐的动力学行为随着其本身耦合频率,幅度等参数的调整,对体系的演进有着一定影响,具体就是对分子的扩散,转动,化学反应的时间特征影响。另外,任何的拉格朗日虚拟扩展量都会增加实际的运动自由度,所以会略微慢点。

NVE则没有这些缺点,它是完美的隔离体系,完全遵循能量守恒定律的条件,也没有虚拟的动力学变量。

但NVE有个缺点妨害了它的使用。什么缺点呢?就是的它的能量守恒于起始能量。即守恒能量等于起始构型的势能+起始设定的动能。很可能就是你前面预平衡阶段最后一帧的速度和构型。NVE开始后,能量在动能、势能之间波动式分配。如果一开始势能高,能量就向动能转化,平衡后温度就高;反之,动能向势能转化,平衡后温度就低。显然,这更接近于真实体系的动能-势能的转化模式,但是这就使得其最终的温度其平衡之前很难预料,你本来想模拟300K,结果最终温度却稳定在了250K, 或者400K!你怎么办?只好使用NVT, NPT去控制温度。

从上面分析看,使用NVT/NPT是不得以而强为之。还是NVE好。

NVE的温度问题也不是不能解决。一般用Velocity scaling积分算法跑一个短时间的NVT模拟,比如100fs,取最后一帧Restart一个NVE,一般都能把平衡后的温度控制在一定的范围内。

附, CPMD各种系综的设定。

1. NVE呢,不指定任何控温关键词的,又没有设定任何控压关键词的,即为NVE。For example:

&CPMD
MOLECULAR DYNAMICS CP
RESTART WAVEFUNCTION COORDINATES VELOCITIES CELL LATEST
EMASS
    500
TIMESTEP  // 0.096fs/步
    4
MAXSTEP
    50000
&END

如果不想使用前面模拟最后一帧的速度,可以加关键词:
TEMPERATURE
300
它的意思是在NVE的开始前,重新为每个原子/动力学变量设定动能,使得总的温度为300K。NVE开始后,并不控制体系守在这个温度。

2. NVT 有多种多种控制温度的关键词。

(1) Velocity Scaling控温可以帮助体系快速预平衡到设定温度/势能附近,但是不满足能量守恒,一般不用于采样阶段的模拟。关键词: TEMPCONTROL
&CPMD
MOLECULAR DYNAMICS CP
RESTART WAVEFUNCTION COORDINATES VELOCITIES CELL LATEST
TEMPCONTROL IONS, ELECTRONS
   300  0.006
EMASS
    500
TIMESTEP
    4
MAXSTEP
    50000
&END

其中,IONS 300设定原子的温度为300K; ELECTRON 0.006(au), 是设定电子,即波函数作为运动量(或叫扩展拉格朗日变量)的温度,需预先跑个100步的NVE,取最后几步的EKINC即电子动能,作为这里的控温参数。可比之稍大一点。

(2) NOSE-HOOVER Chain控温是遵循能量守恒的NVT系综,或者说它通过增加变量的方法让体系模拟一个隔离的NVE体系。第一原理模拟中广泛使用。

&CPMD
MOLECULAR DYNAMICS CP
RESTART WAVEFUNCTION COORDINATES VELOCITIES CELL ACCUMULATORS NOSEE NOSEP LATEST // 重接上次模拟继续
TIMESTEP
   4
MAXSTEP
   10000
TRAJECTORY XYZ SAMPLE //每隔10步采个样存到TRAJECTORY中
   10
DIPOLE DYNAMICS  WANNIER SAMPLE //每隔10步存储Dipole moment到DIPOLE文件中
   10
STORE   //每隔500步写一次RESTART.1文件
   500
EMASS
   500
NOSE IONS // NOSE控制原子温度和频率(单位波数,即cm-1)
   300  1600
NOSE ELECTRONS // NOSE控制电子动能和频率(单位波数,即cm-1)
   0.020  25000
&END

(3) NPT的设定:NPT的目的是最终使得盒子在每个方向上的受力与外部的压力相等。压力控制要在&CPMD部分使用PARRINELLO-RAHMAN NPT关键词,并在&SYSTEM中设定PRESSURE的大小。此外,还有一些其它的关键词控制压力的各向异性,请查阅手册。

&CPMD
MOLECULAR DYNAMICS CP
RESTART WAVEFUNCTION COORDINATES VELOCITIES CELL ACCUMULATORS NOSEE NOSEP LATEST // 重接上次模拟继续
TIMESTEP
   4
MAXSTEP
   10000
TRAJECTORY XYZ SAMPLE //每隔10步采个样存到TRAJECTORY中
   10
DIPOLE DYNAMICS  WANNIER SAMPLE //每隔10步存储Dipole moment到DIPOLE文件中
   10
STORE   //每隔500步写一次RESTART.1文件
   500
EMASS
   500
NOSE IONS // NOSE控制原子温度和频率(单位波数,即cm-1)
   300  1600
NOSE ELECTRONS // NOSE控制电子动能和频率(单位波数,即cm-1)
   0.020  25000
PARRINELLO-RAHMAN NPT  //设定NPT系综和控压方法
STRESS TENSOR   //每隔100步输出一次压力值
   100
&END

&SYSTEM
  ANGSTROM
  PRESSURE // 设定外部压力为100Kbar
     100
  CELL VECTORS  // NPT模拟需要使用CELL VECTOR来设置盒子
     13.080    0.000   0.000
      0.000   11.050   0.000
     -9.805    0.000  14.374
  CUTOFF
    100.0
&END

[ Last edited by ChemiAndy on 2012-2-15 at 05:23 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一声叹息010

木虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
5楼: Originally posted by ChemiAndy at 2012-02-17 03:07:12
手册建议是大于3倍,以免它们之间形成耦合.

这里选择NOSE ELECTRONS的耦合频率25000cm-1,大概是每1个fs就让电子储热罐与体系交换一次能量,即耦合一次。这个频率的确很高,目的是希望电子动能的波动小一些。不过 ...

“容易出问题”,是是的什么问题呢,能举个例子吗?
“如果碰到NaN了,可把NOSE ELECTRONS调大一些试试。”可是根据我的实际,大的电子耦合频率才会NAN,调小点反而没有NAN了,和楼主的说法刚好相反呢!
静则无息,动则无敌
11楼2013-06-09 21:46:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

safina.din

金虫 (初入文坛)


小木虫(金币+0.5):给个红包,谢谢回帖
zh1987hs(金币+5): 鼓励交流 2012-02-16 07:37:55
cp2k 里面运行的是Born-oppernheimer MD,而不是car-parrinello MD
2楼2012-02-16 02:54:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meixinqing

金虫 (著名写手)

梅心晴|一只蘑菇


小木虫(金币+0.5):给个红包,谢谢回帖
EMASS
   500
NOSE IONS // NOSE控制原子温度和频率(单位波数,即cm-1)
   300  1600
NOSE ELECTRONS // NOSE控制电子动能和频率(单位波数,即cm-1)
   0.020  25000

手册建议电子动能频率选择原子频率的3倍,这里NOSE ELECTRONS第二个参数数值很大,怎么得到的?

用NOSE参数控制的NVT系统也会出现模拟温度和预定温度不等的情况,可以通过EMASS和EKIN调节,不知这个说法是否正确,望指教!
由于诡异的原因msn偶尔上不去,由于众所周知的原因qq基本不登陆,私聊的pmgmail地址加gtalk/*emuch是个很好很和谐的论坛*/
4楼2012-02-16 13:36:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ChemiAndy

木虫 (正式写手)


御剑江湖(金币+5): 谢谢 2012-02-17 21:42:18
手册建议是大于3倍,以免它们之间形成耦合.

这里选择NOSE ELECTRONS的耦合频率25000cm-1,大概是每1个fs就让电子储热罐与体系交换一次能量,即耦合一次。这个频率的确很高,目的是希望电子动能的波动小一些。不过该值的选取对模拟结果的影响不大。使用5000-30000都是允许的。5000基本上对应大约每6fs耦合一次。

选取小的值,计算会略微快一点点,但是容易出问题。电子动能可能在耦合前就波动到灾难性的结果。因此,如果碰到NaN了,可把NOSE ELECTRONS调大一些试试。

[ Last edited by ChemiAndy on 2012-2-16 at 07:10 ]
5楼2012-02-17 03:07:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见