vasp做大体系结构优化(精品文档)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Vasp对大体系的结构优化
ENCUT
vasp运行时间主要消耗在对角化上。

运行时间正比于NBANDS*NPLNW2,前者是能带数目,后者是平面波数目;由于NPLNW∝ENCUT3/2,故运行时间正比于ENCUT3。

运行时间也正比于NELECT3,电子数目三次方。

IALGO
选择对角化算法:
对于小体系,用IALGO=38(Davidson algorithm);
对于大体系,用IALGO=48(RMM-DIIS)。

可以设置ALGO=very fast or fast。

RMM-DIIS并行效率比Davidson algorithm高一些。

NPAR
如果IALGO=38,则NPAR取1。

对IALGO=48,影响不是特别大,可选2或4,可选节点数,取值越大,内存占用越多。

并行效率总是低于线性叠加效率的,核越多并行效率越低。

所以对于一定核(如20),一定作业(如2个),同时算(每个作业10个核)比先后算(每个作业20个核)要更节约时间。

LREAL 控制赝势能量的非局域部分如何计算(k空间或实空间)。

大体系,如果用集群算,可以考虑让NPAR=节点的CPU数。

LREAL
对k-空间,计算量正比于平面波数目(∝ENCUT3/2*a1*a2*a3)。

小于25个原子,可用K空间。

实空间计算依赖体系大小。

对大体系用LREAL = Auto or LREAL = .Ture. 。

KPAR
设置KPAR为计算节点数或K点数。

KPAR用来设置K点的计算并行度。

每个K点用N/KPAR个核来计算,N为总核数。

核数很多时(>100),这个参数的影响比较大。

NELECT
NELECT= [real]
Default
NELECT = - (number of valence electrons) 价电子数
NELECT = number of electrons 电子数
Usually you should not set this line -- the number of electrons is determined automatically from POTCAR (ZVAL of the element) and POSCAR (number of the atoms of the respective atom type).
通常这个参数是不需要手动设置的—电子数将自动的从POTCAR(元素的类型)和POSCAR中确定(每种类型原子数)
If the number of electrons is not compatible不匹配with the number derived from来源于the valence化合价and the number of atoms a homogeneous均匀的、同类的background-charge is assumed.
如果电子数与来源于化合价的电子数不一样,就假定这些数目的原子具有均匀的背景电荷。

If the number of ions specified指定in the POSCAR file is 0 and NELECT=n, then the energy of a homogeneous LDA-electron gas is calculated.
如果在POSCAR中指定的离子数是0,NELECT=n,然后计算一个同质LDA电子气。

在计算中遇到算不动的情况,需要适当减小精度。

可以减小收敛精度的一些参数设置:
k点密度减少K点
改变迭代算法(ALGO)大体系,一般ALGO=Very_Fast,IALGO=48
提高高斯展宽(SIGMA增加)SIGMA默认0.2
设置自洽延迟(NELMDL)在一开始计算时初始化的过程中电子非自洽迭代的步数
截断能ENCUT 确定平面波的切断动能。

PREC 确定计算的精度,它决定了ENCUT和ROPT的默认值。

默认设为Medium中等的,V ASP4.5以后的版本可设置的值为Normal普通和Accurate精确
有两个提高并行效率的参数NPAR和KPAR
大体系一般不进行收敛测试了,主要根据小体系的测试值和别人文章的使值来选择比较合适的参数
分步优化:先采用低精度进行优化,比如增大离子步长,降低收敛精度,等收敛之后再提高精度进行精优化,这样相对比较可能会快一些
对于大的体系,还是分步来优化好:
1)先把EDIFF EDIFFG弄大一点,设置POTIM=0.1,NSW的步数也设小一点,IALGO=48,ISIF=2,采
用2*2*1的k点先做一个优化。

2)然后把EDIFF EDIFFG弄小一点,设置POTIM=0.2,NSW=1000,把IALGO去掉,采用大一点的k
点,ISIF=4(二维),进行第二次优化。

截断能对计算速度的影响有多大?
截断能取得大,电子波函数的平面波展开中就要取更多的项。

平面波越多,计算量就越大。

截断能是表示平面波展开后取到多大能量的平面波,对于高能部分,展开后所占的比例非常小,而且影响计算速度,所以并不是截断能越大越好。

这是一个两相竞争的问题。

一般用POTCAR中的ENMAX即可,若做静态等计算,可适当调大些。

控制参与计算的平面波的个数,截断能越大,所参与的平面波就越多,计算的精度当然会随之提高,然而,在超过一定的数值后,计算的结果没有实质的变化,反而计算的时间却增加了。

这个一定要测试的。

还是要把计算理论好好看看的。

后面需要用到的次数可能还会很多,科研不是做一天两天的事情。

完全有必要找一个合理的截断能。

否则写文章的时候,你直接写个很大的截断能(准确性没问题),但是会让人怀疑你对计算的理解,其他的结果都可能被怀疑了。

一般,认为截断能越大,k点设置越多,收敛精度越高,收敛会越慢,但是准确度不一定越高。

因此有必要做一些此类参数的测试。

一般会这些参数大概会有个能量收敛的趋势。

就是设置到某个临界参数,能量几乎变化很小。

而参数再增加,只是增加计算量,而准确度没有变化。

优化时可以用ISMEAR=0,最后静态的时候再用-5,这样有些错误就不会发生。

相关文档
最新文档