VASPKIT中文手册实战:VASP输入生成、能带态密度与109自检避坑

发布时间:2026/11/2 9:15:04
VASPKIT中文手册实战:VASP输入生成、能带态密度与109自检避坑 简介面向 VASP 用户与材料计算初学者的中文操作手册聚焦 VASPKIT 这一轻量级预—后处理工具在 Linux 环境下的实际使用。内容围绕输入文件生成与格式检查、对称性分析、PBE/HSE06 能带计算与绘图、分波/局域态密度、热力学量校正、差分电荷密度、催化相关 NEB 路径与虚频校正等展开并延伸到能带反折叠、3D 能带、费米面计算、VASP2BoltzTraP 接口及用户自定义界面测试功能帮助读者理解从基础计算到高级分析的处理流程。压缩包仅含 1 个 PDF 文件约 2.37MB便于按章节检索查阅已有 3576 人学习适合作为查询命令菜单、核对功能入口和补充计算案例的案头资料也便于新用户结合示例快速熟悉软件操作与结果分析思路。1. VASPKIT中文手册一份把 VASP 前后处理串成流水线的实测笔记拿到 VASPKIT中文手册 的人第一反应往往是“不就是个菜单翻译”真正跑过一轮 VASP 的人才知道它的价值在别处INCAR、KPOINTS、POTCAR 三件套的生成、POSCAR 格式纠错、高对称点路径、投影态密度、NEB 线性插点、能带反折叠全部收在一个命令行入口里解压即用不依赖 Python 环境。它对应的场景很具体——手上有 Linux 集群账号VASP 能跑但每次前后处理都要手工改文件、拼脚本、翻别人三年前的博客或者刚接手一个陌生计算目录想知道每个数字从哪来。做催化、二维材料、半导体能带这三类活的人用它最顺手被 POSCAR 制表符坑过一次、想找个提交前自检手段的人也应该备一份。2. 环境配置与输入文件生成从 .vaspkit 到 109 自检的完整链路2.1 .vaspkit 里真正影响结果的那几行VASPKIT 的行为不是运行时逐个问你的大部分默认值写死在用户目录下的.vaspkit里。第一次用先把模板复制过去cp -f how_to_set_environment_variable ~/.vaspkit vi ~/.vaspkit模板里行数不少但真正会改变计算结果的就那么几项剩下的可以按默认走。下面这份是我一般会改成的样子VASP5 .TRUE. # VASP 5.x 及以上POSCAR 带元素行 PBE_PATH /home/xxx/POTCAR/PBE # 换成自己的赝势库路径 POTCAR_TYPE PBE # PBE / GGA / LDA RECOMMENDED_POTCAR .TRUE. # 按官方推荐挑后缀 MINI_INCAR .FALSE. # 不生成精简版 INCAR SET_FERMI_ENERGY_ZERO .TRUE. # 后处理时把费米能平移到 0 SET_INCAR_WRITE_MODE BACK-UP-OLD # 覆盖前先备份VASP5决定生成 POTCAR 时读不读 POSCAR 的元素行用 4.x 的老体系才设.FALSE.。PBE_PATH写错的表现很直接生成 POTCAR 那一步会报找不到文件或者更隐蔽地拼接出空 POTCAR。RECOMMENDED_POTCAR打开后程序按官方推荐自动加_pv、_sv、_d后缀这是后面 ENCUT 变化的源头。SET_FERMI_ENERGY_ZERO建议一直开着绘图时省掉一次手动减费米能的操作。最后一项SET_INCAR_WRITE_MODE默认是OVERRIDE意思是新 INCAR 直接盖掉旧的做参数对比时这个默认值很危险改成BACK-UP-OLD或BACK-UP-NEW会先留一份底。配完顺手把可执行目录加进 PATH否则每次都要敲绝对路径echo export PATH/opt/vaspkit.0.72/bin:$PATH ~/.bashrc source ~/.bashrc路径按自己解压的位置改。加完以后终端里直接敲vaspkit能出主菜单说明环境通了。如果报GLIBC_2.14 not found是系统 glibc 版本低于二进制编译环境不建议为此升级系统库直接找开发者要一份低版本环境编译的包更省事报Permission denied则是文件没有执行位chmod ux bin/vaspkit就解决这类问题跟计算本身无关别往输入文件上找原因。2.2 一次性生成 INCAR、KPOINTS、POTCAR1 → 101 → 102 的输入序列主菜单里1)是 VASP Input Files Generator进去之后是一串子任务号。以纤锌矿 ZnO 的晶格弛豫为例先把结构文件放好、改名成 POSCAR然后在同一目录下启动vaspkit 1 # VASP Input Files Generator 101 # Customize INCAR File LR # Lattice Relaxation 模板 102 # Generate KPOINTS File for SCF Calculation 2 # Gamma 方案撒点 0.04 # KP-Resolved Value101弹出来的是一张 INCAR 模板清单ST静态、LR弛豫、H6HSE06、PUDFTU、NENEB、FQ频率……键位可以组合比如STH6D2表示 HSE06 加 D2 色散的单点。这一步生成的是模板不是成品DFTU 的 U 值、NEB 的IMAGES数目必须自己进去改程序不知道你体系里哪个元素要加 U。102里的 0.04 是倒空间 K 点分辨率单位是 2π/Å不是 K 点数。它的含义是倒空间步长数值越小越密。菜单给的经验区间是0.06~0.04 偏粗0.04~0.03 中等0.02~0.01 精细0 表示只取 Gamma 点。0.04 对大多数半导体和氧化物已经够用。这一步同时按倒格矢三个方向的实际长度分配 K 点数而不是三个方向拍同一个数——非正交晶系里ka≈kb≈kc这种土办法会让某个方向的 K 点密度明显偏低VASPKIT 是按倒空间实际比例算的。本例生成的 KPOINTS 是Gamma 9 9 5对应实空间判据 ka 约 29.6 Å超过 20 Å 的经验下限。生成 KPOINTS 的同一步会顺带拼 POTCAR前提是PBE_PATH指向的赝势库完整。终端出现Written POTCAR File with the Recommended Potential!就表示按推荐后缀拼接成功了。验证一下grep TIT POTCAR # 看赝势标题确认元素和顺序 grep ENMAX POTCAR # 看每个元素的 ENMAX决定 ENCUTgrep TIT输出的顺序必须和 POSCAR 元素行完全一致这是后面避坑章节要展开的重点。grep ENMAX拿到的是每个元素建议的最大截断能INCAR 里显式写的 ENCUT 要大于这个最大值否则 VASP 会警告并自动抬到最大值你对比的两组计算可能因此不在同一截断能下。2.3 108 串联与 109 自检提交前的最后一道闸109是我认为整个手册里最值回票价的功能做的事不复杂把 INCAR 和 POSCAR 里不规范的分隔符归一化再检查 POTCAR 里的元素与 POSCAR 元素行是否一一对应。输入109之后它会逐个文件报状态有问题当场指出来。108则是把 101、102、103 和 109 串成一条流水线先选 INCAR 模板再输 K 点分辨率自动生成 KPOINTS 和 POTCAR最后调用 109 做一遍全量检查。适合已经想清楚参数、只想快速铺一套输入的场景。我自己的习惯是第一次老老实实走 101/102/109 单步确认每一步输出都看懂了之后再图省事用 108。提交前还有一个容易被忽略的动作确认 INCAR 里的PREC和ENCUT组合。弛豫模板默认给的是PREC Normal不写 ENCUTVASP 自动取所有元素 ENMAX 的最大值晶格常数优化那类模板会给PREC High此时 VASP 自动把 ENCUT 抬到 max(ENMAX)×1.3。官方新手册已经不推荐靠PRECHigh隐式抬 ENCUT更稳的做法是PREC Accurate加手动写死 ENCUT。同一批对比计算里 ENCUT 必须一致否则能量差里混进了基组误差后面分析吸附能、形成能时这笔账很难算清。2.4 赝势后缀与 ENCUT 的连带关系PBE 赝势库里同一元素往往有好几个版本无后缀、_pv、_sv、_d以及_h。带_pv、_sv、_d的意思是把次外层的 p、s、d 电子也当价电子处理代价是价电子数变多、ENCUT 抬高、机时上涨。做 Bader 电荷分析时必须用带_pv或_sv的版本否则核电荷分配对不上含 O₂、CO、N₂、F₂、P₂、S₂、Cl₂ 这类短键二聚体的体系官方建议用_h版本。拿不准的时候用两种赝势各算一遍你关心的量差别在误差棒以内就选便宜的那个。需要手动指定时走104它会逐个元素问你要哪种赝势比如给 Zn 选Zn_pvvaspkit 1 104 O # 第一个元素用默认 O Zn_pv # 第二个元素手动指定如果指定的后缀在赝势目录里不存在程序会让你重新输入不会静默回退到别的版本这一点比手写cat拼接可靠。107则是按指定元素顺序重排 POSCAR接手别人目录、元素行顺序和赝势对不上时用它比手改安全。3. 能带计算PBE 与 HSE06 两条路线的路径生成和数据提取3.1 高对称点路径的生成前提是 primitive cell能带计算的 KPOINTS 和自洽计算完全不是一回事自洽要的是布里渊区里均匀撒点能带要的是沿高对称路径的一串点。路径从哪来传统做法是查网站或商业软件拿到高对称点坐标再写脚本插值。新版 VASPKIT 内置了与 SeeK-Path 一致的对称性分析直接吐路径代价是当前不支持三斜晶系遇到三斜体系还得回到外部工具。以 GaP 为例在含 POSCAR 的目录下vaspkit 3 # K-Path Generator 3 # 3D bulk structure (Experimental)输出会给出建议路径形如GAMMA-X-U|K-GAMMA-L-W-X同时生成两个文件PRIMCELL.vasp和KPATH.in。这里有个硬性前提——路径是按原胞primitive cell的倒空间算的能带计算的结构文件也必须是原胞。所以下一步不是直接提交而是cp PRIMCELL.vasp POSCAR cp KPATH.in KPOINTS忘记这一步是能带计算最常见的翻车方式路径和晶格对不上跑完画出来的图要么分段、要么高对称点位置全错而且 VASP 不会报任何错。KPATH.in第二行的数字是每小段路径的插值点数默认值偏密机时紧张时把它调小粗扫一遍确认形状再加密比一次性上大点数划算。3.2 从 KPATH.in 到能带计算的 KPOINTSKPATH.in不能直接改名当 KPOINTS 用至少要先确认两件事权重行是不是全 0以及是否要接在自洽的 IBZKPT 后面。PBE 能带的常规流程是三步第一步用均匀 K 点做自洽得到收敛的电荷密度第二步把KPATH.in作为 KPOINTSINCAR 里设ICHARG 11读入自洽电荷密度做非自洽第三步用功能21)下的提取任务处理EIGENVAL、DOSCAR拿到能带数据。vaspkit 21 # DFT Band-Structure 211 # 提取能带数据输出成可绘图的文本具体任务号在不同小版本间有微调进菜单后看提示文字比记编号可靠。提取出来的数据一般是一列 K 点路径坐标加若干列本征值画图时把费米能平掉即可。开了SET_FERMI_ENERGY_ZERO的话费米能已经移到 0不用再手动减。3.3 投影能带与按元素、按原子的提取只画一条总能带很多问题看不出来。比如某个带底到底来自 Zn 的 s 还是 O 的 p靠总能带猜没意义。功能21)下面有几级投影入口212和253对应指定原子或一组原子的投影能带213和254按元素投影214和255对选中原子求和。0.72 版修掉了 f 轨道投影提取的 bug也修了杂化泛函级别投影能带数据提取的问题做含 f 元素或 HSE06 投影的用老版本会拿到错数据这个坑不太好查因为文件照样生成只是数值不对。二维材料还有单独入口。功能92)是 2D-Materials KitMoS₂ 这类体系的投影能带不考虑自旋极化和自旋轨道耦合可以直接走它省掉自己判断真空层方向、倒空间二维路径的步骤。做二维体系时真空层厚度和 K 点第三方向只取一个点这两件事仍然要自己确认工具不替你做物理判断。3.4 HSE06 杂化泛函能带0 权重 K 点和接续自洽杂化泛函能带比 PBE 多一层麻烦HSE06 计算需要精确交换K 点不能像 PBE 那样随便撒常规做法是先做 PBE 自洽再把能带路径上的 K 点和自洽用的 IBZKPT 合并权重设为 0做一次非自洽。手动拼这个 KPOINTS 很容易出错路径点权重没清零、或者 IBZKPT 行数没对上VASP 要么报错要么算出一个看着正常实则错位的带隙。0.72 版对这条流程做了支持功能25)是 Hybrid-DFT Band-Structure可以在不同 k 路径上做均匀采样的杂化泛函能带也适用于 DFT 和 Meta-GGAGW 除外。实际操作顺序是PBE 自洽 → 生成杂化泛函能带 KPOINTS → HSE06 非自洽。磷化镓那个例子里PBE 会明显低估带隙HSE06 修正后带隙抬到实验值附近两组结果放在一张图里对照是最直观的验证方式。杂化泛函的机时是 PBE 的几倍到十几倍路径点数不要一上来就给满。我的做法是先按默认点数的一半粗算一遍确认带隙量级和带边位置合理再加密重算。这一步看着保守实际省下来的机时比反复调参数多。4. 态密度、热力学校正与差分电荷密度三个高频后处理任务的参数落点4.1 DOS 与 PDOS112 到 115 四个入口怎么选功能11)是 Density-of-States 的总入口下面按“投影到什么”分成几级112给出一个或多个指定原子的投影态密度113按元素给114对选中的一组原子求和115对选中原子的指定轨道求和。选哪个取决于问题想知道某个吸附位点上过渡金属 d 轨道的分布用112指定那个原子想对比两种元素各自的贡献用113按元素出想看整个表面层加起来的态度密度用114对一层原子求和想单独看 d 带中心、d 带宽度用115只留 d 轨道。输出是若干列文本横轴能量、纵轴态密度费米能位置看SET_FERMI_ENERGY_ZERO是否打开。这里有个容易误判的点投影态密度的数值依赖投影半径不同版本默认半径可能不同跨版本对比绝对值没有意义只比形状和峰位。另外 0.72 版修了自旋极化计算里带隙求值的 bug如果之前用老版本算自旋极化体系得到过奇怪的带隙值得重跑一遍。4.2 热力学量校正气相分子和吸附质是两套算法频率计算出来的能量是 0 K 下的电子能加零点振动能做反应能垒、吸附自由能时通常要换到 298.15 K 的吉布斯自由能公式是G E_elec ZPE ΔH(T) - TΔS其中 ZPE 是零点振动能ΔH 和 ΔS 来自振动、平动、转动配分函数。气相分子三项都齐全吸附质则不同——它被固定在表面平动和转动被冻结只剩振动贡献所以两套校正不能混用。VASPKIT 的热力学校正功能把气相分子和吸附质分开处理输入是频率计算得到的振动频率输出是校正后的自由能。吸附质这一侧有个长期存在的争议点低频振动模用谐振近似偏差很大有些流程会把低于某个阈值的频率截断或替换成固定值。手册里给的是标准谐振处理做催化自由能图时要不要额外处理低频模取决于你对比的是哪篇文献的数值这一点没有统一答案但至少要知道自己用的是哪套。4.3 差分电荷密度三次计算、一次相减差分电荷密度回答的是“成键以后电荷往哪挪”。做法是三次计算体系 AB 一次单独 A 一次单独 B 一次三次的格点必须完全一致然后CHGCAR_AB - CHGCAR_A - CHGCAR_B。格点不一致是最常见的失败原因A、B 两次计算如果用了不同的晶胞尺寸或不同的 NGXF/NGYF/NGZF相减会直接报错或者得到一堆噪声。功能31)是 Charge Spin Density 的入口相减和格式转换都在里面。转成可视化软件能读的格式也有对应任务316把 CHGCAR 转成 XcrySDen 格式426对 LOCPOT 做同样的转换。得到差值以后等值面取多少是个经验活取太大只剩几个孤立的点取太小整片糊在一起一般从最大值的 10%~20% 开始试配合二维切面看电荷转移方向比只看三维等值面可靠。5. 从报错到结果错位五条现场排查记录这一章的五条都是“现象 → 原因 → 解决”的写法按遇到频率排序。前两条会让任务直接失败中间两条不报错但结果可疑最后一条是纯粹的工具使用问题。5.1 现象VASP 只读到第一个元素就报类型数不一致报错信息形如the type information is not consistent with the number of types同时日志里只出现了 O 的赝势Zn 完全没被识别。原因是 POSCAR 从数据库下载或者从 Windows 传过来时元素行和坐标行用了制表符\t而不是空格分隔VASP 的字符串解析按空格切分遇到制表符会把整行当成一个字段。INCAR 里同样的问题会以更诡异的方式出现比如某个参数名后面跟了一串制表符VASP 读到的值和你看到的完全不是一回事。解决方式是提交前跑一遍109它会把 INCAR 和 POSCAR 里的分隔符归一化顺便检查赝势元素。养成习惯以后这类问题基本不会再消耗时间。补充一句从 Windows 编辑过的文件除了制表符还可能带 BOM 头或 CRLF 换行dos2unix过一遍再让 109 检查更稳。5.2 现象算完不报错但带隙、吸附能明显不对这是最伤人的一类。VASP 不会自动检查 POSCAR 元素行和 POTCAR 元素是否一致你算石墨烯用 H 的赝势它照样跑完结果一定是错的。触发场景通常是手改了 POSCAR 的元素顺序或者体系换了元素POTCAR 还是旧的或者用cat手动拼 POTCAR 时顺序拼反了。解决方式是每次改完 POSCAR 都重新生成 POTCAR不要复用。生成后grep TIT POTCAR和 POSCAR 元素行逐行对照顺序必须完全一致。功能107可以按指定元素顺序重排 POSCAR适合接手别人目录时把结构对齐到已有赝势。109会做这个一致性检查但它是提交前的检查不是 VASP 运行时的检查跳过就没人拦你。5.3 现象ENCUT 相关警告或者两组计算能量对不齐INCAR 里没写 ENCUT 时VASP 取 max(ENMAX)这个值随赝势后缀变化。你的对照组用了无后缀赝势实验组用了_pv两组 ENCUT 自动变成两个值能量差里就混进了基组误差。另一种情况是模板给了PREC HighVASP 自动把 ENCUT 抬到 max(ENMAX)×1.3你以为自己在 400 eV 下算实际在 520 eV。解决方式是显式写死 ENCUT并且同一批计算用同一个值取值不低于所有元素 ENMAX 的最大值。比较不同赝势时先grep ENMAX POTCAR确认两边的最大值再决定统一到哪个数。做晶格常数优化需要更高精度时宁可手动抬 ENCUT也不要靠PRECHigh隐式抬。5.4 现象能带路径跑完图上的高对称点对不上路径明明是从工具里生成的画出来的带结构却和文献对不上高对称点标签的位置也不对。原因是用了 conventional cell 而不是 primitive cell。VASPKIT 生成KPATH.in时基于原胞同时输出了PRIMCELL.vasp如果没把PRIMCELL.vasp覆盖到 POSCAR路径坐标和你实际算的晶格不是同一套倒空间。解决方式固定成两步生成路径后先cp PRIMCELL.vasp POSCAR再cp KPATH.in KPOINTS然后重新做一次自洽原胞变了电荷密度不能复用。如果体系本来就是原胞这一步等于覆盖成同名结构没有副作用。5.5 现象调完参数重跑INCAR 里的设置全没了默认SET_INCAR_WRITE_MODE是OVERRIDE每次跑 101 都会覆盖已有 INCAR。做参数扫描时你手改的 U 值、MAGMOM、IMAGES 会在下一次生成时被清掉而且没有任何提示。更隐蔽的是模板本身不完整比如 NEB 模板的IMAGES数目、DFTU 的 U 值程序不知道你的体系必须手动补。解决方式是把~/.vaspkit里的这一项改成BACK-UP-OLD备份旧文件再写新的或BACK-UP-NEW写到.new文件里改完重跑一次确认备份文件确实生成。另外模板生成的 INCAR 永远当成草稿看提交前逐行过一遍关键参数。6. 进阶任务与验证手法反折叠、3D 能带和小体系先测到这一步常规流程已经能跑通剩下的问题是哪些功能值得花时间、怎么验证结果没跑偏。下面这张表是我常用的进阶入口清单任务号按主菜单顺序整理具体行为以进菜单后的提示为准任务号功能适用场景验证要点28能带反折叠超胞、表面重构先确认超胞与原胞的对应关系233D 能带各向异性体系先用粗网格测一遍再加密26费米面金属输运检查 k 网格是否足够密73VASP2BoltzTraP 接口热电输运确认费米能对齐505NEB 路径线性插点反应路径初猜检查 IMAGES 数与反应坐标单调507虚频校正过渡态验证校正前后频率符号必须变化74 / 92自定义界面、2D 材料工具原子电荷着色、MoS₂ 投影带先在小体系上试参数能带反折叠这块0.72 版支持 DFT、杂化泛函和 Meta-GGAGW 除外级别示例目录里有几组对照。它的作用是超胞计算完以后把折叠回原胞的能带重新展开判断某个带到底来自哪支原胞能带。反折叠最容易出错的地方不是计算本身而是超胞和原胞的取法超胞矩阵写错展开出来的带看着很漂亮但物理上没意义。我的做法是先用一个 2×1×1 的小超胞跑通确认展开结果和直接算原胞的能带在对应位置吻合再上大超胞。3D 能带任务 23和费米面任务 26都是网格密集型任务惩罚很直接k 网格给粗了三维曲面会出现锯齿状的假结构你会误以为是物理效应。先用稀疏网格看整体拓扑确认没有明显断裂再按倍数加密。任务 73 把 VASP 结果转给 BoltzTraP 算输运时费米能的位置必须在两边对齐否则电导、塞贝克系数的符号都可能是反的。需要提醒的是功能 74 的自定义界面属于测试性质用它做原子电荷着色或者自定义处理时先在示例体系上跑一遍确认输出格式和你的预期一致再接到正式数据上。测试功能出问题不会给明确报错只会静默生成一个看起来正常的文件这是最费时间的一类故障。从那以后我每次换赝势、改 POSCAR 或者接手新目录都强制先跑一遍 109再grep TIT POTCAR对一眼元素顺序最后才提交任务。这套动作花不到一分钟但省下来的返工时间够把一条能带路径算三遍。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询