
简介VASPKIT中文手册是面向VASP用户的官方功能详解与操作指南特别适合材料科学、催化研究等领域的计算科研人员也适合刚接触VASP预处理与后处理的新手阅读。手册以VASPKIT功能介绍为主线系统梳理了该工具在VASP计算中的核心作用包括输入文件自动生成与检查、能带与态密度计算、热力学量校正、差分电荷密度分析、催化NEB路径转换与虚频校正、能带反折叠、3D能带与费米面计算以及VASP2BoltzTraP接口调用和用户自定义界面等覆盖从基础计算到高级分析的常用场景。压缩包内含1个PDF文档大小约2.37MB无需安装即可随时翻阅文档按菜单功能分章节编排定位清晰读者可以按需查找具体模块也可对照示例快速上手。目前已有3564人学习下载无论想要系统入门还是作为日常案头参考都能从中获取实用的操作指引有效节省建模和数据处理时间。1. VASPKIT 0.72 安装先把这套 VASP 预-后处理工具跑起来拿到 VASPKIT 0.72 压缩包时我以为这套工具能解压即用——体积 5M、FORTRAN 写的二进制、几乎不依赖第三方库。结果第一次敲./vaspkit就撞上GLIBC_2.14 not found换台机器又遇到Permission denied进了主菜单后还因为~/.vaspkit赝势目录填错生成的 POTCAR 和 POSCAR 元素对不上。VASPKIT 是材料与催化计算里最常见的 VASP 辅助软件自动生成 INCAR/POTCAR/KPOINTS处理能带、态密度、差分电荷密度还有 3D 能带、费米面和催化相关工具。这篇按我实际装过的流程写从解压赋权、配 PATH、改配置到用能带计算验证跑通。新手照做能走通熟手可以看版本差异和参数取舍。环境没配好之前后面所有电子结构分析都无从谈起所以这一步值得认真走一遍。2. 安装 VASPKIT 0.72解压、赋权与 PATH 配置2.1 版本选型为什么先确认是 0.72VASPKIT 0.72 是菜单结构改动比较大的一版把功能按结构、电子、电荷与势、杂项四类做了合并归类。对新手来说找功能入口比老版本直观很多对老手0.71 之后新增的输入文件检查、赝势元素一致性检查都是能省半天排错的功能。这一版还集成了能带反折叠功能 28、杂化泛函能带功能 25、CHGCAR/LOCPOT 转 XcrySDen 格式以及 NEB 路径线性插值和虚频校正对称性算法同步更新到了 spglib 1.11.2。手册对应版本就是 0.72发布包里的 examples 目录按功能组织了测试例子比如 band_unfolding 下面直接放了反折叠计算需要的输入样例hybrid_DFT_band 里是 HSE06 能带计算的完整输入文件。这些 examples 是安装完最好的验证素材强烈建议保留。运行环境上0.72 是 FORTRAN 编译的 Linux 二进制官方定位是“几乎不依赖其他库”下载解压就能跑。注意它需要 64 位 Linux 环境且 glibc 版本不能太低这一点在第 5 章会单独说。程序本体大约 5M比一堆脚本组合起来的工具链轻量得多也不要求 root 权限放到自己的家目录就能用。装好后主菜单长这样可以用来核对版本 Structural Options 1) VASP Input Files Generator 2) Elastic-Properties Kit 3) K-Path Generator 4) Structure Editor 5) Catalysis-ElectroChemi Kit 6) Symmetry Search Electronic Options 11) Density-of-States 21) DFT Band-Structure 23) 3D Band-Structure 25) Hybrid-DFT Band-Structure 26) Fermi-Surface 28) Band-Structure Unfolding Charge Potential Wavefunction Options 31) Charge Spin Density 42) Potential-Related 51) Wave-Function Analysis Misc Utilities 71) Linear Optics 72) Molecular-Dynamics Kit 73) VASP2BoltzTraP Interface 91) Semiconductor Calculator 92) 2D-Materials Kit 0) Quit这个菜单里11、21、23、25、26、28 是后续验证会用到的电子结构入口73 是 VASP2BoltzTraP 接口做输运计算时用它导出 BoltzTraP 需要的数据。菜单结构和手册附录能对应上说明版本没拿错。2.2 解压与目录结构拿到压缩包后先解压我会把它放到工作机的固定目录例如/home/用户名/soft/tar -zxvf vaspkit.0.72.tar.gz cd vaspkit.0.72 ls -l解压后的目录里bin/下是vaspkit可执行程序examples/下是各功能测试例子how_to_set_environment_variable是配置文件模板。examples 里每个子目录都有完整的输入输出样例比如 ZnO_optimization、hybrid_DFT_band、band_unfolding。我一般先不急着跑自己的体系而是拿 examples 里现成的 POSCAR 走一遍流程确认软件行为正常后再开始正式的计算任务。bin/里只有一个可执行文件体积很小。如果解压后没有这个文件多半是压缩包没下完整重新下载比排查快捷。目录里如果有 README 或版本说明文件也值得看一眼里面通常会写明编译环境要求。2.3 赋权与 PATH 配置解压出来的二进制默认没有执行权限直接跑会报Permission denied。先赋权chmod ux /home/用户名/soft/vaspkit.0.72/bin/vaspkit参数说明ux只给当前用户加执行权限不涉及 root够用且安全。然后用下面两行把可执行文件所在目录加进 PATHecho export PATH/home/用户名/soft/vaspkit.0.72/bin/:$PATH ~/.bashrc source ~/.bashrc说明PATH 要指向bin目录而不是vaspkit文件本身这样后续在任意目录下敲vaspkit都能启动。source ~/.bashrc让当前终端立即生效新开的终端会自动加载。如果不想改环境变量也可以直接用绝对路径/home/用户名/soft/vaspkit.0.72/bin/vaspkit调用效果一样。配置完可以用which vaspkit确认路径生效返回的路径应该就是刚才写入的那一条。2.4 第一次启动验证先敲vaspkit -h看看命令行帮助确认程序能启动再直接输入vaspkit进入交互主菜单。看到 0.72 的字符画界面说明安装链路是通的vaspkit -h vaspkit-h参数会列出命令行支持的选项vaspkit 目前以交互式批量操作为主命令行模式适合脚本调用。如果此时出现GLIBC_2.14 not found或Permission denied之类的报错先别急着换机器第 5 章有对应的处理记录多数情况下十分钟内能解决。3. 配置文件 ~/.vaspkit赝势路径与 INCAR 输出行为3.1 配置文件从哪来vaspkit 运行时会读取用户主目录下的~/.vaspkit文件这个文件决定了它到哪儿找赝势库、按什么规则生成 INCAR 和 POTCAR。安装包里自带模板拷贝到主目录再编辑即可cp -f how_to_set_environment_variable ~/.vaspkit vi ~/.vaspkit注意文件名开头有个点ls默认不显示编辑前用ls -a确认文件确实拷过去了。这个文件里配置错误不会导致 vaspkit 启动失败但会在生成 POTCAR 或 KPOINTS 时静默地影响结果。比如赝势路径填错功能 103 会生成不完整的 POTCAR而 VASP 不会主动报错这是最容易翻车的地方。每台机器的赝势库路径不一样拿到包后第一件事就是改这里。3.2 核心参数逐项说明下面是一个典型的~/.vaspkit内容参数含义在注释里VASP5 .TRUE. # .TRUE. or .FALSE.; Set .FALSE. if using vasp.4.x GGA_PATH ~/POTCAR/GGA # Path of GGA potential PBE_PATH ~/POTCAR/PBE # Path of PBE potential LDA_PATH ~/POTCAR/LDA # Path of LDA potential POTCAR_TYPE PBE # PBE, GGA or LDA GW_POTCAR .FALSE. # .TRUE. or .FALSE. RECOMMENDED_POTCAR .TRUE. # .TRUE. or .FALSE. MINI_INCAR .FALSE. # .TRUE. or .FALSE. SET_FERMI_ENERGY_ZERO .TRUE. # .TRUE. or .FALSE. SET_INCAR_WRITE_MODE OVERRIDE # OVERRIDE, APPEND,BACK-UP-OLD,BACK-UP-NEW这些参数按功能可以分成三组。第一组是 VASP 版本与赝势路径。VASP5控制 POSCAR 的元素类型解析方式如果还在用 VASP 4.x必须设成.FALSE.否则生成 POTCAR 时元素顺序都可能对不上。GGA_PATH、PBE_PATH、LDA_PATH三个路径分别指向三套赝势库按自己机器上的实际位置填vaspkit 不会自动探测。POTCAR_TYPE决定默认用 PBE、GGA 还是 LDA 体系。第二组是 POTCAR 生成策略。RECOMMENDED_POTCAR.TRUE.表示按 VASP 官网推荐从赝势库里挑元素对应的赝势设为.FALSE.则按赝势库目录里的默认顺序选取对大多数体系不建议改。GW_POTCAR是 GW 计算相关平时保持.FALSE.即可。第三组是 INCAR 输出行为MINI_INCAR控制生成精简版还是完整模板SET_FERMI_ENERGY_ZERO决定处理能带和态密度时是否把费米能移到零点SET_INCAR_WRITE_MODE在 3.4 细说。参数取值作用VASP5.TRUE. / .FALSE.是否使用 VASP 5.x 的 POSCAR 元素解析4.x 必须设 .FALSE.GGA_PATH / PBE_PATH / LDA_PATH路径字符串三套泛函赝势库目录生成 POTCAR 时按此查找POTCAR_TYPEPBE / GGA / LDA默认生成哪种泛函的赝势RECOMMENDED_POTCAR.TRUE. / .FALSE.是否按官网推荐选择赝势MINI_INCAR.TRUE. / .FALSE.是否生成精简版 INCARSET_FERMI_ENERGY_ZERO.TRUE. / .FALSE.处理能带/态密度时是否把费米能移到零点SET_INCAR_WRITE_MODEOVERRIDE / APPEND / BACK-UP-OLD / BACK-UP-NEW已有 INCAR 时如何处理3.3 赝势类型取舍无后缀、_pv、_sv 与 _hPBE 赝势目录里同类元素可能有多个文件无后缀的、带_pv/_sv/_d的、带_h的。区别在于把哪些电子当价电子处理。带_pv表示半芯态的 p 轨道也作为价态带_sv对应 s带_d对应 d。对于次外层电子参与成键的体系默认赝势会低估某些性质这时后缀版本更可靠。经验上做 Bader 电荷分析时需要采用带_pv或_sv的赝势否则电荷划分会失真。另一个常见场景是短键二聚体比如 O2、CO、N2、F2、P2、S2、Cl2官网明确推荐使用_hpotentials也就是 C_h、O_h、N_h、F_h、P_h、S_h、Cl_h 这些带_h的版本。我的习惯是先用两种赝势分别算一下自己关心的指标如果差异可以忽略就选无后缀版本因为包含更多价电子意味着截断能上升机时明显增加。这个取舍没有标准答案取决于体系和研究目标。生成 POTCAR 时功能 103 按RECOMMENDED_POTCAR自动选择功能 104 允许逐个元素手动指定比如给 Zn 指定 Zn_pv。手动指定后建议立即用grep TIT POTCAR确认元素顺序和类型正确这一步花不了十秒能避免后续整个计算白跑。3.4 SET_INCAR_WRITE_MODE 与 INCAR 备份SET_INCAR_WRITE_MODE有四个取值行为差别很大。OVERRIDE是直接覆盖原 INCAR适合全新目录APPEND把新内容追加到原 INCAR 后面适合在原模板基础上补参数BACK-UP-OLD先把原 INCAR 备份成INCAR.bak再写入新的我一般设成这个避免调好的参数被模板冲掉BACK-UP-NEW是把新模板写入INCAR.new原文件不动适合对比模板差异。建议在自己的计算目录里把它设为BACK-UP-OLD等于给 INCAR 上了后悔药。vaspkit 生成 INCAR 时会提示哪些参数需要手动调整比如 DFTU 的 U 值、NEB 的 IMAGES 数目这些模板里没有合理默认值必须自己填。注意BACK-UP-OLD只会备份 INCAR不会备份 KPOINTS 和 POTCAR。涉及 K 点和赝势变更时建议手动把整个计算目录复制一份再让 vaspkit 生成新文件。4. 从 ZnO POSCAR 到输入三件套INCAR、KPOINTS、POTCAR4.1 准备 POSCAR用纤锌矿 ZnO 做例子。从结构数据库检索 ZnO选空间群 P63mc 的六方结构下载对应的 POSCAR 文件放入工作目录并改名cp ZnO-1811117.vasp POSCAR这个环节经常出现两个问题。一是下载的 POSCAR 分隔符可能是制表符\tVASP 存在解析不了的风险二是 POSCAR 里的元素顺序是否和 POTCAR 顺序一致。vaspkit 的功能 109 就是专门做格式纠正和元素一致性检查的后面第 5 章会展开。如果手里只有 CIF 文件也可以用 VESTA 或 VTST 脚本转成 POSCAR注意分数坐标的处理方式否则可能导致原子位置错位。4.2 生成 INCAR功能 1 → 101在 POSCAR 所在目录启动 vaspkit进入交互式菜单后先后输入 1 和 101进入 INCAR Options 界面vaspkit # 交互序列1 - 101 INCAR Options ST) Static-Calculation SR) Standard Relaxation MG) Magnetic Properties SO) Spin-Orbit Coupling D3) DFT-D3 no-damping Correction H6) HSE06 Calculation PU) DFTU Calculation MD) Molecular Dynamics GW) GW0 Calculation BS) BSE Calculation DC) Elastic Constant EL) ELF Calculation BD) Bader Charge Analysis OP) Optical Properties EC) Static Dielectric Constant PC) Decomposed Charge Density FD) Phonon-Finite-Displacement DT) Phonon-DFPT NE) Nudged Elastic Band (NEB) DM) The Dimer Method FQ) Frequence Calculations LR) Lattice Relaxation晶格优化场景输入LRvaspkit 会生成一套预设的用于做晶格弛豫任务的 INCAR。模板内的 PREC 和 ENCUT 值得注意。LR模板为了优化晶格常数默认设置PRECHighVASP 会自动把 ENCUT 设为max(ENMAX)*1.3。但 VASP 新版官方手册已经不推荐用PRECHigh控制截断能而是推荐PRECAccurate并手动固定 ENCUT 值目的是保证同一系列体系 ENCUT 一致、结果可比。因此迭代算对比体系时我会手动指定 ENCUT固定在一个大于所有元素 ENMAX 的整数上。4.3 生成 KPOINTSGamma 撒点与精度接着生成 K 点。先后输入 1 和 102选择 Generate KPOINTS File for SCF Calculation然后选 2 用 Gamma 撒点方式输入 0.04 作为 K 点密度# 交互序列1 - 102 - 2 - 0.04vaspkit 会按倒空间 K 点分辨率 0.04 自动生成各个方向的 K 点数目比如 ZnO 得到Gamma 9 9 9这样的 KPOINTS。这里有一个判断 K 点密度够不够的经验准则对半导体K 点数目乘以实空间对应晶矢量长度大于 20 Å 就基本够用。对于非正交体系倒格矢长度和晶格常数不满足简单反比关系采用 ka≈kb≈kc 的经验准则并不总能保证 K 点密度在各个方向相等。vaspkit 会严格计算倒空间晶格矢量比例再根据你给的 K 点密度自动分配各方向 K 点数这是它比手写 KPOINTS 省心的地方。精度档位参考0.06~0.04 属于低精度0.04~0.03 中精度0.02~0.01 精细计算Gamma-only 则输入 0。对多数 SCF 计算0.04 已经足够精确先用它跑通流程再在高精任务中加密。K 点文件生成后VASP 还会在标准输出里给出倒空间 K 点的实际分辨率方便核对。4.4 生成 POTCAR自动与手动指定KPOINTS 生成的同时vaspkit 会根据 POSCAR 的元素类型从赝势库提取并组合生成 POTCAR。前提是~/.vaspkit里的 PBE_PATH 或 GGA_PATH、LDA_PATH 路径正确。提示Written POTCAR File with the Recommended Potential说明用的是官网推荐赝势。用命令验证产物grep TIT POTCAR grep ENMAX POTCAR第一条看每个元素的赝势类型第二条看每个赝势的 ENMAX 值。INCAR 里的 ENCUT 最终要大于所有元素的 ENMAX 才安全。如果默认的 O、Zn 无后缀赝势不满足需求可以改用功能 104 手动指定例如要求 Zn 使用 Zn_pv# 交互序列1 - 104 - O - Zn_pv手动指定后同样用 grep 验证。如果不想每一步单独操作可以用功能 108它会把设置 INCAR、设置 K 点密度、生成 KPOINTS 和 POTCAR 串起来最后调用功能 109 自动检查所有文件是否存在问题。第一次跑通全流程时建议直接选 108等于让 vaspkit 帮你在提交 VASP 前做一次体检。提示功能 108 的完整流程是“设置 INCAR → 设置 K 点密度 → 生成 KPOINTS/POTCAR → 自动检查”适合从零准备一个计算目录。已有部分文件时单独走 101/102/103 更灵活。5. VASPKIT 配置避坑五个常见报错与排查记录5.1 GLIBC_2.14 not found老系统的连锁反应现象在终端执行./vaspkit程序直接退出报错/lib64/libc.so.6: version GLIBC_2.14 not found (required by vaspkit)。原因vaspkit 0.72 的官方二进制是在较新的 Linux 发行版上编译的运行时依赖的 glibc 版本高于当前系统。老系统、精简系统、长期未更新的服务器常遇到这个问题。解决升级系统运行库是正路但不推荐为一套工具贸然升级生产环境。更实际的做法是联系开发者获取在低版本 Linux 环境下编译的版本或者换一台 glibc 版本足够的机器再装。经验是装之前先确认系统 glibc 版本ldd --version看一下避免拿到包才发现跑不了。5.2 Permission denied别急着重装现象-bash: line 7: ./vaspkit: Permission denied程序连启动的机会都没有。原因压缩包解压后二进制没有执行权限普通用户默认没有 x 位。解决chmod ux /home/用户名/soft/vaspkit.0.72/bin/vaspkit然后重新执行。注意加了ux只是给当前用户不要用chmod 777这类宽泛权限避免安全隐患。这个报错最常见于从 Windows 端解压再传到 Linux 的场景压缩包里的权限位在传输过程中被重置了。5.3 POSCAR 分隔符导致元素静默丢失现象从结构数据库下载的 POSCAR 提交 VASP 后任务迅速失败日志显示 VASP 只读出了 OZn 没有被读取报错ERROR: the type information is not consistent with the number of types。原因下载的 POSCAR 中空格分隔符是制表符\tVASP 不能正确读出以\t为分隔符的字符串。类似问题也会出现在 Windows 系统下生成的 POSCAR 或 INCAR行结尾差异可能产生各种奇怪错误。解决使用 vaspkit 功能 109自动进行 INCAR 和 POSCAR 的格式纠正并检查赝势元素是否一致。执行后再提交任务就能正常运行。这个操作应该在每次从外部拿到结构文件后都做一遍而不是等到 VASP 报错才排查。5.4 POTCAR 与 POSCAR 元素不一致但不报错现象POTCAR 里元素顺序和 POSCAR 不一致甚至元素类型对不上但 VASP 不报错。比如算石墨烯也可以配 H 赝势跑起来结果却完全错误。原因VASP 本身不检查 POSCAR 中的元素类型是否与 POTCAR 元素类型一致。这个问题在手动拼装 POTCAR、或者从不同赝势目录混取值时极易出现。解决养成提交前跑一次功能 109 检查的习惯。vaspkit 会提示Element type in POSCAR may be not corresponding to POTCAR并列出POTCAR:Zn_pv / POSCAR:Zn这类不一致信息。功能 108 已经在生成输入文件后自动执行了这道检查所以新目录用 108 初始化是最稳妥的。5.5 ENCUT 与 PREC 的组合选择现象同样的结构有的任务用PRECHigh正常收敛有的体系算出的能量基线对不上或者换了 VASP 版本后PRECHigh的行为不一致优化晶格常数的结果出现偏差。原因PRECHigh会让 VASP 自动把 ENCUT 设为max(ENMAX)*1.3但这个比例和体系相关不同体系之间 ENCUT 不一致结果不可比。VASP 新版手册已经不推荐通过PRECHigh控制截断能。解决推荐PRECAccurate并手动固定 ENCUT。先用grep ENMAX POTCAR查看所有元素的 ENMAX取最大值并留出余量例如按max(ENMAX)*1.3取整。同一组对比计算必须使用同一个 ENCUT否则能量差没有参考意义。6. 验证跑通用 KPATH.in 走一遍能带计算6.1 用功能 3 生成高对称路径装好 vaspkit、配置好赝势路径之后验证安装是否真正可用最直接的方法是跑一个能带计算的前处理。在任意一个含 POSCAR 的目录下启动 vaspkit输入 3 进入 K-Path Generator选择 3D bulk structure程序会分析晶体对称性推荐一条或几条能带路径并生成两个文件PRIMCELL.vasp单胞和KPATH.in高对称 K 点路径文件。vaspkit 集成的算法与 SeeK-Path 一致不再需要去网页端手动提交结构这是 0.72 最省事的改进之一。6.2 复核 PRIMCELL 与 KPATH.in能带路径只针对 primitive cell因此需要执行cp PRIMCELL.vasp POSCAR这条命令用生成的单胞结构覆盖原 POSCAR之后能带计算的 KPOINTS 才和结构匹配。KPATH.in 里第二行的数字表示每小段路径内插值的 K 点数目如果默认数值在当前机时预算下算不动可以调小。生成的能带路径例子如[GAMMA-X-U|K-GAMMA-L-W-X]此时 INCAR、POTCAR、KPOINTS、POSCAR 四个文件一应俱全可以直接提交 VASP。6.3 验收标准任务跑完后用 vaspkit 功能 21 处理普通能带、25 处理 HSE06 能带、11 处理态密度和投影态密度功能 23 还能做 3D 能带输出。验收标准有三条自洽计算正常收敛没有 error 中断能带曲线连续费米能级附近没有异常断带带隙值与同体系文献值数量级一致。对二维材料功能 92 的 2D-Materials Kit 还能直接处理 MoS2 这类体系的投影能带不需要额外写脚本。从那以后我每次配好 VASPKIT第一件事都是拿 examples 里的例子从功能 1 走到功能 109确认整条链路没跑偏再开始自己的体系。这套流程多花十分钟但能省掉提交后在 VASP 日志里翻黑匣子的时间。希望帮到你。本文还有配套的精品资源点击获取