Error in opening the compiled module file在说什么编译器读不到或读到了过期的 .mod 接口文件。
为什么改过源码、换过编译器版本、或之前编译中断过,src 目录里残留了旧模块。
怎么改先 make clean 再 make all;如果还报,手工删掉 src 下所有 .mod 文件重编。不要只删中间目录。
undefined reference to `dgemm_'(或 zgemm_、daxpy_)在说什么链接阶段找不到 BLAS 里的函数实现。
为什么库没链上,或链接顺序不对——静态链接时库必须放在目标文件之后,且依赖关系要从下层往上写。
怎么改确认 ldconfig -p | grep blas 有实现;在 Makefile.include 里把 BLAS/LAPACK 放到 LIBM 之前、所有 .o 之后。
cannot find -lopenblas(或 -lfftw3、-lhdf5)在说什么链接器在默认搜索路径里找不到这个库。
为什么库装在了非标准路径(如 /opt),或只装了运行时包没装开发包。
怎么改装开发包(apt install libopenblas-dev / dnf install openblas-devel);非标准路径用 -L/opt/某路径/lib 加进 LDFLAGS。
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。
gfortran: error: unrecognized command line option '-mkl'在说什么用 GNU 编译器传了 Intel 专用的选项。
为什么Makefile.include 是照 Intel 版本抄的,但用的是 gfortran;或者反过来。
怎么改整套工具链必须一致:Intel 编译器配 Intel MKL 与 Intel MPI,gfortran 配 OpenBLAS 与 OpenMPI。混搭时换一份对应的 Makefile.include 模板。
LAPACK: Routine ZPOTRF failed! 1在说什么电子步计算里出现非正定的矩阵,多半是几何本身有问题。
为什么两个原子靠得太近(重叠),或初始结构的对称性/坐标写错;也可能是 POSCAR 与 POTCAR 的元素顺序对不上。
怎么改先看最短键长:任意两个原子间距 < 0.5 Å 基本就能确定;用可视化工具打开 CONTCAR 看一眼。修法是把结构先粗松弛一遍(POTIM=0.2, ISIF=2),或修正重叠原子。
ZBRENT: fatal: unable to find root在说什么离子步在能量面插值时找不到根。
为什么POTIM 太大一步跨过了势垒;或初始结构离平衡位置太远;能量面本身不平滑。
怎么改POTIM 降到 0.2~0.3,IBRION 保持 2;仍失败就先用共轭梯度(IBRION=1)走几步再切回。
Error EDDDAV: Call to ZHEGV failed在说什么Davidson 对角化失败,电子步走不下去。
为什么常见三因:初始磁矩设置不当(MAGMOM 与该体系差太远)、结构重叠、ALGO=Fast/VeryFast 太激进。
怎么改先换 ALGO=Normal 重跑;再把 AMIX=0.2、BMIX=0.0001 加上;磁性体系把 MAGMOM 设成合理的初值(如过渡金属 2~5 μB)。
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 跑稳再收紧。
sub-space matrix is not hermitian在说什么子空间矩阵失去了厄米性,通常来自并行分组或数值噪声。
为什么KPAR/NCORE 的分组方式与 k 点分配冲突;极少见的情况是硬件(内存位翻转)。
怎么改把 NCORE=1、KPAR=1 重跑同一算例。若正常,说明是并行配置问题,再逐步加回并行参数定位。
internal error in subroutine SGRCON(或 space group not found)在说什么对称性识别失败。
为什么POSCAR 坐标的数值精度不够,导致本该等价的原子被判成不等价。
怎么改提高 POSCAR 坐标位数(至少 10 位小数);或直接 ISYM=0 关掉对称性(代价是慢一些,但不会再因对称性失败)。
WARNING: DENTET: can't reach specified precision在说什么四面体法(ISMEAR=-5)的积分精度不够。
为什么k 点网格太稀,或体系里有近简并能级。
怎么改加大 k 网格;或改 ISMEAR=0 配 SIGMA=0.05。注意 ISMEAR=-5 也不能用于有离子步的计算。
Error reading WAVECAR / WAVECAR: inconsistent在说什么续算时波函数文件损坏或与当前设置不匹配。
为什么上次任务被 kill 或磁盘写满,留下截断的文件;或 ENCUT/体系/核数变了。
怎么改删掉 WAVECAR 用 ISTART=0 从头算;要续算就必须保证 ENCUT、体系、NBANDS 完全一致。
The number of bands (NBANDS) is not enough在说什么能带数不够容纳所有被占据态。
为什么金属体系、加 U、或有未占据态需要时,默认 NBANDS 不够。
怎么改NBANDS 提高 20~30%,金属体系再多给一些;用 grep NBANDS OUTCAR 看实际用了多少。
进程直接消失,日志没有报错,dmesg 里出现 Killed process ... (vasp)在说什么被内核 OOM killer 杀了——不是 VASP 的问题,是内存不够。
为什么内存估小了。平面波 DFT 的内存随原子数、k 点数、NBANDS 增长,常见低估 3~4 倍。
怎么改用 dmesg | grep -i "killed process" 确认;按 0.5~1 GB/原子估,或用站内的内存估算器重算;临时缓解可减 k 点并行、调 NCORE。
forrtl: severe (41): insufficient virtual memory(或 malloc failed)在说什么进程申请内存失败。
为什么实际内存不够,或 ulimit 的栈/虚拟内存限制太低(常见于用 shell 脚本提交任务、没继承登录环境的 limits)。
怎么改先 ulimit -s unlimited;再把任务提交脚本里补上同样的设置;硬件不够就换更大的规格。
No space left on device在说什么磁盘写满。
为什么WAVECAR/CHGCAR 每步都写,几百原子体系一个 WAVECAR 就能几十 GB;scratch 目录放在系统盘上时尤其容易爆。
怎么改关掉不必要的输出:LWAVE = .FALSE.、LCHARG = .FALSE.;scratch 挂到数据盘(df -h /scratch 确认)。
mpirun: command not found(或 mpif90 与 mpirun 版本不一致)在说什么MPI 环境没加载,或混用了两套 MPI。
为什么VASP 用 OpenMPI 编译,运行时却调了 Intel MPI 的 mpirun(或反之)。
怎么改which mpirun mpif90 看两者是否同一前缀;用 mpirun --version 与 mpif90 -show 交叉确认。
There are not enough slots available in the system在说什么申请的进程数超过了可用核数。
为什么-np 写大了;或跨节点时没给 hostfile/机器列表,OpenMPI 只看到本机。
怎么改按实际核数写 -np;跨节点用 --hostfile 或 --map-by node;单机超订(不推荐)才用 --oversubscribe。
多节点任务卡死、几十分钟没有一行输出在说什么跨节点通信没有真正建立起来。
为什么NSIM/KPAR 的分组跨了节点;或节点间内网带宽不足;或节点上有一台已经挂了。
怎么改跨节点时不要开 NSIM,KPAR 设成等于节点数或 1;先用 mpirun -np 2 hostname 验证两节点能通信,再跑真任务。
电子步跑满 NELM 仍未收敛(OUTCAR 里没有 "aborting loop because EDIFF is reached")在说什么自洽迭代在限定步数内没收住。
为什么初始电荷太差、混合参数不合适、体系接近简并、或 NELM 太小。
怎么改NELM 提到 200;试 ALGO=Damped + AMIX=0.2 + BMIX=0.0001;金属先用 ISMEAR=1 起。
离子步力一直震荡、不判收敛在说什么几何优化在平衡位置附近来回摆。
为什么EDIFFG 定得太严(比如 -0.001)、用了 ISMEAR=-5、或 POTIM 太大。
怎么改EDIFFG 放到 -0.02(力判据);确认 ISMEAR 不是 -5;POTIM 0.3~0.5;这一步通常能立刻收敛。
续算后能量整体跳变、元素顺序不对劲在说什么POTCAR 的元素顺序与 POSCAR 不一致。
为什么CONTCAR 里的元素顺序可能与原 POSCAR 相同,但拼 POTCAR 时顺序搞错了(尤其是有掺杂、替换原子的体系)。
怎么改head -7 POSCAR 与 grep VRHFIN POTCAR 逐行对照,顺序必须完全一致;每次续算都核对一次。
能带/态密度算出来能隙明显不对在说什么非自洽步骤的设置与自洽步骤不一致。
为什么ENCUT、k 点、ISMEAR 在两步之间被改了;或静态计算的 CHGCAR 来自不同结构。
怎么改两步的 ENCUT/POTCAR/结构必须完全一致,只改 ISTART=1、ICHARG=11 与 k 点路径。
End of file in reading ...(或 Error termination in NtrErr)在说什么程序在读输入文件时提前遇到了文件结尾。
为什么输入文件末尾缺少空行。Gaussian 要求分子坐标之后必须有恰好一个空行才开始命令行;空行多了或少了一行都读不对。
怎么改在输入文件最后补一个空行(tail -c 20 你的.gjf | od -c 能看到结尾是不是两个换行)。用 Windows 编辑过的文件还可能有 CRLF 问题,用 dos2unix 处理一下。
Error termination via Lnk1e in /opt/g16/l1.exe在说什么l1 在读输入时就失败了。
为什么最常见是 %chk、%mem、%nprocshared 的行格式不对(% 开头的行必须在最前面、不能有空行隔开),或 %chk 指向的目录没有写权限。
怎么改把 %chk/%mem/%nprocshared 放在第一段,格式写成 %chk=/scratch/xxx.chk;确认目录存在且可写(touch /scratch/test)。
No such file or directory ... .chk(或 chk 文件读不出)在说什么指定的 checkpoint 文件不存在或路径不对。
为什么%chk 用了相对路径,而任务是从别的目录提交的;或上一轮任务失败没生成 chk。
怎么改一律写绝对路径;续算前用 ls -l 确认 chk 存在且大小不为 0。
Convergence failure -- run terminated.(结尾还有 Error termination request processed by link 9999)在说什么优化在给定步数内没有收敛。9999 只是收尾,真正的原因在此之前。
为什么步数不够(默认约 100 步)、初始结构太差、或每一步的力/位移判据太严(opt=tight)。
怎么改先 opt=(maxcycle=200);仍不收敛就 opt=(calcfc,maxstep=10) 给小步长并让它自己算 Hessian;初始结构先用分子力学或低精度方法预优化。
Berny optimization failed / Number of steps exceeded, NStep=...在说什么Berny 算法认为这个优化已经走不下去了。
为什么初始结构有严重原子重叠、坐标太差、或者势能面本身不平滑(近简并、强相关体系)。
怎么改换初始结构(从晶体或实验结构取,或先做 MMFF/UFF 预优化);加 opt=(cartesian);必要时改用 opt=(ef) 或分步走。
Problem with the distance matrix.在说什么两个原子之间的距离异常(重叠或过远)。
为什么结构里有原子几乎重合,或 Z-matrix 里写了不可能的角度/二面角。
怎么改打开结构看最短距离,小于 0.5 埃就是重叠;从 xyz 重新生成输入,不要手改 Z-matrix。
Large curvature ...(优化在两步之间反复横跳、能量来回抖)在说什么RFO/Berny 在曲率很大的方向上迈步过大。
为什么接近过渡态、或有柔性很大的二面角。
怎么改opt=(maxstep=5) 或 opt=(quadratic);也可以先用 opt=loose 走到大致谷底,再用 opt=tight 精修。
(不是报错,但结果不能信)Frequencies 里出现虚频在说什么频率计算给出负的振动频率,说明这个结构不是能量极小点。
为什么优化没真正收敛,判据太松;或者它本来就是鞍点。
怎么改先用 opt=(tight) 重优化,频率必须与 opt 同一理论水平;仍有虚频就沿虚频方向扰动后重优化。
>>>>>>>>>> Convergence criterion not met.(没有 SCF Done)在说什么自洽场迭代到上限仍未收敛。
为什么初始猜测差、体系近简并(过渡金属、开壳层、双自由基)、或方法与基组组合本身难收敛。
怎么改阶梯式收敛:scf=(maxcycle=512)、scf=(xqc)、scf=(conver=6);开壳层用 guess=mix;先用小基组(STO-3G/3-21G)跑通再换大基组。
Charge and multiplicity are incompatible. / The combination of charge and multiplicity is impossible在说什么你给的电荷与自旋多重度的电子数奇偶不符。
为什么电子数 = 各原子核电荷之和 − 电荷。偶数必须配单重态或三重态,奇数必须配双重态或四重态。
怎么改数一遍电子;阴离子和自由基体系最容易算错。加 #p 看输出里的电子数。
Symmetry error(报错里提到 symmetry)在说什么程序按对称性处理结构时出了矛盾。
为什么输入的对称性判断与坐标系不一致,或结构被对称性强行套错。
怎么改加 nosymm 关掉对称性(慢一些,但不会再因对称性失败);或把坐标写成高精度。
CPHF did not converge(算极化率、频率时出现)在说什么耦合微扰 Hartree-Fock 迭代不收敛。
为什么SCF 本身不够紧,或体系近简并。
怎么改加 scf=(tight)、int=ultrafine;或先用 scf=(maxcycle=512) 把 SCF 收干净。
galloc: could not allocate memory.(或 Unable to allocate memory)在说什么程序申请不到你要的内存。
为什么%mem 写太大(超过物理内存),或与 %nprocshared 的组合让单个进程超限;也可能是 ulimit 限制。
怎么改先把 %mem 降到物理内存的 60~70% 试;多核任务里 %mem 是总量不是每核;用 free -g 看真实可用,别把 swap 当内存。
进程直接消失、日志无错误、dmesg 里有 Killed process在说什么被内核 OOM killer 杀掉。
为什么内存估小了。Gaussian 的内存需求随基函数数目近似三次增长,大基组加大体系很容易翻倍。
怎么改用 dmesg | grep -i "killed process" 确认;按基函数数估内存(见 Gaussian 配置);临时办法是降低 %nprocshared 并减小 %mem,让它跑慢一点而不是被杀。
Erroneous Write. Write 0 instead of ...(或 fd = 0)在说什么写临时文件(.rwf/.int)失败。
为什么磁盘满了,或者 ulimit -f 限制了单文件大小。
怎么改用 df -h $GAUSS_SCRDIR 看空间;把 GAUSS_SCRDIR 指到大容量数据盘;ulimit -f unlimited 后再跑。
No space left on device / disk quota exceeded在说什么临时文件把盘写爆了。
为什么Gaussian 的 .rwf 可以到几十 GB(频率、大基组、IRC 尤其),scratch 却放在系统盘。
怎么改scratch 必须挂数据盘;频率或 IRC 前先估:基函数数 × 100 字节量级 × 步数。清理旧的 .rwf/.chk 也要纳入日常。
There are not enough slots available(或 %nprocshared 设太大导致极慢/报错)在说什么申请的核数超过机器可用核数。
为什么%nprocshared 写成了别的机器规格;或共享机器时核数被占满。
怎么改按 nproc 或 lscpu 的实际核数写;共享机器上留 1~2 核给系统。
Standard basis: ... not available for atom ...(或 basis set not found)在说什么你选的基组没有为某个元素定义。
为什么重元素(如 I、Au、Pt)在 Pople 系列基组里常常缺失;或加了弥散/极化函数后该元素没有对应定义。
怎么改换 def2 系列(def2-SVP/def2-TZVP 覆盖面最全),或对重元素用 LANL2DZ 等含赝势的基组;也可用 gen 混合基组,逐个元素给定义。
Error reading ECP / pseudopotential 相关报错在说什么赝势文件读不出来。
为什么自定义 ECP 的路径不对,或用了需要额外赝势库的元素却没给。
怎么改内置赝势(LANL2DZ、SDD)不需要额外文件,直接写关键字即可;自定义 ECP 要确认 genecp 段落格式(元素名后紧跟 ECP 定义,末尾再一个空行)。
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。
ERROR: Could not find potential file(或 Cannot open potential file)在说什么势函数文件找不到。
为什么路径是相对当前工作目录的——你在别的目录提交任务,相对路径就失效了。
怎么改一律写绝对路径:pair_coeff * * /scratch/pot/Si.sw Si;或把势文件放任务目录。LAMMPS 不会去别处搜。
ERROR: Cannot open input script / file(或 Reading data file failed)在说什么输入脚本或辅助文件打不开。
为什么文件名拼错、路径相对、文件权限不对;或路径里有空格没加引号。
怎么改用 ls -l 确认文件存在;脚本里统一用绝对路径;带空格的路径加引号。
ERROR: All pair coeffs are not set在说什么有原子类型没拿到 pair 系数。
为什么多元素或混合体系里只给了一部分;或元素顺序与 data 文件里的 type 不对应(type 1 是 Si 还是 O,很容易搞反)。
怎么改用 pair_coeff * * 一次给全,或逐个 type 给;先用 dump 或 print 确认每种 type 对应的元素。混合体系要用 pair_style hybrid,且每个子样式单独给系数。
ERROR: Unknown pair style(或 Unknown fix/compute style)在说什么这个功能没编译进你的可执行文件。
为什么manybody、reaxff、meam、mliap、kokkos、gpu 等都在可选包里,默认不编。
怎么改回到源码目录 make yes-包名 再 make 目标;已装好的二进制可先 lmp -h | grep -i 包名 看是否支持。
ERROR: Pair coeff for atom type ... not found(或 Illegal pair_coeff command)在说什么给系数时引用了不存在的原子类型,或格式不对。
为什么data 文件里 type 只有 1、2,但命令里写了 3;或 manybody 势要求系数个数与元素数一致。
怎么改核对 data 文件里的类型数(grep -A2 Masses 你的.data),系数行按类型顺序逐个给。
ERROR: Lost atoms: original N current M (src/thermo.cpp)在说什么有原子飞出了模拟盒,程序拒绝继续。
为什么四类原因:时间步长太大、初始结构有原子重叠、边界条件设错(本该 pbc 却用 fixed)、温度远超合理值。
怎么改先 minimize 再跑;dt 从 0.5 fs 起;检查 boundary 设置;用 velocity create 后先跑 100 步 NVE 看温度是否正常,丢原子会立刻暴露。
ERROR: Out of range atoms - cannot compute PPPM在说什么长程静电的 PPPM 网格范围里找不到原子。
为什么原子移动过快或超出 PPPM 允许的位移(超过盒子网格),通常是 dt 太大或约束没加。
怎么改加 comm_modify vel yes;减小 dt;增大 neighbor skin(neighbor 2.0 bin);必要时改 kspace_modify 的网格。
ERROR: Domain too small(或 Cannot use force cutoff larger than half box)在说什么力场截断半径大于盒子边长的一半。
为什么建盒时没考虑截断:cutoff 10 埃要求盒边长至少 20 埃(有分子还要加尺寸)。
怎么改放大盒子(create_box 前规划好尺寸),或减小 pair 的 cutoff;不要靠 fix 硬撑。
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 调优。
MPI_ABORT was invoked on rank 0 ...(后面一堆堆栈)在说什么某个进程报错后主动终止了整个任务。
为什么真正的错误信息在 MPI_ABORT 之前——通常就在 rank 0 的日志前面几行。
怎么改搜 log 里第一个 ERROR:,不要从 MPI_ABORT 往下看;打开 -echo screen 与 -log 看哪条命令最先失败。
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 版,是最常见的白花钱方式。
ERROR: There are not enough slots available(或 mpirun 起不来)在说什么进程数超过可用核数。
为什么-np 按物理机核数写,但容器或 cgroup 限了 CPU;或跨节点没给 hostfile。
怎么改nproc 看实际可用;容器里注意 CPU 限额;跨节点用 --hostfile。
ERROR: Bond atoms 123 456 missing on proc 0 at step ...在说什么某根化学键的原子跑到了别的进程分区,找不到配对。
为什么原子跑得太远(键被拉伸到断裂),本质和 Lost atoms 同源:dt 太大或势参数不合适。
怎么改同 Lost atoms 的处理;分子体系还要检查 bond 系数是否给了(bond_coeff),缺系数会算出离谱的力。
ERROR: Insufficient memory(或进程被内核杀掉)在说什么内存不够。
为什么体系原子数 × 邻居数 × 每原子开销估小了;neighbor skin 加大也会显著涨内存。
怎么改按每原子 300~800 字节估(含邻居表与通信缓冲);dmesg | grep -i killed 确认是否 OOM;减邻居 skin 或换更大内存实例。
ERROR: Non-numeric argument / Illegal ... command在说什么输入脚本语法或参数类型不对。
为什么变量没展开($x 为空)、单位写错、行内有隐藏字符(从网页复制的空格)。
怎么改用 -echo both 看实际解析到的行;cat -A 输入文件 查不可见字符;变量用 variable 显式定义。