科研计算报错速查 · 离线版

59 条 · VASP 24 · Gaussian 19 · LAMMPS 16 | 输入报错里的任意词即可过滤,无需联网

VASP Error in opening the compiled module file

在说什么编译器读不到或读到了过期的 .mod 接口文件。

为什么改过源码、换过编译器版本、或之前编译中断过,src 目录里残留了旧模块。

怎么改先 make clean 再 make all;如果还报,手工删掉 src 下所有 .mod 文件重编。不要只删中间目录。

VASP undefined reference to `dgemm_'(或 zgemm_、daxpy_)

在说什么链接阶段找不到 BLAS 里的函数实现。

为什么库没链上,或链接顺序不对——静态链接时库必须放在目标文件之后,且依赖关系要从下层往上写。

怎么改确认 ldconfig -p | grep blas 有实现;在 Makefile.include 里把 BLAS/LAPACK 放到 LIBM 之前、所有 .o 之后。

VASP cannot find -lopenblas(或 -lfftw3、-lhdf5)

在说什么链接器在默认搜索路径里找不到这个库。

为什么库装在了非标准路径(如 /opt),或只装了运行时包没装开发包。

怎么改装开发包(apt install libopenblas-dev / dnf install openblas-devel);非标准路径用 -L/opt/某路径/lib 加进 LDFLAGS。

VASP relocation R_X86_64_32 against `.rodata' can not be used when making a shared object

在说什么用非位置无关的方式编译了要装进共享库的代码。

为什么缺少 -fPIC,或链接时把静态对象混进了 .so。

怎么改在 FLAGS/FFLAGS 里加 -fPIC 后 make clean && make all。

VASP gfortran: error: unrecognized command line option '-mkl'

在说什么用 GNU 编译器传了 Intel 专用的选项。

为什么Makefile.include 是照 Intel 版本抄的,但用的是 gfortran;或者反过来。

怎么改整套工具链必须一致:Intel 编译器配 Intel MKL 与 Intel MPI,gfortran 配 OpenBLAS 与 OpenMPI。混搭时换一份对应的 Makefile.include 模板。

VASP LAPACK: Routine ZPOTRF failed! 1

在说什么电子步计算里出现非正定的矩阵,多半是几何本身有问题。

为什么两个原子靠得太近(重叠),或初始结构的对称性/坐标写错;也可能是 POSCAR 与 POTCAR 的元素顺序对不上。

怎么改先看最短键长:任意两个原子间距 < 0.5 Å 基本就能确定;用可视化工具打开 CONTCAR 看一眼。修法是把结构先粗松弛一遍(POTIM=0.2, ISIF=2),或修正重叠原子。

VASP ZBRENT: fatal: unable to find root

在说什么离子步在能量面插值时找不到根。

为什么POTIM 太大一步跨过了势垒;或初始结构离平衡位置太远;能量面本身不平滑。

怎么改POTIM 降到 0.2~0.3,IBRION 保持 2;仍失败就先用共轭梯度(IBRION=1)走几步再切回。

VASP Error EDDDAV: Call to ZHEGV failed

在说什么Davidson 对角化失败,电子步走不下去。

为什么常见三因:初始磁矩设置不当(MAGMOM 与该体系差太远)、结构重叠、ALGO=Fast/VeryFast 太激进。

怎么改先换 ALGO=Normal 重跑;再把 AMIX=0.2、BMIX=0.0001 加上;磁性体系把 MAGMOM 设成合理的初值(如过渡金属 2~5 μB)。

VASP BRMIX: very serious problems the old and new charge densities are not consistent

在说什么电荷密度混合振荡,两次迭代差太多。

为什么混合参数太激进,或体系本身接近简并(金属、强关联)。

怎么改退化到保守设置:ALGO=Normal、AMIX=0.2、BMIX=0.0001、NELMDL=-6;金属体系可以先用 ISMEAR=1、SIGMA=0.2 跑稳再收紧。

VASP sub-space matrix is not hermitian

在说什么子空间矩阵失去了厄米性,通常来自并行分组或数值噪声。

