这是在外网上看到Rosen使用VASP的一些经验,觉得很有用,仔细翻译了一下分享给大家。
结构优化:
1. 不要在远离局部最小值的结构上使用超高精度的设置,这样会浪费你的时间。先用 "宽松 "的设置进行初始优化(例如,k点网格只用gamma-point,弛豫原子位置时,用400eV的截断能)。然后用所需的参数进行细优化。
2. 当涉及到改变晶胞形状或体积的几何优化时,一定要确保ENCUT>1.3*ENMAX(ENMAX这个值可以在POTCAR里找到)以防止Pulary应力。对于含有碳的结构,通常会用到520 eV的最小截断能。
3.几何优化的第一步通常会有最高的SCF迭代次数。如果第一步没有在NELM的限制范围内进行电子收敛,那也没关系。事实上,尽量让第一步在NELMNELM限制范围内收敛,否则会运行数百次的SCF迭代,这样会浪费很多时间。
4.根据经验,通常将EDIFFG设置为0.05 eV/Å或更低,用于优化。我个人推荐0.03 eV/Å或更低。对于大型容易形变的材料,任何大于0.03 eV/Å的值都可能太高。记住,在VASP中,如果你想使用一个基于最大净力而不是总能量变化的收敛阈值,EDIFFG必须是负值。
5.当对原子位置和细胞形状/体积进行全面优化时,最好分阶段进行。通常明智的做法是先进行原子位置的弛豫(ISIF=2),然后再进行体积和形状的优化(ISIF=3)。这将会大大减少不收敛的情况。(PS:用ISIF=3先优化往往会出现晶胞弛豫不到想要的参数范围内或者出现各种松散的结构,up主亲测)。
6.如果你的材料只能建立真空层模型作为模拟单元(例如表面模型),千万不要用ISIF=3来优化单元体积,因为它只会减少/消除真空。你需要手动调节晶格参数,通过这种方式找到全局能量最小值。
7.在进行优化时,除非你确定需要约束对称性,否则你最好设置ISYM=0。尽管这样做增加计算成本,但它允许体系达到局部最小值,不这样做就无法获得。此外,这样设置的话,你不必担心与SYMPREC有关的错误。尽管ISYM=0,有时还是会出现一些对称性问题。要解决这些问题,可以设置SYMPREC=1.0e-8。
8.如果你想停止一项工作,但希望它仍然输出任何WAVECAR或CHGCAR文件,在工作目录中创建一个名为STOPCAR的文件,并写入LSTOP=.TRUE。(这将导致工作在下一个离子步中停止,所有重启文件将被写入)
优化算法的选择:
1.在选择寻找局部最小值的优化算法时,我一般建议从共轭梯度(CG)算法(IBRION=2)开始,因为它非常稳健,你不必担心调整POTIM的问题。
2.在具有高自由度的大型易变形材料中,CG优化算法(IBRION=2)一旦相对接近局部最小值,常常会出现括号中的致命错误(search for ZBRENT: fatal error in bracketing in the standard output file)。出现这种情况是因为势能表面非常平坦,而VASP中的CG算法是基于能量差计算的。解决这个问题的一个办法是将CONTCAR复制成POSCAR,并将EDIFF设置到1e-6,但更可靠的办法是使用基于力的优化器。其中,我推荐使用VTST的FIRE实现(IBRION=3,IOPT=7)。我发现FIRE通常比QN(IBRION=1)方法更稳健。
PS:看到这里,大家可以看一下我的视频,Vasp结构优化小技巧之三步曲,结合这个帖子,你或许有新的想法!!
3.如果起始结构的某些原子受极大的力,至少在最初的几步,请使用适合的优化器。我强烈推荐使用基于力的优化算法和稳健的线性搜索算法。对于那些力大到结构在几次迭代中就 "爆炸 "的情况,我建议使用ASE的BFGSLineSearch算法,直到max|F| < 10 eV/A左右。然后继续使用你喜欢的优化器。
4.一般来说,对于NEB和CI-NEB的计算,VTST中的L-BFGS算法(IOPT=1)是最快的。对于dimer方法,我推荐使用VTST中基于力的CG方法(IOPT=2)。然而,如果你在这两种情况下遇到困难,我建议切换到FIRE算法(IOPT=7)的默认设置。它的速度有点慢,但在不容易收敛的情况下特别有用。
电子能量收敛
1.对于绝缘材料,通过使用ALGO=All,可以大大加快SCF收敛速度。这还有一个好处,就是你不必担心任何混合标签。在使用M06-L元GGA函数时,无论系统类型如何,也推荐使用这种算法。
2.我建议对大多数作业设置LWAVE=.TRUE.,除非你使用基于ASE的优化器或连续运行许多短作业。有一个很大的内存成本,但是如果需要的话,WAVECAR可以作为继续计算的一个很好的起始文件,并且在你完成计算后可以删除。我不推荐设置LCHARG=.TRUE.来进行优化,因为初始电荷密度可以WAVECAR中计算出来。
3.采用实空间投影算法(如LREAL=Auto)获得最终能量时要小心,即使是大的体系。这可能会在一定程度上影响能量(甚至是能量差异),这取决于你想研究的内容。如果VASP在OUTCAR文件中告诉你体系很大,推荐使用实空间投影算法以节省时间,那么我强烈建议用LREAL=Auto进行计算,然后用LREAL=.False进行最终优化。使用互换空间投影的优化一般只需要额外的1-5步,所以你仍然会得到使用实空间投影算法的速度。
4.虽然VASP手册建议不要将最大的SCF迭代次数(NELM)设置为60次以上,但有许多材料(如MOF)在最初的几个步骤中需要一个更高的数值。在研究非常大的材料时,我一般设置NELM=150。
5.对于那些有电荷震荡或SCF难以收敛问题的材料,我建议将NELMIN设置为4-6,以便获得准确的能量和力。
6.如果你没有明确地设置ISTART或ICHARG,VASP将检测是否存在WAVECAR,如果它存在的话,就使用它作为初始波函数和电荷密度。这可以说比在INCAR中明确设置ISTART要好,因为它可以防止VASP在WAVECAR不存在的情况下崩溃(例如:前一个作业设置ISTART=1却没有波函数崩溃了)。
7.对于绝缘材料(或有未知带隙的材料),我建议使用高斯方法(ISMEAR=0),尽管它们对导电材料是更好的选择,但它对导体和绝缘体都适用。
8.始终检查以确保从有限温度近似法推断回T = 0 K后OUTCAR文件中所列的能量是接近虚构自由能的。
9.一般来说,设置PREC=Accurate是一个好的做法。这为积分网格(NGX、NGY、NGZ)提供了合理的估算。经常有人说,meta-GGA函数需要紧密的积分网格来实现收敛。我发现,即使对于这些麻烦的函数,PREC=Accurate也足够了。
10.如果你要写出或读入电荷密度,如果你有d区元素,设置LMAXMIX=4,如果你有f区元素,设置LMAXMIX=6。如果你使用ICHARG=1,其影响可以忽略不计,但如果你用ICHARG=11运行非自洽计算,省略LMAXMIX将导致总能量和计算的性质不同。这对于自旋极化系统影响很大,因为磁矩没有被完全再现。
自旋极化
1.当研究有磁矩的系统时,设置LORBIT=11,这样你就可以查看每个原子的聚合磁矩了。
2.如果你使用以前WAVECAR进行计算,只要ISPIN=2,你就不需要在INCAR文件中设置MAGMOMS(你可以设置,但VASP会忽略它们)。
3.如果你不确定该如何设置金属原子的磁矩,可以考虑将MAGMOM值设置为预期的未配对电子数。如果这也是完全未知的,对d族元素设置5的值,对f族元素设置7的值,通常可以作为初猜。如果采取这种方法,明智的做法是使用已经收敛的结构来测试其他自旋极化。我还会测试初始MAGMOM为0.1,看看这是否会收敛到一个没有自旋的系统,或者回到与高自旋初始化相同的磁矩,或者完全是别的什么。
过渡态
1.如果在重新启动dimer计算时,你发现扭矩和角度比他们上次结束的时要高,请确保你使用的是VTST 3.2或更新的VTST版本。
2.VTST dimmins.pl脚本的使用说明是不正确的。它应该是 dimmins.pl POSCAR MODECAR displacement,其中 POSCAR 和 MODECAR 是执行 vfin.pl 所产生的文件。
3.VTST neb2dim.pl脚本的使用说明并不清楚。它应该说明,你必须先运行vfin.pl,将exts.dat文件复制到父目录(新的POSCAR文件被写入该目录),然后从该父目录运行neb2dim.pl。
自旋/电荷密度
1.在几何优化过程中,不要生成AECCAR文件(例如,用于Bader分析或DDEC电荷)。VASP为输入的几何体写AECCAR0文件,但为收敛的几何体写AECCAR2文件,所以它们是不兼容的。经常是做一个单独的单点能量计算(nsw=0)并设置LAECHG=.True。
赝势方法
1.通常考虑使用VASP推荐的PAW赝势。注意Li_sv在5.4版本的PAW_PBE赝势中的ENMAX为499 eV,但是其他赝势的ENMAX小于400 eV。
2.现在ASE有个选项可以自动选择VASP推荐的默认赝势。只需设置setups='recommended'。
3.对于DFT+U、混合函数和meta-GGA计算,建议设置LASPH=.TRUE。如果你使用LASPH=.TRUE.标志,请确保你对气相物种也包含它!它应该被看作是你的化学模型的一部分。
4.一个微妙的问题是,由于对PAW球体内部的梯度修正的非球体贡献将随着ENCUT的变化而变化,如果LASPH=.TRUE,将很难收敛到一个与平面波截断能相关的绝对能量。相反,我们应该关注相对能量的收敛,或者用LASPH=.FALSE做一个收敛测试。
并行性能
1.经验法则是,你应该使用的处理器数量与系统中的原子数量有合理的比例关系。这对于有很多富电子元素的金属体系来说是相当有效的,但是对于有很多C和H原子的有机或有机金属体系来说,可能会有一点高估。
2.尽可能使用只有gamma版的VASP执行程序,因为它的运行速度比标准版本快1.5倍。(修改标准版本的提交脚本或者提交命令的std为gam)。
3.我建议使用NCORE来代替NPAR,因为它可以根据节点的数量自动调整。NCORE的最佳值根据计算环境的不同而强烈变化。在许多计算集群中,一个很好的初步猜测是将NCORE设置为一个给定节点的处理器数量。无论如何,要确保每个节点的处理器数量能被NCORE除以。
ASE
1.只要有可能,就不要在 VASP 计算中使用 ASE 优化器(或任何外部优化器)。如果有必要,考虑使用 VaspInteractive 计算器,而不是 Vasp 计算器,因为这将减少与每一个离子步骤启动和停止 VASP 相关的 CPU 时间。然而,即使使用 VaspInteractive 计算器代替 Vasp 计算器,VASP 与 ASE 优化器一起运行时,一般也需要比 VASP 内部或 VTST 优化器更多的电子步。这是因为VASP在其混合器历史中保留了以前离子步的内部历史,而且VASP将波函数和电荷密度从以前的步骤外推到新的位置。还有与每一个离子步读/写任何重启文件有关的I/O开销。
2.上述情况对振动频率计算也是如此。也就是说,有时使用ASE的振动模块可能是值得的,即使有额外的CPU开销。ASE生成的振动可以很容易地使用ASE的图形用户界面进行可视化,而VASP生成的振动则更难进行可视化。ASE振动模块还为每个位移保存了重启文件(.pckl文件),因此,如果作业崩溃或超过了指定的时间,很容易在停止的地方继续计算。
最后,想说的是这篇VASP英文经验帖子是在学术之友公众号上看到的,有疑问的地方可以在评论区评论或者查看原文。https://mp.weixin.qq.com/s?__biz=MzI2OTQ4OTExOA==&mid=2247495283&idx=1&sn=c999a989b9eb5933f27254f74e258a21&chksm=eadd28c2ddaaa1d43a637f5384edde5b46897c03062e7b8b7d672e325822c93878b78ebc270b&mpshare=1&scene=23&srcid=03228KVxgvmcNZ0ndPIHGKJe&sharer_sharetime=1647924378073&sharer_shareid=ed489736885388b33759d2f6ba012118#rd