简介: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.72
VASPKIT 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 u+x /home/用户名/soft/vaspkit.0.72/bin/vaspkit参数说明:u+x只给当前用户加执行权限,不涉及 root,够用且安全。然后用下面两行把可执行文件所在目录加进 PATH:
echo '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_TYPE | PBE / GGA / LDA | 默认生成哪种泛函的赝势 |
| RECOMMENDED_POTCAR | .TRUE. / .FALSE. | 是否按官网推荐选择赝势 |
| MINI_INCAR | .TRUE. / .FALSE. | 是否生成精简版 INCAR |
| SET_FERMI_ENERGY_ZERO | .TRUE. / .FALSE. | 处理能带/态密度时是否把费米能移到零点 |
| SET_INCAR_WRITE_MODE | OVERRIDE / APPEND / BACK-UP-OLD / BACK-UP-NEW | 已有 INCAR 时如何处理 |
3.3 赝势类型取舍:无后缀、_pv、_sv 与 _h
PBE 赝势目录里同类元素可能有多个文件:无后缀的、带_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 时会提示哪些参数需要手动调整,比如 DFT+U 的 U 值、NEB 的 IMAGES 数目,这些模板里没有合理默认值,必须自己填。
注意:
BACK-UP-OLD只会备份 INCAR,不会备份 KPOINTS 和 POTCAR。涉及 K 点和赝势变更时,建议手动把整个计算目录复制一份,再让 vaspkit 生成新文件。
4. 从 ZnO POSCAR 到输入三件套:INCAR、KPOINTS、POTCAR
4.1 准备 POSCAR
用纤锌矿 ZnO 做例子。从结构数据库检索 ZnO,选空间群 P63mc 的六方结构,下载对应的 POSCAR 文件,放入工作目录并改名:
cp ZnO-1811117.vasp POSCAR这个环节经常出现两个问题。一是下载的 POSCAR 分隔符可能是制表符\t,VASP 存在解析不了的风险;二是 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) DFT+U 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晶格优化场景输入LR,vaspkit 会生成一套预设的用于做晶格弛豫任务的 INCAR。模板内的 PREC 和 ENCUT 值得注意。LR模板为了优化晶格常数,默认设置PREC=High,VASP 会自动把 ENCUT 设为max(ENMAX)*1.3。但 VASP 新版官方手册已经不推荐用PREC=High控制截断能,而是推荐PREC=Accurate并手动固定 ENCUT 值,目的是保证同一系列体系 ENCUT 一致、结果可比。因此迭代算对比体系时,我会手动指定 ENCUT,固定在一个大于所有元素 ENMAX 的整数上。
4.3 生成 KPOINTS:Gamma 撒点与精度
接着生成 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 u+x /home/用户名/soft/vaspkit.0.72/bin/vaspkit,然后重新执行。注意加了u+x只是给当前用户,不要用chmod 777这类宽泛权限,避免安全隐患。这个报错最常见于从 Windows 端解压再传到 Linux 的场景,压缩包里的权限位在传输过程中被重置了。
5.3 POSCAR 分隔符导致元素静默丢失
现象:从结构数据库下载的 POSCAR 提交 VASP 后任务迅速失败,日志显示 VASP 只读出了 O,Zn 没有被读取,报错ERROR: the type information is not consistent with the number of types。
原因:下载的 POSCAR 中空格分隔符是制表符\t,VASP 不能正确读出以\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 的组合选择
现象:同样的结构,有的任务用PREC=High正常收敛,有的体系算出的能量基线对不上;或者换了 VASP 版本后,PREC=High的行为不一致,优化晶格常数的结果出现偏差。
原因:PREC=High会让 VASP 自动把 ENCUT 设为max(ENMAX)*1.3,但这个比例和体系相关,不同体系之间 ENCUT 不一致,结果不可比。VASP 新版手册已经不推荐通过PREC=High控制截断能。
解决:推荐PREC=Accurate并手动固定 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 日志里翻黑匣子的时间。希望帮到你。
本文还有配套的精品资源,点击获取