为什么KPAR/NCORE 的分组方式与 k 点分配冲突;极少见的情况是硬件(内存位翻转)。

怎么改把 NCORE=1、KPAR=1 重跑同一算例。若正常,说明是并行配置问题,再逐步加回并行参数定位。

VASP internal error in subroutine SGRCON(或 space group not found)

在说什么对称性识别失败。

为什么POSCAR 坐标的数值精度不够,导致本该等价的原子被判成不等价。

怎么改提高 POSCAR 坐标位数(至少 10 位小数);或直接 ISYM=0 关掉对称性(代价是慢一些,但不会再因对称性失败)。

VASP WARNING: DENTET: can't reach specified precision

在说什么四面体法(ISMEAR=-5)的积分精度不够。

为什么k 点网格太稀,或体系里有近简并能级。

怎么改加大 k 网格;或改 ISMEAR=0 配 SIGMA=0.05。注意 ISMEAR=-5 也不能用于有离子步的计算。

VASP Error reading WAVECAR / WAVECAR: inconsistent

在说什么续算时波函数文件损坏或与当前设置不匹配。

为什么上次任务被 kill 或磁盘写满,留下截断的文件;或 ENCUT/体系/核数变了。

怎么改删掉 WAVECAR 用 ISTART=0 从头算;要续算就必须保证 ENCUT、体系、NBANDS 完全一致。

VASP The number of bands (NBANDS) is not enough

在说什么能带数不够容纳所有被占据态。

为什么金属体系、加 U、或有未占据态需要时,默认 NBANDS 不够。

怎么改NBANDS 提高 20~30%,金属体系再多给一些;用 grep NBANDS OUTCAR 看实际用了多少。

VASP 进程直接消失,日志没有报错,dmesg 里出现 Killed process ... (vasp)

在说什么被内核 OOM killer 杀了——不是 VASP 的问题,是内存不够。

为什么内存估小了。平面波 DFT 的内存随原子数、k 点数、NBANDS 增长,常见低估 3~4 倍。

怎么改用 dmesg | grep -i "killed process" 确认;按 0.5~1 GB/原子估,或用站内的内存估算器重算;临时缓解可减 k 点并行、调 NCORE。

VASP forrtl: severe (41): insufficient virtual memory(或 malloc failed)

在说什么进程申请内存失败。

为什么实际内存不够,或 ulimit 的栈/虚拟内存限制太低(常见于用 shell 脚本提交任务、没继承登录环境的 limits)。

怎么改先 ulimit -s unlimited;再把任务提交脚本里补上同样的设置;硬件不够就换更大的规格。

VASP No space left on device

在说什么磁盘写满。

为什么WAVECAR/CHGCAR 每步都写,几百原子体系一个 WAVECAR 就能几十 GB;scratch 目录放在系统盘上时尤其容易爆。

怎么改关掉不必要的输出:LWAVE = .FALSE.、LCHARG = .FALSE.;scratch 挂到数据盘(df -h /scratch 确认)。

VASP mpirun: command not found(或 mpif90 与 mpirun 版本不一致)

在说什么MPI 环境没加载,或混用了两套 MPI。

为什么VASP 用 OpenMPI 编译,运行时却调了 Intel MPI 的 mpirun(或反之)。

怎么改which mpirun mpif90 看两者是否同一前缀;用 mpirun --version 与 mpif90 -show 交叉确认。

VASP There are not enough slots available in the system

在说什么申请的进程数超过了可用核数。

为什么-np 写大了;或跨节点时没给 hostfile/机器列表,OpenMPI 只看到本机。

怎么改按实际核数写 -np;跨节点用 --hostfile 或 --map-by node;单机超订(不推荐)才用 --oversubscribe。

VASP 多节点任务卡死、几十分钟没有一行输出

在说什么跨节点通信没有真正建立起来。

为什么NSIM/KPAR 的分组跨了节点;或节点间内网带宽不足;或节点上有一台已经挂了。

怎么改跨节点时不要开 NSIM,KPAR 设成等于节点数或 1;先用 mpirun -np 2 hostname 验证两节点能通信,再跑真任务。

