简介《VASPKIT中文手册1》是一份面向VASP用户的中文PDF手册适合材料科学、催化研究等领域需要处理VASP输入输出数据的科研人员与初学者。手册系统梳理了VASPKIT这一轻量级预处理/后处理工具的核心功能从输入文件生成检查、能带与分波态密度计算到热力学量校正、差分电荷密度绘图、NEB路径处理、虚频校正、能带反折叠、3D能带、费米面及VASP2BoltzTraP接口等均有涉及并附有用户自定义界面示例。资源共1个PDF文件压缩包大小2.37MB内容模块清晰便于按需查阅。目前已有3564人学习下载。通过这份手册读者可以快速掌握VASPKIT的菜单操作与典型计算流程减少第三方脚本和编程门槛提升VASP计算前后处理的效率。1. 从VASPKIT说起材料计算里被低估的预-后处理工具第一次跑 VASP 能带计算的人多半会经历同一个夜晚POSCAR、INCAR、POTCAR、KPOINTS 四个文件一个个排雷好不容易算完机时画能带又要写脚本提取本征值、对齐费米能级稍不留神就是一周白算。VASPKIT 这个运行在 Linux 下的命令行预-后处理工具恰好把这条链路收拢成一个菜单。它由项目维护者与多位贡献者共同维护用 FORTRAN 写成几乎不依赖第三方库体积很小解压即用自带 EXAMPLES 测试例子。做催化、光学、材料和半导体的人都能用它生成输入文件、处理能带、态密度、电荷密度乃至 NEB 路径。对新用户它是避坑手册对熟手它是批量操作的瑞士军刀——这正是值得拆这份中文手册的原因。2. 配置与启动让 vaspkit 第一次运行就成功2.1 环境变量文件 ~/.vaspkit 是唯一的开关vaspkit 的设计思路很简单下载解压后不需要编译但要让它认识你的 VASP 环境和赝势库。第一次使用前把随包附带的配置模板复制到用户目录下cp -f how_to_set_environment_variable ~/.vaspkit vi ~/.vaspkit复制后编辑 ~/.vaspkit这个文件是全局配置的唯一入口。下面是我常用的配置模板及字段含义字段示例值作用VASP5.TRUE.声明你用的是 VASP 5.x 还是 4.x决定 POSCAR 是否读取元素类型行PBE_PATH~/POTCAR/PBEPBE 赝势库的存放目录生成 POTCAR 时从这里找元素赝势GGA_PATH / LDA_PATH~/POTCAR/GGA 等对应 GGA-PW91 和 LDA 赝势库按需填写POTCAR_TYPEPBE默认生成哪种类型的赝势可切换为 GGA 或 LDARECOMMENDED_POTCAR.TRUE.为 .TRUE. 时按 VASP 官网推荐选择赝势为 .FALSE. 时按元素名称直接匹配MINI_INCAR.FALSE.控制是否写入简化版 INCAR 模板SET_FERMI_ENERGY_ZERO.TRUE.处理能带时是否自动将费米能级对齐到 0 eVSET_INCAR_WRITE_MODEOVERRIDEINCAR 已存在时的处理方式可改为 APPEND、BACK-UP-OLD、BACK-UP-NEW这里最容易翻车的字段是三个赝势路径。vaspkit 生成 POTCAR 时只认路径不认人路径写错或目录不存在程序不会当场崩溃但会在生成环节静默失败最后你拿到一个不完整的 POTCAR 还找不到原因。建议所有路径写绝对路径避免 ~ 在某些 shell 环境下的展开歧义。2.2 PATH 设置、权限与初次启动为了方便把 vaspkit 的可执行目录写进 PATH这样任何目录下都能直接敲 vaspkit 启动echo export PATH/home/vaspkit.0.72/bin/:$PATH ~/.bashrc source ~/.bashrc chmod ux /home/vaspkit.0.72/bin/vaspkit最后一步 chmod 是很多新用户漏掉的动作。解压出来的二进制文件不一定带执行权限不授权就会出现典型的 Permission denied。加完 PATH 后在终端输入 vaspkit会看到字符画主菜单按数字进入对应功能组。菜单结构不是摆设它把几十个子任务按结构、电子、电荷、工具分类记不住任务号也没关系看菜单逐层进入即可。2.3 启动失败的两种典型现场一种是 GLIBC 版本不匹配。出现/lib64/libc.so.6: version GLIBC_2.14 not found这类报错原因是 vaspkit 在较新的 Linux 发行版上编译你的系统自带的 C 运行库太老。常见的错误做法是升级系统库这会把整个发行版的依赖关系弄乱。更稳妥的做法是联系维护者获取在低版本系统上编译的版本或者换一台更新系统的机器运行。另一种是前文说的权限问题chmod ux 即可解决。如果启动后光标卡住没有菜单多半是终端窗口太小字符画无法完整绘制放大窗口或去掉终端最小宽度限制再试。3. 输入文件生成与检查INCAR、KPOINTS、POTCAR 的正确打开方式3.1 四个输入文件的职责先理清再动手VASP 计算的四个基本输入文件各有分工INCAR 是控制参数告诉 VASP 算什么、怎么算POSCAR 描述晶格和原子坐标POTCAR 是赝势把内层电子替换成势函数KPOINTS 定义倒空间采样。vaspkit 把输入文件相关的子任务全部整合在功能 1 VASP Input Files Generator 下任务 101 到 109 覆盖 INCAR 定制、KPOINTS 生成、POTCAR 生成、POSCAR 重排和文件检查。实际操作时我先准备 POSCAR。最常用的两个来源是从材料数据库下载 POSCAR 或 CIF 文件用 VESTA 把 CIF 转成 POSCAR。转出来的文件通常能直接用但下载的 POSCAR 有时会带制表符或格式瑕疵这在后面第 5 章会详细说。先把结构文件放到工作目录并改名cd ~/vaspkit/examples/ZnO_optimization cp -f ZnO-1811117.vasp POSCAR以纤锌矿 ZnO 为例这一步做完工作目录里就有了结构文件。接下来所有输入文件都围绕这个 POSCAR 生成。3.2 选择 INCAR 模板参数该由模板管还是自己管运行 vaspkit 后输入 1 进入输入文件功能组再输入 101 选择自定义 INCAR程序会列出十几个场景化模板包括 ST 静态计算、SR 标准弛豫、LR 晶格弛豫、HG 磁性质、SO 自旋轨道耦合、H6 HSE06 计算、PU DFTU、MD 分子动力学、NE NEB 等。我在做 ZnO 晶格优化时选 LR此时 vaspkit 生成的 INCAR 会带 PREC High因为优化晶胞常数需要更高的截断能。这里有个值得注意的细节老的 VASP 教程喜欢用 PREC High 让程序自动抬升截断能但新版 VASP 官方手册已经不推荐这种做法更建议 PREC Accurate 并手动指定 ENCUT。vaspkit 的模板会把 ENCUT 参数注释掉程序运行时取所有元素 ENMAX 的最大值一旦你手动取消注释并设定 ENCUT就以你的值为准。优化晶胞时如果发现晶格常数收敛得很玄学先检查 ENCUT 是否真的高于所有元素的 ENMAX。INCAR 的写入模式由 ~/.vaspkit 里的 SET_INCAR_WRITE_MODE 控制。默认 OVERRIDE 是直接覆盖旧文件如果不想丢失之前的参数记录改成 BACK-UP-OLD 会先把旧 INCAR 存一份再写新文件改成 BACK-UP-NEW 则把新模板写到 INCAR.new跟旧文件并存。我习惯设为 BACK-UP-OLD相当于给每次模板生成留一颗后悔药。3.3 KPOINTSGamma-scheme 与 0.04 那个经验值非能带计算不需要手动设计 K 点路径vaspkit 任务 102 按照用户给的倒空间分辨率自动撒点。生成界面会按精度给几个参考区间Low 对应 0.06~0.04Medium 对应 0.04~0.03Fine 对应 0.02~0.01并提示 0.04 一般已经够精确。对大多数半导体和绝缘体我直接输入 0.04对金属体系会加密到 0.03 甚至 0.02。vaspkit # 输入 1 进入 VASP Input Files Generator # 输入 102 选择 Generate KPOINTS File for SCF Calculation # 输入 2 选择 Gamma Scheme # 输入 0.04 作为 KP-Resolved ValueGamma-scheme 适合正交或接近正交的格子对六方晶系这类含 120 度角的体系也稳定是比较稳妥的默认选择。vaspkit 不是简单按每个方向多少 K 点均匀撒点而是先算出倒空间三个格矢的长度比例再按你给的分辨率反推每个方向的 K 点数。经验上判断 K 点够不够密可以用K 点数乘实空间对应晶矢量大于 20 埃这个粗略准则。前人有总结说对于非正交体系倒格矢长度和晶常数不满足反比关系用 ka≈kb≈kc 的经验能不能保证倒空间各方向分辨率一致vaspkit 按倒空间长度反推的做法更可靠。生成 KPOINTS 的同时vaspkit 会根据 POSCAR 里的元素类型自动从赝势库抽取并组合成 POTCAR前提是 ~/.vaspkit 里的 PBE_PATH 路径指向正确。写入成功后程序会提示 Written POTCAR File with the Recommended Potential意思是它按 VASP 官网的推荐为每个元素选定了赝势。这一步省了手动 cat 多个 POTCAR 的重复劳动。3.4 POTCAR 的坑没有后缀、_pv、_sv、_d 和 _h 怎么选PBE 赝势目录里同名元素往往有多个版本无后缀的、带 _pv / _sv / _d 后缀的还有带数字后缀的。后缀的含义是半芯态也当价电子处理比如 Zn 的 3d 和 3p 如果参与成键就得用 Zn_pv。做 Bader 电荷分析时我用 _pv 或 _sv 版本因为电荷分析对芯态和价态的边界很敏感默认赝势容易把本该计入的电荷漏掉。还有一个官网特别强调的规则如果化合物里存在 O2、CO、N2、F2、P2、S2、Cl2 这类含短键的二聚体建议用带 _h 后缀的赝势。实际操作中我一般先用默认推荐势跑一遍看看对关心的性质影响大不大如果差异小就用无后缀版因为多包含一层价电子意味着更高的截断能和更多机时。想手动指定某个元素的赝势类型用任务 104逐个输入元素和你想用的赝势名vaspkit # 输入 1 选择 VASP Input Files Generator # 输入 104 选择 Generate POTCAR with User Specified Potential # 按提示先输入 O再输入 Zn_pv生成后立刻检查grep TIT POTCAR grep ENMAX POTCAR第一条确认 POTCAR 里元素的顺序和赝势后缀是否符合预期第二条确认截断能的上限。选择赝势版本没有绝对对错本质是精度和机时的权衡用两种赝势对同一体系做对比测试比盲目追求高配置更靠谱。3.5 任务 108 与 109把格式检查变成强制习惯vaspkit 0.71 之后加入了任务 109 Check All VASP Files专门做两件事纠正 INCAR 和 POSCAR 的格式问题检查 POTCAR 中的元素类型是否与 POSCAR 一致。相信我第二点非常重要——VASP 自己不会检查元素一致性你拿石墨烯配氢的 POTCAR 去算它也能跑但结果毫无意义且没人会告诉你说错了。任务 108 则是一条龙先定制 INCAR再设置 K 点密度生成 KPOINTS 和 POTCAR最后自动调用 109 检查所有文件。我现在给新体系准备输入文件时一律走 108不再分步操作少踩很多坑。4. 能带与态密度实操PBE 与 HSE06 两条技术路径4.1 能带路径生成功能 3 与 PRIMCELL 替换能带计算需要的 KPOINTS 跟自洽计算完全不同它要求在第一布里渊区内沿高对称点路径采样。老办法是去在线工具或 Material Studio 查高对称点再写脚本插值vaspkit 内置了与 SeeK-Path 一致的结构分析算法直接在 POSCAR 基础上生成路径文件。vaspkit # 输入 3 选择 K-Path Generator # 输入 3 选择 3D bulk structure程序会输出两条建议路径例如 [GAMMA-X-U|K-GAMMA-L-W-X]生成 PRIMCELL.vasp 和 KPATH.in 两个文件。KPATH.in 第二行数字代表每段路径上插值的 K 点数。默认值如果算不动就把它调小如果画出来的能带曲线太糙再调大。这里有一个设计上的取舍能带路径只针对 primitive cell如果你手里的 POSCAR 是超胞或惯用胞必须先把 PRIMCELL.vasp 替换成 POSCAR否则后续计算基于错误的晶胞。这是做能带最容易忽略的一步cp -f PRIMCELL.vasp POSCAR替换完记得核对晶格和原子数目vaspkit 输出的单胞可能与你的原胞表示不同但原子的相对位置应该一致。4.2 PBE 能带计算提取能量与费米能级对齐用功能 1 配好输入文件、按能带路径生成 KPOINTS 后提交 VASP 自洽计算加能带计算。vaspkit 处理 PBE 能带数据的子任务放在功能 21 下常见有 211 到 215 几个选项对应提取不同范围的能带数据、分原子投影等。我用得最多的是 211 提取常规能带数据然后按 ~/.vaspkit 里 SET_FERMI_ENERGY_ZERO 的设置程序自动把 VASP 输出的费米能级对齐到 0 eV。能带数据处理里最常见的伪需求是手动从 OUTCAR 里扒本征值。直接用 vaspkit 输出整理好的能带数据文件得到的是三维数组第 1 列是 k 点坐标后续列是本征值按能带序号排列。拿到数据后就可以交给你熟悉的画图工具。如果算的是自旋极化体系注意旧版 vaspkit 在带隙评估上有个 bug0.72 版本已经修复但我仍然习惯手动确认一次费米能级附近的占据情况不盲目相信程序给的带隙数值。4.3 分波态密度与投影能带按原子、元素、轨道三个粒度分波态密度和投影能带的价值在于回答这个能带特征主要来自哪个原子、哪个轨道。vaspkit 功能 11 下有一组任务112 和 212 分别提取指定一个或多个原子的投影态密度和投影能带113 和 213 按元素一次性投影114 和 214 对选定原子求和115 对选定原子和轨道同时求和。比如研究二维材料 MoS2 时我想单独看 Mo 的 d 轨道和 S 的 p 轨道贡献用 115 就能一次算完四个通道的数据不用自己在 DOSCAR 里翻列。这些任务背后都依赖 VASP 输出的 PROCAR 或 DOSCAR因此投影计算完成后务必保留完整的 PROCAR 文件不要只保存能带能量数据就清空工作目录。f 轨道投影在旧版 vaspkit 里有 bug0.72 修复后仍然建议对 f 电子体系多一步交叉验证。4.4 HSE06 杂化泛函与 3D 能带K 点策略的分岔口HSE06 杂化泛函的能带计算和 PBE 有两个关键区别。第一自洽计算通常需要先 PBE 收敛再读 PBE 波函数做 HSE06 单点否则从头算起来机时翻倍。第二vaspkit 功能 25 专门处理 hybrid-DFT 能带它要求沿不同 k 路径做均匀 K 点采样而不是像 PBE 能带那样直接生成高对称路径 KPOINTS。这是因为 HSE06 计算里 Fock 交换项的 K 点网格必须保持一致否则能量不收敛。实际操作比 PBE 啰嗦不少先按标准流程做个 HSE06 自洽的 KPOINTS再在能带路径上生成另一个专门用于能带计算的 KPOINTS两个计算先后提交。机时消耗大约是 PBE 的十几倍到几十倍因此我在动手前总会先用 PBE 把结构、路径和 K 点密度全部验证一遍确认没有低级错误再上 HSE06。3D 能带功能 23和费米面功能 26是进阶电子结构分析的常用工具。3D 能带把能量本征值映射到三维倒空间网格上适合观察带边极值位置和能带简并情况费米面计算则对金属和掺杂体系更有意义输出数据可以直接导入可视化软件。这两个功能对 K 点密度要求高机时预算要按正常计算的数倍估。5. 避坑与常见问题排查五个能毁掉一周机时的隐形坑5.1 POSCAR 制表符分隔导致 VASP 读不出元素类型现象从在线数据库下载的 POSCAR 放入工作目录后提交 VASP 计算秒失败错误日志显示 type information is not consistent with the number of typesVASP 只读出了部分元素。原因文件里元素分隔用的是制表符 \t而不是空格。VASP 对字符串分隔符的解析很挑剔遇到 \t 直接读串行元素数量和类型对不上任务立即中断。解决不再手工改空格。进入 vaspkit 任务 109 做一次格式检查和纠正它会自动把 POSCAR 和 INCAR 里的分隔符统一成空格。从那以后我新建任何体系都会先跑一次 109避免再被这种低级格式问题浪费半天。5.2 POTCAR 与 POSCAR 元素不一致VASP 不报错现象计算正常跑完能带、态密度结果也画出来了但数据明显不合理检查后才发现 POTCAR 里的元素顺序跟 POSCAR 不一致甚至元素都对不上。原因VASP 默认不检查 POSCAR 中的元素类型是否与 POTCAR 匹配。理论上你拿氢的赝势去算石墨烯它也会照跑只是结果彻底错误而且没有任何警告。解决grep TIT POTCAR 核对元素列表或用任务 109 自动比对。建议把提交前查一次 TIT变成肌肉记忆比任何后处理脚本都可靠。5.3 Windows 下编辑的 INCAR 和 POSCAR 字符异常现象在 Windows 上用记事本改过的 INCAR 或 POSCAR拿到 Linux 上提交 VASP报出一些看不懂的字符或换行错误。原因Windows 的换行符是 CRLFLinux 只认 LF记事本还会在文件开头写 BOM 头VASP 解析这类文件容易在首行或行尾读入不可见字符。解决统一用 sed 或 dos2unix 转换或者直接让 vaspkit 任务 109 纠正格式。我自己的习惯是只在自己的工作目录操作文件不跨系统拷贝原始文件如果必须拷贝就先用 file 命令检查格式。5.4 PRECHigh 与 ENCUT 不匹配导致晶格常数漂移现象用 LR 模板优化晶胞几次循环后晶格常数总是收敛不到稳定值或者不同核数算出的结果有细微差异。原因PRECHigh 让 VASP 自动把 ENCUT 抬到 max(ENMAX)*1.3但不同版本的 VASP 对这个自动抬升的实现略有差别同一体系在不同机器上可能拿到不同的截断能结果自然不稳定。新版官方手册也明确不推荐用 PREC 控制精度。解决改用 PRECAccurate在 INCAR 里手动写死 ENCUT例如对 ZnO 体系设为 520 eV并确认高于所有元素 ENMAX。手动设定截断能后同一体系在不同计算环境之间才具备可复现性。5.5 HSE06 能带 K 点路径跟自洽 K 点混用现象HSE06 能带计算能量不收敛反复增加 K 点也没用机时消耗巨大却拿不到平滑能带。原因把 PBE 能带那套高对称路径 KPOINTS 直接拿来跑 HSE06 自洽Fock 交换项的 K 点采样不均匀导致能量振荡。解决按功能 25 的提示自洽和能带两个阶段分别准备 KPOINTS能带路径计算时保持 K 点沿路径均匀分布。另外 HSE06 前先确认 PBE 的波函数收敛文件 CONTCAR/WAVECAR 完整否则等于从头开始算机时预算会失控。6. 进阶技巧命令行批量处理与自定义界面初探6.1 用 vaspkit -task 参数批量处理交互菜单适合试手真正干活时我更愿意用命令行参数直接调用任务配合 shell 循环批量处理几十个结构。vaspkit 支持通过 -h 查看命令行参数常见的是 -task 直接指定任务号。比如批量对多个目录执行输入文件检查for d in */; do (cd $d vaspkit -task 109 /dev/null 21) echo checked: $d done逻辑说明循环遍历当前目录下所有子目录进入每个目录后无交互地调用 109 任务输出重定向避免刷屏最后打印检查完成的目录名。这样处理一批结构文件比逐个打开菜单高效得多。注意 vaspkit 的 -task 参数在不同版本间有细微差异批量脚本跑之前先拿单目录测试一遍。6.2 用户自定义界面测试功能的边界0.72 版本开放了任务 74 用户自定义界面主要面向有编程基础的高级用户可以绘制原子电荷着色的结构图、做二维材料的投影能带等。它本质是给用户留了一个把自己的后处理逻辑挂进 vaspkit的入口但标记为测试功能接口稳定度有限。我试过用它做 MoS2 的投影能带流程能跑通但遇到边界情况时错误提示比较模糊建议只在交互式环境里使用不要写进批处理脚本。6.3 和 ASE、Pymatgen 等生态工具配合vaspkit 的定位是开箱即用ASE 和 Pymatgen 则擅长更灵活的数据结构操作两者并不冲突。我的一般流程是用 ASE 做复杂的结构建模和变形导出 POSCAR 后交给 vaspkit 生成输入文件和初步后处理需要做更深入的晶体场分析或结构搜索时再用 Pymatgen 读回结果。VASP2BoltzTraP 接口功能 73也值得提一笔它把 VASP 的能量本征值转成 BoltzTraP 需要的格式省去手动写接口文件的麻烦。这几年下来我最大的教训是vaspkit 再怎么傻瓜化也只是把中间过程压缩了没有解决物理模型选错的问题。从那以后我每次拿到新体系都强制走一遍 108 生成全套输入文件、109 做格式和元素一致性检查再用 PBE 快速验证一遍 K 点和截断能设置最后才决定要不要上 HSE06 和更重的计算。这套顺序陪我把无数个疑似翻车的项目从悬崖边拉了回来希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?