科研计算报错速查

同一份日志,有人在群里发问,有人已经在改参数了。这一页把三本手册里的 59 条错误原文放在一起——按你日志里的那行字找,点进去就是原因和改法。

VASP 24 条 · Gaussian 19 条 · LAMMPS 16 条 | 最后更新 2026-10-17

VASP(24 条)

错误原文在说什么
Error in opening the compiled module file编译器读不到或读到了过期的 .mod 接口文件。
undefined reference to `dgemm_'(或 zgemm_、daxpy_)链接阶段找不到 BLAS 里的函数实现。
cannot find -lopenblas(或 -lfftw3、-lhdf5)链接器在默认搜索路径里找不到这个库。
relocation R_X86_64_32 against `.rodata' can not be used when making a shared object用非位置无关的方式编译了要装进共享库的代码。
gfortran: error: unrecognized command line option '-mkl'用 GNU 编译器传了 Intel 专用的选项。
LAPACK: Routine ZPOTRF failed! 1电子步计算里出现非正定的矩阵,多半是几何本身有问题。
ZBRENT: fatal: unable to find root离子步在能量面插值时找不到根。
Error EDDDAV: Call to ZHEGV failedDavidson 对角化失败,电子步走不下去。
BRMIX: very serious problems the old and new charge densities are not consistent电荷密度混合振荡,两次迭代差太多。
sub-space matrix is not hermitian子空间矩阵失去了厄米性,通常来自并行分组或数值噪声。
internal error in subroutine SGRCON(或 space group not found)对称性识别失败。
WARNING: DENTET: can't reach specified precision四面体法(ISMEAR=-5)的积分精度不够。
Error reading WAVECAR / WAVECAR: inconsistent续算时波函数文件损坏或与当前设置不匹配。
The number of bands (NBANDS) is not enough能带数不够容纳所有被占据态。
进程直接消失,日志没有报错,dmesg 里出现 Killed process ... (vasp)被内核 OOM killer 杀了——不是 VASP 的问题,是内存不够。
forrtl: severe (41): insufficient virtual memory(或 malloc failed)进程申请内存失败。
No space left on device磁盘写满。
mpirun: command not found(或 mpif90 与 mpirun 版本不一致)MPI 环境没加载,或混用了两套 MPI。
There are not enough slots available in the system申请的进程数超过了可用核数。
多节点任务卡死、几十分钟没有一行输出跨节点通信没有真正建立起来。
电子步跑满 NELM 仍未收敛(OUTCAR 里没有 "aborting loop because EDIFF is reached")自洽迭代在限定步数内没收住。
离子步力一直震荡、不判收敛几何优化在平衡位置附近来回摆。
续算后能量整体跳变、元素顺序不对劲POTCAR 的元素顺序与 POSCAR 不一致。
能带/态密度算出来能隙明显不对非自洽步骤的设置与自洽步骤不一致。

Gaussian(19 条)