VASP 电子步跑满 NELM 仍未收敛(OUTCAR 里没有 "aborting loop because EDIFF is reached")

在说什么自洽迭代在限定步数内没收住。

为什么初始电荷太差、混合参数不合适、体系接近简并、或 NELM 太小。

怎么改NELM 提到 200;试 ALGO=Damped + AMIX=0.2 + BMIX=0.0001;金属先用 ISMEAR=1 起。

VASP 离子步力一直震荡、不判收敛

在说什么几何优化在平衡位置附近来回摆。

为什么EDIFFG 定得太严(比如 -0.001)、用了 ISMEAR=-5、或 POTIM 太大。

怎么改EDIFFG 放到 -0.02(力判据);确认 ISMEAR 不是 -5;POTIM 0.3~0.5;这一步通常能立刻收敛。

VASP 续算后能量整体跳变、元素顺序不对劲

在说什么POTCAR 的元素顺序与 POSCAR 不一致。

为什么CONTCAR 里的元素顺序可能与原 POSCAR 相同,但拼 POTCAR 时顺序搞错了(尤其是有掺杂、替换原子的体系)。

怎么改head -7 POSCAR 与 grep VRHFIN POTCAR 逐行对照,顺序必须完全一致;每次续算都核对一次。

VASP 能带/态密度算出来能隙明显不对

在说什么非自洽步骤的设置与自洽步骤不一致。

为什么ENCUT、k 点、ISMEAR 在两步之间被改了;或静态计算的 CHGCAR 来自不同结构。

怎么改两步的 ENCUT/POTCAR/结构必须完全一致,只改 ISTART=1、ICHARG=11 与 k 点路径。

Gaussian End of file in reading ...(或 Error termination in NtrErr)

在说什么程序在读输入文件时提前遇到了文件结尾。

为什么输入文件末尾缺少空行。Gaussian 要求分子坐标之后必须有恰好一个空行才开始命令行;空行多了或少了一行都读不对。

怎么改在输入文件最后补一个空行(tail -c 20 你的.gjf | od -c 能看到结尾是不是两个换行)。用 Windows 编辑过的文件还可能有 CRLF 问题,用 dos2unix 处理一下。

Gaussian Error termination via Lnk1e in /opt/g16/l1.exe

在说什么l1 在读输入时就失败了。

为什么最常见是 %chk、%mem、%nprocshared 的行格式不对(% 开头的行必须在最前面、不能有空行隔开),或 %chk 指向的目录没有写权限。

怎么改把 %chk/%mem/%nprocshared 放在第一段,格式写成 %chk=/scratch/xxx.chk;确认目录存在且可写(touch /scratch/test)。

Gaussian No such file or directory ... .chk(或 chk 文件读不出)

在说什么指定的 checkpoint 文件不存在或路径不对。

为什么%chk 用了相对路径,而任务是从别的目录提交的;或上一轮任务失败没生成 chk。

怎么改一律写绝对路径;续算前用 ls -l 确认 chk 存在且大小不为 0。

Gaussian Convergence failure -- run terminated.(结尾还有 Error termination request processed by link 9999)

在说什么优化在给定步数内没有收敛。9999 只是收尾,真正的原因在此之前。

为什么步数不够(默认约 100 步)、初始结构太差、或每一步的力/位移判据太严(opt=tight)。

怎么改先 opt=(maxcycle=200);仍不收敛就 opt=(calcfc,maxstep=10) 给小步长并让它自己算 Hessian;初始结构先用分子力学或低精度方法预优化。

Gaussian Berny optimization failed / Number of steps exceeded, NStep=...

在说什么Berny 算法认为这个优化已经走不下去了。

为什么初始结构有严重原子重叠、坐标太差、或者势能面本身不平滑(近简并、强相关体系)。

怎么改换初始结构(从晶体或实验结构取,或先做 MMFF/UFF 预优化);加 opt=(cartesian);必要时改用 opt=(ef) 或分步走。

