3.13.3 常见的报错以及解决思路#
由于新手学VASP初期会遇到太多可能的报错,要在这里把所有可能遇到的报错讲清楚,不是这份手册的目的,因此这里只提供一些解决思路。一般来说,报错分两类,一类是服务器的问题,一类是vasp的问题;报错提示一般在计算任务结束后输出的err或者out后缀的文件中,或者在result/OUTCAR文件中。
对于服务器的问题:
(1) VASP没安装成功,导致vasp没有开始运行。这一点可以从服务器提交任务后输出的err或者out文件中确认,或者查看vasp是否有顺利输出OUTCAR或者result文件,以及通过里面的内容查看vasp是否顺利开始运行。
(2) 任务使用的内存不足。当你看到VASP的任务没有成功完成(查看OUTCAR确认)且result或者OUTCAR中并没有显示ERROR信息,但是计算队列中任务已经结束时,这时候需要查看服务器输出的err或者out文件。一般可以增加核数,或者降低计算精度(如ECUT和k点数量)来测试是否是这个原因。
(3) 服务器某些节点故障,可能导致任务卡住。比如你发现长时间下VASP都没有更新输出文件,这时候可能是服务器的某些节点出问题,需要终止任务重新提交。一般可以通过ll -h查看上一次文件更新距离现在隔了多久。注意有些服务器的时钟不是北京时间,自行甄别。
(4) 服务器资源被抢占,导致某些电子步运行时间明显不合理,任务不会报错,会继续算,但是速度很慢。此时需要咨询服务器管理员。通过grep LOOP OUTCAR查看电子步运行时间。一般来说,每一次电子步运行时间不会相差一个量级。HSE是例外,因为它一开始做PBE计算,后面开始HSE计算。
对于VASP中可能的报错
(1) 一般来说VASP中的报错都会在result或者OUTCAR中输出,并且会给出相关的解决方法,仔细阅读里面的ERROR内容遵循官方的建议进行操作即可。并且,请务必确保你的操作无误,比如做NSCF计算时,提供的POSCAR和前面SCF计算的POSCAR要完全一样,并且确保CHGCAR不是空的。
(2) 如果VASP没有给出明确的原因,比如OUTCAR或者result中一些报错只给了一些数字代码信息,你很难判断问题在哪时,可以把报错复制到网上,用google或者edge搜索。或者向课题组其它成员咨询。有时候result文件中会看到电子步迭代到某一步时,后面出现ERR,但没有说详细原因。此时可以考虑更换ALGO参数。
(3) 有时候result中会输出一些WARNING信息。一般来说WARNING信息可以不用管,但建议你最好仔细阅读其中的内容。唯独有些情况下,WARNING会提示你NBANDS可能太少,尽管当前计算已经收敛,但还是建议你增加NBANDS,见教程2.3.5
(4) VASP显示POSCAR的信息有问题,但实际检查发现写法没有错,并且没有原子重叠。此时可能是POSCAR里面的信息有一些乱码,肉眼看不出来,但是程度读取信息时出错。可以用vaspkit-411或者412功能转一次分数或直角坐标,再把新生成的POSCAR_REV文件作为新的POSCAR进行计算即可。新版vaspkit-151该功能的命令是413.
(5) VASP计算绝大部分人最容易遇到的问题可能就是“自洽计算不收敛”,注意这里的“自洽计算”并不单单指某一次静态自洽计算,因为在很多任务中,都嵌套着很多个“自洽计算”。这种情况下,解决办法思路和“静态自洽计算不收敛”一样,除了本教程提供的例子之外,也建议多从网上或者师兄/师姐那里寻求思路。