VASP 常见报错对照表(错误信息 → 原因 → 修复)
对应教程:第18章 后处理生态、自动化与报错排查(§9)。错误字符串取自 VASP 的标准输出/OUTCAR,以及 custodian VaspErrorHandler 所监测的关键词;修复办法是作者整理的经验做法,请结合具体体系判断。
先用下面的命令定位问题:
tail -30 vasp.out # 标准输出(作业脚本重定向的文件)
grep -n -i -E "error|warning|very bad news|advice" vasp.out OUTCAR | head -40
tail -5 OSZICAR # 电子步/离子步是否在推进
grep -c "General timing" OUTCAR # 1 = 正常结束;0 = 中途退出或被杀
python ../../scripts/check_vasp.py -h # 仓库的健康检查脚本(自动匹配常见报错)
A. 输入文件
| 错误信息(关键片段) |
常见原因 |
修复 |
Error reading item 'XXX' from file INCAR |
标签值格式错误;INCAR 有 Tab 或 Windows 换行(CRLF);MAGMOM 个数不对 |
dos2unix INCAR;用空格代替 Tab;检查拼写;MAGMOM 用 N*value 写满 NIONS 个(非共线 3×NIONS) |
| 标签被静默忽略(OUTCAR 回显中找不到) |
拼写错误、行首有不可见字符、标签写在注释后面 |
grep -i 标签名 OUTCAR 确认 VASP 读到的值 |
| 元素与 POTCAR 不匹配,但不报错,结果离谱 |
POTCAR 拼接顺序与 POSCAR 第 6 行不一致 |
grep TITEL POTCAR 与 POSCAR 元素行逐一对照;用脚本按 POSCAR 生成 POTCAR |
ERROR: the triple product of the basis vectors is negative |
晶格矢量构成左手系 |
交换任意两个晶格矢量(同时交换坐标分量),或用 ASE/pymatgen 重写 POSCAR |
The distance between some ions is very small |
原子重叠,常见于建模错误或坐标单位(Direct/Cartesian)写反 |
用 VESTA 检查结构;确认第 8 行坐标类型 |
ERROR: charge density could not be read from file CHGCAR for ICHARG>10 |
非自洽计算缺少 CHGCAR,或 CHGCAR 损坏 |
从自洽目录复制完整的 CHGCAR |
WARNING: dimensions on CHGCAR file are different |
读入的 CHGCAR 网格与当前设置不同(ENCUT、PREC、晶胞改变) |
保持两步计算设置一致,或删除旧 CHGCAR 重新自洽 |
while reading WAVECAR / while reading plane |
WAVECAR 与当前 ENCUT、NBANDS、k 点或晶胞不匹配,或文件损坏 |
删除 WAVECAR 从头开始;或保持设置与生成 WAVECAR 时一致 |
B. 对称性与 k 点
| 错误信息 |
常见原因 |
修复 |
VERY BAD NEWS! internal error in subroutine IBZKPT: Reciprocal lattice and k-lattice belong to different class of lattices |
六角/三方体系用了偶数 Monkhorst–Pack 网格,k 网格与晶格对称性不兼容 |
改为 Γ 中心网格;或调整网格使之与晶格对称性相容 |
Tetrahedron method fails (number of k-points < 4)、Routine TETIRR needs special values |
ISMEAR = -5 但 k 点太少或不是 Γ 中心 |
增加 k 点并用 Γ 中心网格;分子、slab、Γ 点计算改用 ISMEAR = 0 |
internal error in subroutine PRICEL |
结构对称性有数值噪声 |
用 spglib/vaspkit 602/603 整理结构;减小 SYMPREC(如 1E-6)或 ISYM = 0 |
Found some non-integer element in rotation matrix、SGRCON |
同上,或 Monkhorst–Pack 网格破坏对称性 |
改 Γ 中心网格;整理结构;必要时 ISYM = 0 |
... rotation matrix was not found (increase SYMPREC) |
对称性判定容差不合适 |
先改 Γ 中心网格,再适度增大 SYMPREC(不超过 1E-4),最后 ISYM = 0 |
POSMAP、RHOSYG 相关内部错误 |
对称性映射失败 |
调整 SYMPREC;ISYM = 0 |
PRICELV: current lattice and primitive lattice are incommensurate |
弛豫过程中晶格对称性改变 |
调整 SYMPREC;用 CONTCAR 重新开始;ISYM = 0 |
Inconsistent Bravais lattice types found for crystalline and reciprocal lattice |
对称性容差问题 |
SYMPREC = 1E-6 或更小;ISYM = 0 |
C. 电子自洽
| 错误信息 |
常见原因 |
修复 |
WARNING: Sub-Space-Matrix is not hermitian in DAV |
Davidson 对角化不稳定:原子重叠、步长过大、LREAL 误差、并行过度 |
检查结构;LREAL = .FALSE.;PREC = Accurate;ALGO = Normal → All;减少核数 |
Error EDDDAV: Call to ZHEGV failed |
同上,矩阵不正定 |
ALGO = All(6.5.1 起可加 ISEARCH = 1);删除 CHGCAR/WAVECAR 从头开始;减小 POTIM |
WARNING in EDDRMM: call to ZHEGV failed |
RMM-DIIS(ALGO = Fast/VeryFast)不稳定 |
ALGO = Normal;减小 POTIM;从头开始 |
ERROR in subspace rotation PSSYEVX / PDSYEVX |
ScaLAPACK 子空间旋转失败 |
ALGO = Normal;调整并行(NCORE);必要时关闭 ScaLAPACK(LSCALAPACK = .FALSE.) |
BRMIX: very serious problems the old and the new charge density differ |
读入了不匹配的 CHGCAR;对称性判定不一致;混合不稳定 |
删除 CHGCAR/WAVECAR;ISYM = 0 或调整 SYMPREC;改 Γ 中心网格;尝试 IMIX = 1 |
EDWAV: internal error, the gradient is not orthogonal |
编译优化或数值问题、ALGO 组合不当 |
换 ALGO = Normal;检查编译(降低优化等级);减少核数 |
| 达到 NELM 仍未收敛(OSZICAR 中 dE 振荡) |
金属/磁性体系混合困难;初始磁矩不合理;SIGMA 太小 |
增大 NELM;ALGO = All;调 AMIX/BMIX(或 AMIX_MAG/BMIX_MAG);合理设置 MAGMOM;DFT+U 加 LMAXMIX |
One of the lattice vectors is very long (>50 A), but AMIN is rather large |
长轴 slab/真空方向很长 |
AMIN = 0.01 |
WARNING: Your highest band is occupied at some k-points! |
NBANDS 太少(金属或高温 smearing) |
增大 NBANDS(约 1.2–1.5 倍) |
The number of bands has been changed from X to Y |
为适配并行,VASP 自动增加了 NBANDS |
一般无害;LOBSTER/LOPTICS/续算 MLFF 时手动设 NBANDS 为能带组数(ranks/KPAR/NCORE)的整数倍 |
ERROR RSPHER、REAL_OPTLAY: internal error |
实空间投影(LREAL)在某些体系/网格下失败 |
LREAL = .FALSE. |
Spin polarized Harris functional dynamics is a good joke |
ICHARG ≥ 10、ISPIN = 2 且 NSW > 0 |
非自洽计算设 NSW = 0 |
D. 离子弛豫与动力学
| 错误信息 |
常见原因 |
修复 |
ZBRENT: fatal error in bracketing |
共轭梯度线搜索失败:离极小点很远、受力噪声大(SCF 精度不足) |
cp CONTCAR POSCAR 续算;EDIFF 收紧到 1E-6、NELMIN = 6–8;减小 POTIM;改 IBRION = 1 或 VTST FIRE(IBRION = 3、POTIM = 0、IOPT = 7) |
BRIONS problems: POTIM should be increased |
IBRION = 1 步长不合适 |
略增 POTIM,或改 IBRION = 2 |
LAPACK: Routine ZPOTRF failed |
原子过近(第一步)或步长过大(后续步);小体系 NCORE 过大 |
检查结构;减小 POTIM;ISYM = 0;小体系减小 NCORE |
| 优化后体积偏小/偏大 |
Pulay 应力,ENCUT 太低 |
ENCUT ≥ 1.3×ENMAX;用 CONTCAR 重新优化直到体积不变 |
| 结构"乱飞"、能量突然升高 |
POTIM 太大;MD 中 POTIM 对含 H 体系过大 |
减小 POTIM;MD 含 H 时用 0.5–1 fs |
| NEB 图像间距异常、不收敛 |
初末态原子顺序不一致;进程数不能被 IMAGES 整除;过早打开 CI |
dist.pl 检查;进程数取 IMAGES 的整数倍;先普通 NEB 再 LCLIMB = .TRUE. |
E. 特定功能
| 错误信息 |
常见原因 |
修复 |
ELF: KPAR>1 not implemented |
ELF 不支持 k 点并行 |
KPAR = 1(并设 NPAR = 1) |
WARNING: ELF not implemented for non collinear case |
非共线计算 |
用共线计算求 ELF |
PEAD routines do not work for NCORE / remove the tag NPAR from the INCAR file |
LEPSILON/LCALCEPS/DFPT 不支持能带并行 |
删除 NCORE、NPAR |
DFPT(IBRION = 7/8)中 vdW 修正无效 |
DFPT 不支持 IVDW |
改用有限位移(IBRION = 5/6 或 phonopy) |
SOC 用 vasp_std 报错或 MAGMOM 个数错误 |
非共线需要 vasp_ncl,MAGMOM 每原子 3 个分量;6.5.1 之前同时设 ISPIN=2 与 LNONCOLLINEAR 会报 MAGMOM 个数错误 |
用 vasp_ncl;MAGMOM 写 3×NIONS 个数 |
| MLFF 续训报找不到 ML_AB / run 模式找不到 ML_FF |
没有把 ML_ABN 拷成 ML_AB,或没有 ML_FF |
续训前 cp ML_ABN ML_AB;cp ML_FFN ML_FF 后 ML_MODE = run |
| 6.6.0 自旋极化 meta-GGA(SCAN/r2SCAN)受力错误 |
Known issue 94 |
升级到 6.6.1,或给 6.6.0 打官方 pot.F.patch 后重新编译 |
F. 资源与环境
| 现象 |
常见原因 |
修复 |
forrtl: severe (174): SIGSEGV, segmentation fault occurred |
栈空间不足;内存不足;编译/库不匹配 |
作业脚本中 ulimit -s unlimited;减少每节点进程数;检查 MPI 与编译器版本 |
作业被杀(OOM、Killed、exit code 137) |
内存不足 |
增大 NCORE、减小 KPAR;每节点少放进程;减小 NBANDS/ENCUT 或换节点 |
M_divide: can not subdivide N nodes by M |
NCORE/NPAR/KPAR 与进程数不整除 |
选用进程数的因子 |
| GPU 版本很慢 |
每块 GPU 多个 MPI 进程;设了 NCORE>1 |
每块 GPU 1 个 rank,用 OpenMP 线程;KPAR = GPU 数;适当增大 NSIM |