Gaussian Problem with the distance matrix.

在说什么两个原子之间的距离异常(重叠或过远)。

为什么结构里有原子几乎重合,或 Z-matrix 里写了不可能的角度/二面角。

怎么改打开结构看最短距离,小于 0.5 埃就是重叠;从 xyz 重新生成输入,不要手改 Z-matrix。

Gaussian Large curvature ...(优化在两步之间反复横跳、能量来回抖)

在说什么RFO/Berny 在曲率很大的方向上迈步过大。

为什么接近过渡态、或有柔性很大的二面角。

怎么改opt=(maxstep=5) 或 opt=(quadratic);也可以先用 opt=loose 走到大致谷底,再用 opt=tight 精修。

Gaussian (不是报错,但结果不能信)Frequencies 里出现虚频

在说什么频率计算给出负的振动频率,说明这个结构不是能量极小点。

为什么优化没真正收敛,判据太松;或者它本来就是鞍点。

怎么改先用 opt=(tight) 重优化,频率必须与 opt 同一理论水平;仍有虚频就沿虚频方向扰动后重优化。

Gaussian >>>>>>>>>> Convergence criterion not met.(没有 SCF Done)

在说什么自洽场迭代到上限仍未收敛。

为什么初始猜测差、体系近简并(过渡金属、开壳层、双自由基)、或方法与基组组合本身难收敛。

怎么改阶梯式收敛:scf=(maxcycle=512)、scf=(xqc)、scf=(conver=6);开壳层用 guess=mix;先用小基组(STO-3G/3-21G)跑通再换大基组。

Gaussian Charge and multiplicity are incompatible. / The combination of charge and multiplicity is impossible

在说什么你给的电荷与自旋多重度的电子数奇偶不符。

为什么电子数 = 各原子核电荷之和 − 电荷。偶数必须配单重态或三重态,奇数必须配双重态或四重态。

怎么改数一遍电子;阴离子和自由基体系最容易算错。加 #p 看输出里的电子数。

Gaussian Symmetry error(报错里提到 symmetry)

在说什么程序按对称性处理结构时出了矛盾。

为什么输入的对称性判断与坐标系不一致,或结构被对称性强行套错。

怎么改加 nosymm 关掉对称性(慢一些,但不会再因对称性失败);或把坐标写成高精度。

Gaussian CPHF did not converge(算极化率、频率时出现)

在说什么耦合微扰 Hartree-Fock 迭代不收敛。

为什么SCF 本身不够紧,或体系近简并。

怎么改加 scf=(tight)、int=ultrafine;或先用 scf=(maxcycle=512) 把 SCF 收干净。

Gaussian galloc: could not allocate memory.(或 Unable to allocate memory)

在说什么程序申请不到你要的内存。

为什么%mem 写太大(超过物理内存),或与 %nprocshared 的组合让单个进程超限;也可能是 ulimit 限制。

怎么改先把 %mem 降到物理内存的 60~70% 试;多核任务里 %mem 是总量不是每核;用 free -g 看真实可用,别把 swap 当内存。

Gaussian 进程直接消失、日志无错误、dmesg 里有 Killed process

在说什么被内核 OOM killer 杀掉。

为什么内存估小了。Gaussian 的内存需求随基函数数目近似三次增长,大基组加大体系很容易翻倍。

怎么改用 dmesg | grep -i "killed process" 确认;按基函数数估内存(见 Gaussian 配置);临时办法是降低 %nprocshared 并减小 %mem,让它跑慢一点而不是被杀。

Gaussian Erroneous Write. Write 0 instead of ...(或 fd = 0)

在说什么写临时文件(.rwf/.int)失败。

为什么磁盘满了,或者 ulimit -f 限制了单文件大小。

怎么改用 df -h $GAUSS_SCRDIR 看空间;把 GAUSS_SCRDIR 指到大容量数据盘;ulimit -f unlimited 后再跑。

Gaussian No space left on device / disk quota exceeded

在说什么临时文件把盘写爆了。

为什么Gaussian 的 .rwf 可以到几十 GB(频率、大基组、IRC 尤其),scratch 却放在系统盘。

