1.项目场景:
项目场景(1):VASP运行时,出现【forrtl : severe (174) : SIGSEGV, segmentation fault occurred】
出现问题原因
原因:出现报错的主要原因是:由于VASP运行程序较大,所需的存储空间也较大,而Linux系统初始的堆栈大小又太小导致容易出现bug。一般只需将堆栈大小(stack size)调大,一般设置成256M或者没有限制,此错误就会得到解决!
解决方案:
解决方法1:仅当前生效
设置256M:【ulimit -s 262140】
设置无限制:【ulimit -s unlimited】
解决方法2:永久生效
1:在【/etc/security/limits.conf】文件中添加下面两行:
*soft stack unlimited
hard stack unlimited
其中【
】表示所有文件生效;【stack】表示堆栈的最大值;【unlimited】表示大小无限制。
2:在【/etc/pam.d/login】文件中添加下面一行:
session required /lib/security/pam_limits.so
其中【/lib/security/pam_limits.so】为电脑中的设置。32位对应【/lib】;64位对应【/lib64】
2.项目场景:
项目场景(2):出现出现【WARNING: random wavefunctions but no delay for mixing, default for NELMDL】(译:随机波形,但没有混合延迟)
出现问题原因
原因:首先这不是一个错误,只是一个警告,让我们注意INCAR中未明确的NELMDL参数。其默认设置适用于许多体系,但是对于表面,复杂的磁性结构,如果增加NELMDL,通常可以帮助电子收敛,从而延迟初始阶段的电荷密度更新。想要删除此警告,只需在INCAR文件中指定NELMDL,但这不是必需的
解决方案:
解决方法1:
对于使用哈密顿直接最小化的计算(ALGO=ALL或ALGO=DAMPED):如果设置了NELMDL,戴维森算法在第一个NELMDL步骤中使用,如上所述。由于轨道和电荷密度预测的问题,在VASP.5中使用正的NELMDL(即在每个离子步骤中的延迟)不能可靠地工作。在VASP.6中,使用NELMDL=1(或NELMDL=2)和直接最小化往往能提高分子动力学模拟或松弛的稳定性和效率(ALGO=ALL或ALGO=DAMPED)。然而,请注意,这可能需要人们准备一个合理的WAVECAR文件,因为NELMDL=1/2可能不足以从初始随机数中获得一套合理的轨道。
解决方法2:
对于HF型计算,如果NELMDL大于或等于3,VASP将使用Davidson算法执行NELMDL非自洽步骤,并使用与所选混合函数(即HSE的PBE和PBE0)相对应的半局部DFT函数计算局部哈密尔顿。如果离子在离子步骤之间移动的距离很大,这是很方便的。因此,设置NELMDL=3可以提高使用HF型哈密顿人进行松弛时的稳定性和性能。如果你在使用HF型哈密顿人进行松弛时遇到收敛问题,请尝试使用ALGO=All和NELMDL=3。