错误原文在说什么
End of file in reading ...(或 Error termination in NtrErr)程序在读输入文件时提前遇到了文件结尾。
Error termination via Lnk1e in /opt/g16/l1.exel1 在读输入时就失败了。
No such file or directory ... .chk(或 chk 文件读不出)指定的 checkpoint 文件不存在或路径不对。
Convergence failure -- run terminated.(结尾还有 Error termination request processed by link 9999)优化在给定步数内没有收敛。9999 只是收尾,真正的原因在此之前。
Berny optimization failed / Number of steps exceeded, NStep=...Berny 算法认为这个优化已经走不下去了。
Problem with the distance matrix.两个原子之间的距离异常(重叠或过远)。
Large curvature ...(优化在两步之间反复横跳、能量来回抖)RFO/Berny 在曲率很大的方向上迈步过大。
(不是报错,但结果不能信)Frequencies 里出现虚频频率计算给出负的振动频率,说明这个结构不是能量极小点。
>>>>>>>>>> Convergence criterion not met.(没有 SCF Done)自洽场迭代到上限仍未收敛。
Charge and multiplicity are incompatible. / The combination of charge and multiplicity is impossible你给的电荷与自旋多重度的电子数奇偶不符。
Symmetry error(报错里提到 symmetry)程序按对称性处理结构时出了矛盾。
CPHF did not converge(算极化率、频率时出现)耦合微扰 Hartree-Fock 迭代不收敛。
galloc: could not allocate memory.(或 Unable to allocate memory)程序申请不到你要的内存。
进程直接消失、日志无错误、dmesg 里有 Killed process被内核 OOM killer 杀掉。
Erroneous Write. Write 0 instead of ...(或 fd = 0)写临时文件(.rwf/.int)失败。
No space left on device / disk quota exceeded临时文件把盘写爆了。
There are not enough slots available(或 %nprocshared 设太大导致极慢/报错)申请的核数超过机器可用核数。
Standard basis: ... not available for atom ...(或 basis set not found)你选的基组没有为某个元素定义。
Error reading ECP / pseudopotential 相关报错赝势文件读不出来。

LAMMPS(16 条)

错误原文在说什么
ERROR: Incorrect atom format in data filedata 文件里的原子行列数和你声明的 atom_style 对不上。
ERROR: Could not find potential file(或 Cannot open potential file)势函数文件找不到。
ERROR: Cannot open input script / file(或 Reading data file failed)输入脚本或辅助文件打不开。
ERROR: All pair coeffs are not set有原子类型没拿到 pair 系数。
ERROR: Unknown pair style(或 Unknown fix/compute style)这个功能没编译进你的可执行文件。
ERROR: Pair coeff for atom type ... not found(或 Illegal pair_coeff command)给系数时引用了不存在的原子类型,或格式不对。
ERROR: Lost atoms: original N current M (src/thermo.cpp)有原子飞出了模拟盒,程序拒绝继续。
ERROR: Out of range atoms - cannot compute PPPM长程静电的 PPPM 网格范围里找不到原子。
ERROR: Domain too small(或 Cannot use force cutoff larger than half box)力场截断半径大于盒子边长的一半。
ERROR: Too many neighbor bins(或 Neighbor list overflow)邻居列表或分箱溢出。
MPI_ABORT was invoked on rank 0 ...(后面一堆堆栈)某个进程报错后主动终止了整个任务。
ERROR: KOKKOS package requires a KOKKOS-enabled build(或 GPU 相关报错)加了 -sf gpu/-k on g,但可执行文件没编进 GPU/KOKKOS 包。
ERROR: There are not enough slots available(或 mpirun 起不来)进程数超过可用核数。
ERROR: Bond atoms 123 456 missing on proc 0 at step ...某根化学键的原子跑到了别的进程分区,找不到配对。
ERROR: Insufficient memory(或进程被内核杀掉)内存不够。
ERROR: Non-numeric argument / Illegal ... command输入脚本语法或参数类型不对。

要带到组会、或者机器断网时用?整本手册可以存成一个文件。

离线单文件版(59 条全在里面,34 KB,双击即用)→

对不上怎么办

报错对不上,按这三步走:先判断是"算错了"还是"算不动了"(进程还在但结果怪 → 数值问题;进程消失或卡死 → 资源与并行问题);再把并行降级重跑(NCORE=1、KPAR=1、单节点);最后把体系缩到 8 个原子再跑一次。

这三条顺序在 VASP、Gaussian、LAMMPS 三本手册末尾都有展开。参数写错导致的报错,先用 INCAR 检查器 过一遍,能省掉一半的排查。

算力不够导致的报错(OOM、卡死、超时),多半是规格选小了。

看看阿里云 ECS 的规格与价格 →

要买的话:先点上面的推广链接登录或注册,再回到本页点一次同一条链接——阿里云按「两次点击」建立推广关联(关联期 90 天),你的价格不受任何影响。