怎么改scratch 必须挂数据盘;频率或 IRC 前先估:基函数数 × 100 字节量级 × 步数。清理旧的 .rwf/.chk 也要纳入日常。

Gaussian There are not enough slots available(或 %nprocshared 设太大导致极慢/报错)

在说什么申请的核数超过机器可用核数。

为什么%nprocshared 写成了别的机器规格;或共享机器时核数被占满。

怎么改按 nproc 或 lscpu 的实际核数写;共享机器上留 1~2 核给系统。

Gaussian Standard basis: ... not available for atom ...(或 basis set not found)

在说什么你选的基组没有为某个元素定义。

为什么重元素(如 I、Au、Pt)在 Pople 系列基组里常常缺失;或加了弥散/极化函数后该元素没有对应定义。

怎么改换 def2 系列(def2-SVP/def2-TZVP 覆盖面最全),或对重元素用 LANL2DZ 等含赝势的基组;也可用 gen 混合基组,逐个元素给定义。

Gaussian Error reading ECP / pseudopotential 相关报错

在说什么赝势文件读不出来。

为什么自定义 ECP 的路径不对,或用了需要额外赝势库的元素却没给。

怎么改内置赝势(LANL2DZ、SDD)不需要额外文件,直接写关键字即可;自定义 ECP 要确认 genecp 段落格式(元素名后紧跟 ECP 定义,末尾再一个空行)。

LAMMPS ERROR: Incorrect atom format in data file

在说什么data 文件里的原子行列数和你声明的 atom_style 对不上。

为什么最常见:用 atom_style atomic(每行 5 列)读了 atom_style full(7 列以上)的 data 文件,或反过来。也有 data 文件里多了一列 image flag 的情况。

怎么改先看 head -20 你的.data 数一遍列数,再确认输入里 atom_style 是哪一种;分子体系要 atom_style full 并保证 data 文件带 charge 与分子 ID。

LAMMPS ERROR: Could not find potential file(或 Cannot open potential file)

在说什么势函数文件找不到。

为什么路径是相对当前工作目录的——你在别的目录提交任务,相对路径就失效了。

怎么改一律写绝对路径:pair_coeff * * /scratch/pot/Si.sw Si;或把势文件放任务目录。LAMMPS 不会去别处搜。

LAMMPS ERROR: Cannot open input script / file(或 Reading data file failed)

在说什么输入脚本或辅助文件打不开。

为什么文件名拼错、路径相对、文件权限不对;或路径里有空格没加引号。

怎么改用 ls -l 确认文件存在;脚本里统一用绝对路径;带空格的路径加引号。

LAMMPS ERROR: All pair coeffs are not set

在说什么有原子类型没拿到 pair 系数。

为什么多元素或混合体系里只给了一部分;或元素顺序与 data 文件里的 type 不对应(type 1 是 Si 还是 O,很容易搞反)。

怎么改用 pair_coeff * * 一次给全,或逐个 type 给;先用 dump 或 print 确认每种 type 对应的元素。混合体系要用 pair_style hybrid,且每个子样式单独给系数。

LAMMPS ERROR: Unknown pair style(或 Unknown fix/compute style)

在说什么这个功能没编译进你的可执行文件。

为什么manybody、reaxff、meam、mliap、kokkos、gpu 等都在可选包里,默认不编。

怎么改回到源码目录 make yes-包名 再 make 目标;已装好的二进制可先 lmp -h | grep -i 包名 看是否支持。

LAMMPS ERROR: Pair coeff for atom type ... not found(或 Illegal pair_coeff command)

在说什么给系数时引用了不存在的原子类型,或格式不对。

为什么data 文件里 type 只有 1、2,但命令里写了 3;或 manybody 势要求系数个数与元素数一致。

怎么改核对 data 文件里的类型数(grep -A2 Masses 你的.data),系数行按类型顺序逐个给。

LAMMPS ERROR: Lost atoms: original N current M (src/thermo.cpp)

在说什么有原子飞出了模拟盒,程序拒绝继续。

为什么四类原因:时间步长太大、初始结构有原子重叠、边界条件设错(本该 pbc 却用 fixed)、温度远超合理值。

怎么改先 minimize 再跑;dt 从 0.5 fs 起;检查 boundary 设置;用 velocity create 后先跑 100 步 NVE 看温度是否正常,丢原子会立刻暴露。

LAMMPS ERROR: Out of range atoms - cannot compute PPPM

在说什么长程静电的 PPPM 网格范围里找不到原子。

为什么原子移动过快或超出 PPPM 允许的位移(超过盒子网格),通常是 dt 太大或约束没加。

怎么改加 comm_modify vel yes;减小 dt;增大 neighbor skin(neighbor 2.0 bin);必要时改 kspace_modify 的网格。

LAMMPS ERROR: Domain too small(或 Cannot use force cutoff larger than half box)

在说什么力场截断半径大于盒子边长的一半。

为什么建盒时没考虑截断:cutoff 10 埃要求盒边长至少 20 埃(有分子还要加尺寸)。

怎么改放大盒子(create_box 前规划好尺寸),或减小 pair 的 cutoff;不要靠 fix 硬撑。

LAMMPS ERROR: Too many neighbor bins(或 Neighbor list overflow)

在说什么邻居列表或分箱溢出。

为什么密度极高、neighbor skin 太小、或并行分区与 bin 尺寸冲突。

怎么改加大 neighbor 2.0 bin;用 neigh_modify delay 0 every 1 check yes 频繁重建;极端密度下换 atom_modify sort 调优。

LAMMPS MPI_ABORT was invoked on rank 0 ...(后面一堆堆栈)

在说什么某个进程报错后主动终止了整个任务。

为什么真正的错误信息在 MPI_ABORT 之前——通常就在 rank 0 的日志前面几行。

怎么改搜 log 里第一个 ERROR:,不要从 MPI_ABORT 往下看;打开 -echo screen 与 -log 看哪条命令最先失败。

LAMMPS ERROR: KOKKOS package requires a KOKKOS-enabled build(或 GPU 相关报错)

在说什么加了 -sf gpu/-k on g,但可执行文件没编进 GPU/KOKKOS 包。

为什么用的是发行版或别人编的二进制,只含基础包。

怎么改lmp -h | grep -i -E 'gpu|kokkos' 先确认;没有就自己编(make yes-gpu / yes-kokkos)或用官方 GPU 镜像。云上买 GPU 实例却跑 CPU 版,是最常见的白花钱方式。

LAMMPS ERROR: There are not enough slots available(或 mpirun 起不来)

在说什么进程数超过可用核数。

为什么-np 按物理机核数写,但容器或 cgroup 限了 CPU;或跨节点没给 hostfile。

怎么改nproc 看实际可用;容器里注意 CPU 限额;跨节点用 --hostfile。

LAMMPS ERROR: Bond atoms 123 456 missing on proc 0 at step ...

在说什么某根化学键的原子跑到了别的进程分区,找不到配对。

为什么原子跑得太远(键被拉伸到断裂),本质和 Lost atoms 同源:dt 太大或势参数不合适。

怎么改同 Lost atoms 的处理;分子体系还要检查 bond 系数是否给了(bond_coeff),缺系数会算出离谱的力。

LAMMPS ERROR: Insufficient memory(或进程被内核杀掉)

在说什么内存不够。

为什么体系原子数 × 邻居数 × 每原子开销估小了;neighbor skin 加大也会显著涨内存。

怎么改按每原子 300~800 字节估(含邻居表与通信缓冲);dmesg | grep -i killed 确认是否 OOM;减邻居 skin 或换更大内存实例。

LAMMPS ERROR: Non-numeric argument / Illegal ... command

在说什么输入脚本语法或参数类型不对。

为什么变量没展开($x 为空)、单位写错、行内有隐藏字符(从网页复制的空格)。

怎么改用 -echo both 看实际解析到的行;cat -A 输入文件 查不可见字符;变量用 variable 显式定义。