简介:《VASPKIT中文手册1》面向使用VASP开展材料与催化计算的研究生、科研人员和计算物理初学者,聚焦VASPKIT这一轻量级预-后处理工具的入门与功能查阅,帮助读者在不依赖复杂图形界面的情况下理清命令行操作与常见计算流程。手册围绕输入文件生成与检查、结构对称性分析、PBE与HSE06能带、分波与局域态密度、热力学量校正、差分电荷密度、NEB路径处理与虚频校正、能带反折叠、3D能带、费米面及VASP2BoltzTraP接口等模块展开,并附菜单功能说明与测试功能提示,便于按任务查找对应功能。资源为1个PDF文件,压缩包约2.37MB,轻便易存,适合作为日常查阅和功能索引。已有3576人学习,可作为VASP计算流程中的工具书与操作参照。
1. VASPKIT 是什么:一个 5 MB 的二进制凭什么接管 VASP 的预-后处理
算完一个能带,OUTCAR、vasprun.xml、CHGCAR 摊在目录里,很多人第一反应是开 Python 写脚本,或者翻出几年前别人给的 awk 文件改一改。VASPKIT 中文手册讲的正是另一条路:一份用 FORTRAN 编译、在 Linux 下直接跑的二进制程序,体积只有 5 MB 左右,不依赖 Python 生态,不用编译,解压即可用,把 VASP 的输入文件生成、能带路径、分波态密度、差分电荷密度、3D 能带、费米面、NEB 路径插点、热力学量校正这些事全部收进一个菜单里。它更适合刚接手 VASP 的新人、以及不想为了一次数据处理重新配环境的老手;手册里的 74 号「测试功能」入口还留了自定义扩展的余地。这一篇按配置、四件套生成、能带与态密度、踩坑、催化链路五段拆开讲,每一步都能照着敲。
2. 环境配置与 .vaspkit:把赝势路径、INCAR 写模式和泛函选型钉死
拿到压缩包先别急着跑,VASPKIT 的行为几乎全部由家目录下的一个隐藏文件决定。这个文件没配对,后面生成出来的 POTCAR 可能是错的,INCAR 可能把你手改的内容覆盖掉,费米能也没归零,画图时横坐标要从一堆绝对值里自己减。所以配置这一步值得慢一点。
2.1 目录布局与 PATH 注入
解压后目录结构大致是bin/(可执行文件)、examples/(各功能的测试算例)、how_to_set_environment_variable(配置模板)。建议不要把包丢在/tmp或者桌面这种会被清理的地方,固定放在一个长期路径下,比如/opt/vaspkit.0.72,后面所有路径都以它为例,你按自己实际的 bin 目录替换。
# 1) 拷贝配置模板到家目录,文件名必须是 .vaspkit cp -f /opt/vaspkit.0.72/how_to_set_environment_variable ~/.vaspkit # 2) 赋予可执行权限,压缩包解压后经常丢掉执行位 chmod u+x /opt/vaspkit.0.72/bin/vaspkit # 3) 把 bin 目录写进 PATH,避免每次敲绝对路径 echo 'export PATH=/opt/vaspkit.0.72/bin/:$PATH' >> ~/.bashrc source ~/.bashrc # 4) 验证能否被 shell 找到 which vaspkit这段的每一步都不是可选的。第一步的-f是强制覆盖,如果你之前调过配置,重跑这一步会把旧配置冲掉,改的时候要么先备份~/.vaspkit,要么去掉-f;第二步的chmod u+x针对的是执行位,报Permission denied的场景里十有八九是这里没做;第三步的>>是追加,别写成>,否则整个.bashrc会被覆盖;第四步只是确认 PATH 生效,如果which输出为空,先source ~/.bashrc再看,或者直接开一个新终端。多人共用的机器上,把 PATH 写进.bashrc只对当前账户生效,换账户要重做一遍。
examples/目录不要删。手册里每个功能后面几乎都跟着一句「见 examples 下某目录」,这些算例本身就是最省事的验证手段:配置改完,进examples/ZnO_optimization或者examples/hybrid_DFT_band跑一遍,能出结果就说明环境没问题,比在真实项目里试错成本低得多。
2.2 .vaspkit 关键字段逐行拆解
模板文件打开后是若干行「值 + 注释」的结构,#后面是说明。真正影响结果的就那几个,下面这张表按重要程度排:
| 字段 | 常用取值 | 作用与影响 |
|---|---|---|
VASP5 | .TRUE. | POSCAR 第五行是否带元素名。用 VASP 5.x 一定为.TRUE.,否则元素行被当成坐标读,直接错位 |
PBE_PATH/GGA_PATH/LDA_PATH | 绝对路径 | 赝势库位置。生成 POTCAR 时按POTCAR_TYPE去对应目录取文件,路径写错就报找不到 |
POTCAR_TYPE | PBE/GGA/LDA | 决定从哪个库取势。绝大多数材料计算用PBE |
RECOMMENDED_POTCAR | .TRUE. | 是否按官方推荐自动挑后缀(_pv、_d、_h等)。关掉后可能取到不含半芯态的版本 |
MINI_INCAR | .FALSE. | 为.TRUE.时只写精简 INCAR,参数更少,适合熟手自己补 |
SET_FERMI_ENERGY_ZERO | .TRUE. | 把费米能平移到 0,后处理出的能带、DOS 数据直接可用,省一次手工减法 |
SET_INCAR_WRITE_MODE | OVERRIDE/APPEND/BACK-UP-OLD/BACK-UP-NEW | 生成 INCAR 遇到同名文件时的行为,见下 |
GW_POTCAR | .FALSE. | 是否使用 GW 推荐赝势,普通 DFT 保持关闭 |
SET_INCAR_WRITE_MODE是最容易吃亏的一项。默认OVERRIDE意味着你手调过的 INCAR 会被直接盖掉,而且没有提示。稳妥的做法是改成BACK-UP-OLD:写新文件前把旧的存成INCAR.old,出问题还能翻回去对参数。APPEND是追加,多跑几次就会出现重复的ENCUT、ISMEAR,VASP 只认最后一次出现的值,排查起来非常费劲。BACK-UP-NEW则是新内容写进INCAR.new,原文件不动,适合你想对比两套参数的时候用。
配置文件里的路径建议写绝对路径,不要写~/POTCAR/PBE这种带波浪号的。波浪号在 shell 里会被展开,但程序读配置文件时不一定走 shell 展开,某些环境下会原样当作字面量处理,结果就是「明明文件在那儿却报找不到」。同理,路径里别带中文和空格。
2.3 首次启动自检与两个常见启动失败
配置改完,直接敲vaspkit。正常情况会看到一个带版本号、开发者和主菜单的界面,说明二进制能跑、配置能读。这时候输入0退出即可,不需要立刻选功能。
启动失败最常见的是两类。第一类是动态库版本:
# 典型报错 vaspkit: /lib64/libc.so.6: version `GLIBC_2.14' not found这说明所在系统的 C 库比编译时用的老。不建议为了一个后处理工具去升级系统 glibc,那会把一堆系统命令一起带走。可行的路是找一份在更低版本环境编译的二进制,或者干脆把计算任务放到版本较新的机器上做后处理。第二类是权限问题,报错形如-bash: ./vaspkit: Permission denied,回到 2.1 补一条chmod u+x就行。
还有一类不报错但很烦的情况:程序能启动,但生成 POTCAR 时提示找不到赝势。这时候先ls一下.vaspkit里写的那个目录,确认里面确实有Zn_pv、O这类文件名,再看文件名大小写。赝势库常见的问题不是路径错,是文件名和 POSCAR 里的元素符号大小写不一致,程序按字符串匹配,zn和Zn是两个东西。
提示:改完
~/.vaspkit不需要重装,下次启动自动生效。但如果同时在多个终端里跑,已经启动的进程用的是启动那一刻读到的配置,改完配置记得重开。
3. 四件套生成与检查:101/102/104/109 任务链怎么串
VASP 跑起来至少需要 INCAR、POSCAR、POTCAR、KPOINTS 四个文件,其中三个是纯文本、格式还各有讲究,手写一次两次还行,一天跑十几个体系就是纯体力活。VASPKIT 从 0.71 起把这几件事整合到了主菜单的 1 号入口,下面按实际执行顺序走一遍。
3.1 POSCAR 从哪来,以及 107 的原子重排
POSCAR 是唯一一个不能全靠工具凭空生成的:晶格和坐标得有个来源。常见做法是从材料数据库下 CIF 或现成的 POSCAR,或者用建模软件搭好导出。下载来的文件往往带着原始文件名,比如ZnO-xxxx.vasp,第一步先改名:
# 进入工作目录,把下载的结构文件统一成 POSCAR cp -f ZnO-xxxx.vasp POSCAR # 看一眼前几行,确认元素行、原子数、坐标类型对不对 head -8 POSCARhead -8是有必要的。POSCAR 前八行分别是注释、缩放系数、三行晶格矢量、元素行、原子数行,再往下是Direct/Cartesian和坐标。从数据库拿到的文件,元素行有时写成Zn O,有时写成Zn1 O1,有时干脆没有(VASP 4 风格),这三种情况后面生成 POTCAR 的结果完全不同。
如果体系元素顺序和你想要的赝势顺序不一致,用 107 号功能按指定顺序重排:
vaspkit # 主菜单输入 1 进入 VASP Input Files Generator # 子菜单输入 107 Reformat POSCAR File by Specified Order of Elements # 按提示输入期望的元素顺序,例如 Zn O107 做的事是按你给的顺序重写 POSCAR 的元素行和坐标块,保证 POSCAR 的元素顺序和后面 POTCAR 的顺序严格对齐。这个顺序为什么重要,第 5 章会单独讲,它是最不容易发现、后果又最严重的一类错误。
3.2 101 生成 INCAR:模板键位怎么选
有了 POSCAR,在同一个目录下启动 vaspkit,主菜单1,子菜单101进入 INCAR 模板。程序会列出一串两字母的键位,每个对应一类任务:
| 键位 | 含义 | 什么时候用 |
|---|---|---|
ST | 静态计算 | 态密度、能带、电荷密度前的自洽步 |
LR | 晶格弛豫 | 优化晶胞参数和原子位置 |
SR | 标准弛豫 | 只优化原子位置,晶胞固定 |
H6 | HSE06 杂化泛函 | 需要准确带隙、且算得动的时候 |
D3 | DFT-D3 无阻尼校正 | 吸附、层状体系补范德华 |
PU | DFT+U | 过渡金属氧化物带隙修正 |
NE | NEB 过渡态 | 反应路径搜索 |
MD | 分子动力学 | 跑 AIMD |
FQ | 频率计算 | 验证驻点、算零点能 |
键位可以组合,比如H6D3表示 HSE06 加 D3 校正的静态计算。程序还支持类似STH6D2这种连写,按顺序解析。
# 完整流程示例:先做晶格弛豫 vaspkit # 1 -> VASP Input Files Generator # 101 -> Customize INCAR File # 输入 LR,回车生成的 INCAR 里ENCUT默认是注释掉的,只保留了PREC = Normal,这时候 VASP 会自动取 POTCAR 中所有元素ENMAX的最大值。LR模板默认给的是PREC = High,对应ENCUT = max(ENMAX) * 1.3,优化晶格常数时用高截断是合理的。但要注意,较新的官方手册已经不推荐PREC = High这种隐式放大,更推荐写成PREC = Accurate再手动指定ENCUT,这样同一体系在不同任务里的截断能保持一致,能量才可比较。
# 检查 POTCAR 里每个元素的 ENMAX,确认 ENCUT 下限 grep ENMAX POTCAR这条命令会把每个元素的推荐最大截断能打出来,把最大值乘 1.3 就是比较保险的手动ENCUT。如果你的 INCAR 里写了ENCUT但小于某个元素的ENMAX,VASP 会在 OUTCAR 里警告,很多人不看警告,最后得到一组偏软的结果。
模板生成后一定要手改的地方:DFT+U 的LDAU段(U 值和哪个轨道加 U,程序不知道你的体系)、NEB 的IMAGES数目、磁性体系的MAGMOM。模板只负责把框架搭好,物理参数得自己填。
3.3 102 的 K 点密度:倒空间步长而不是数个数
KPOINTS 的生成在子菜单102。程序会先问你撒点方式,2是 Gamma-centered,1是 Monkhorst-Pack。对六方、三角以及大部分半导体体系,Gamma-centered 更稳妥,因为它保证 Gamma 点被包含在网格里。
接着问的是倒空间分辨率,单位是 2π/Å,本质上是一个「步长」:把倒格矢长度除以这个数,就得到该方向的 K 点数。程序给的参考值是低精度 0.06~0.04、中精度 0.04~0.03、高精度 0.02~0.01,并提示 0.04 通常够用。
vaspkit # 1 -> VASP Input Files Generator # 102 -> Generate KPOINTS File for SCF Calculation # 2 -> Gamma Scheme # 0.04这个做法的价值在于它按倒格矢的实际长度分别算三个方向的点数,而不是简单地在三个方向用同一个数字。对非正交晶系,实空间晶格常数和倒格矢长度不成反比,用「ka≈kb≈kc」这种经验规则凑出来的网格,在某个方向上可能明显偏疏。
判断网格够不够,有个老经验:K 点数乘以对应方向的实空间晶格长度,结果大于 20 Å 一般就够。手册里举的例子算出来是 29.62 Å,余量充足。这个判据只适合快速判断,真要做收敛测试还是得扫一遍。
同一批命令里,程序会顺带生成 POTCAR,前提是.vaspkit里的PBE_PATH指对了,并且RECOMMENDED_POTCAR为.TRUE.。生成后会提示Written POTCAR File with the Recommended Potential,这句话的意思是它按官方推荐挑了后缀。赝势后缀的区别值得记一下:无后缀是标准价电子,_pv/_sv/_d把次外层的 p、s、d 也当价电子处理(某些体系里这些电子确实参与成键),_h是针对短键二聚体(O2、CO、N2、F2、P2、S2、Cl2 这类)的专用版本。做 Bader 电荷分析时需要用带_pv或_sv的版本,否则芯电荷划分会出问题。
3.4 104 手动指定赝势与元素一致性
自动推荐不满足需求时走104,逐个元素指定:
vaspkit # 1 -> VASP Input Files Generator # 104 -> Generate POTCAR File with User Specified Potential # 按 POSCAR 中的元素顺序依次输入,例如: # O # Zn_pv输入顺序必须和 POSCAR 元素行一致,这是硬约束。输完可以用一条命令确认结果:
grep TIT POTCAR输出里会出现PAW_PBE O ...和PAW_PBE Zn_pv ...这样的行,一眼就能看出实际用的是哪套赝势。这个习惯建议固定下来,每次生成 POTCAR 后都敲一遍,比事后在 OUTCAR 里翻要快得多。
选无后缀还是带后缀,本质上是个成本与精度的权衡。带_pv的赝势价电子多,截断能需求上去,计算量增加明显。可行的做法是对同一个体系用两套赝势各跑一次关键性质(比如吸附能或带隙),差异在误差范围内就用便宜的那套。
3.5 108 与 109:把检查做成流水线
前面几个功能是分开的,108把它们串成一条链:设 INCAR、设 K 点密度、生成 KPOINTS 和 POTCAR、最后自动调109做一次全面检查。109单独也能用,它做两件事:修正 INCAR 和 POSCAR 的格式问题,以及核对 POSCAR 元素与 POTCAR 元素是否一一对应。
vaspkit # 1 -> VASP Input Files Generator # 109 -> Check All VASP Files如果元素不匹配,会看到类似这样的输出:
Element type in POSCAR may be not corresponding to POTCAR POTCAR: Zn_pv POSCAR: Zn这条提示出现时不要忽略。VASP 本身不做这个校验,你就算用氢的赝势去算石墨烯它也照跑不误,只是结果全错。这也是「提交任务前先 KIT 一下」这个习惯最实在的价值。
注意:109 能修的是分隔符、行数、元素顺序这类格式问题,修不了物理参数。
ISMEAR选错、SIGMA太大、ISPIN没开,这些它都看不出来。
4. 能带与态密度:从 3 号菜单取路径到 21/25 号出数据
能带计算和普通自洽计算的分水岭在 KPOINTS:不再是均匀撒点,而是沿着第一布里渊区内的高对称路径取点。路径怎么定、点在哪儿插值、投影取哪些原子,这几步决定了后面画出来的图有没有意义。
4.1 3 号菜单取路径:KPATH.in 与 PRIMCELL.vasp
主菜单3是 K-Path Generator。进去后先选结构维度,3对应 3D 体材料。程序读 POSCAR,做对称性分析(内部用的是 spglib),输出两样东西:一条或多条建议路径(形如GAMMA-X-U|K-GAMMA-L-W-X),以及一个KPATH.in文件。同时还会生成PRIMCELL.vasp,也就是该结构的原胞。
vaspkit # 3 -> K-Path Generator # 3 -> 3D bulk structure ls KPATH.in PRIMCELL.vasp head -5 KPATH.inKPATH.in的第二行是每一小段路径上的插值点数。默认值是按路径长度自动分配的,如果体系大、算不动,把这个数字调小是最直接的手段;反过来,如果画出来的能带折线感很强,说明点太稀,调大即可。
这里有个容易翻车的地方:能带路径的高对称点定义只对原胞成立。如果 POSCAR 里是惯用胞(比如纤锌矿 ZnO 常见的六方惯用胞),直接拿它去算路径,得到的高对称点坐标和实际布里渊区对不上,图能画出来但物理上是错的。正确做法是用生成的PRIMCELL.vasp覆盖 POSCAR:
# 先备份惯用胞,再用原胞作为计算结构 cp POSCAR POSCAR.conv cp PRIMCELL.vasp POSCAR这一步做完,记得重新走一遍 102 生成 KPOINTS(自洽步用)和 104 生成 POTCAR,因为原子数变了。手册里特意提醒了这一点,但实际项目里因为漏做这步导致能带形状对不上的情况仍然不少。
4.2 PBE 与 HSE06 能带的取数差异
PBE 能带的流程是标准的两步:先自洽,再用路径上的 K 点做非自洽。21 号菜单负责这条路,第一步生成能带计算用的 KPOINTS,第二步在算完之后提取数据。
# 第一步:自洽(用 102 生成的均匀网格 KPOINTS) # 第二步:生成能带路径 KPOINTS vaspkit # 21 -> DFT Band-Structure # 211 -> 生成能带计算用 KPOINTS # 第三步:提交非自洽计算后,提取能带数据 vaspkit # 21 -> DFT Band-Structure # 212 一带的任务号 -> 提取能带数据HSE06 走 25 号菜单,差别不只是换个泛函。杂化泛函的能带计算对 K 点路径的均匀性要求更高,因为屏蔽交换部分要在路径上做积分。0.72 版在这方面补了一个能力:支持沿不同 k 路径用均匀 k 点采样做杂化泛函能带,这对之前只能凑合用的场景是个实质改进。代价是计算量,HSE06 的能带计算通常比 PBE 贵一到两个数量级,路径点数要克制。
投影能带的提取按对象分:212一带的任务对应「一次提取一个或多个原子的投影」,213一带对应「一次提取每种元素的投影」,214一带是「对选定原子求和」。杂化泛函下对应的是253、254、255这组编号。0.72 修复了杂化泛函下投影能带数据提取的一个 bug,如果你的结果里 f 轨道投影明显不对劲,先确认版本。
4.3 PDOS 的 112/113/114/115 分工
态密度在 11 号菜单下。这四个任务号的差别在于「求和对象」,选错了图会重复计数或者漏掉分量:
| 任务号 | 提取对象 | 典型用途 |
|---|---|---|
112 | 指定一个或多个原子 | 看吸附位点上某个原子的贡献 |
113 | 按元素分别输出 | 快速判断各元素在费米面附近的权重 |
114 | 对选定原子集合求和 | 一个基团、一个团簇的整体贡献 |
115 | 对选定原子且指定轨道求和 | 只关心 d 带中心、p 轨道参与度时用 |
vaspkit # 11 -> Density-of-States # 113 -> 按元素输出 PDOS # 按提示选择泛函类型与是否需要投影到轨道输出一般是几列文本,第一列能量,后面按轨道或原子分列。SET_FERMI_ENERGY_ZERO为.TRUE.时,第一列已经以费米能为零点,画图直接当横坐标用。0.72 还修了 f 轨道投影的一个 bug,稀土和锕系体系建议升级到这一版再出图。
做 PDOS 之前,自洽步的 K 点网格要比做结构优化时密,ISMEAR用-5(四面体方法)配合较大的网格,得到的态密度更平滑。具体密度同样可以用 102 生成时把分辨率调到 0.02~0.03。
4.4 反折叠 28、3D 能带 23 与费米面 26
这三个功能属于「不做也能发文章,做了图会更好看」的类型,但对超胞体系的解读确实关键。
能带反折叠在 28 号菜单。做表面吸附、掺杂超胞时,能带会因为超胞折叠变得一团乱,反折叠把超胞的能带投影回原胞布里渊区,能看出哪些带来自衬底、哪些来自吸附层。0.72 支持在 DFT、杂化泛函和 Meta-GGA 层面做(GW 不支持),examples/band_unfolding下有现成算例。跑这个功能的前提是超胞和原胞的结构文件都在手边,且原子对应关系清楚。
3D 能带在 23 号菜单,输出的是能量在倒空间三个方向的分布,适合看各向异性明显的体系(层状材料、拓扑材料)。这类数据体量大,K 点网格别铺太密,先粗扫一遍看形状,再局部加密。
费米面在 26 号菜单,通常接着 3D 能带的数据做,本质是找某个能量面上的等值面。算之前要把自洽的 K 点网格加密到足够分辨费米面的精细结构,不然出来的面是残缺的。
提示:这三个功能都依赖足够密的 k 网格,但它们本身不做自洽。网格在自洽步就定死,后处理只是取数,所以别指望在后处理阶段「补」精度。
5. 避坑与排查:五条踩过的记录
这一节按「现象 → 原因 → 解决」写,全是生成文件、跑任务、看结果这条链上真实会卡住的地方。
5.1 现象:任务秒退,OUTCAR 里只有 O 没有 Zn
原因:从数据库下载的 POSCAR,元素行和坐标之间用的分隔符是制表符\t,VASP 读取时按空白切分,遇到制表符的处理和空格不一致,元素行解析中断,后面的原子数对不上,最终只识别出一部分元素。同类问题也会出现在 INCAR 里,尤其是从 Windows 拷过来的文件,除了制表符还可能带 CRLF 换行。
解决:跑一次 109 做格式修正,它会把制表符统一成空格并检查行结构。更彻底的办法是拿cat -A POSCAR | head看一眼有没有^I(制表符)和^M(回车),有就先dos2unix再处理。这个习惯我在跨系统拷文件时固定保留。
5.2 现象:任务正常跑完,能量收敛,但结果明显不合理
原因:POSCAR 的元素顺序和 POTCAR 的元素顺序不一致。VASP 按行顺序把 POTCAR 里的赝势依次分配给 POSCAR 里的元素,不做任何内容校验。你 POSCAR 写的是Zn O,POTCAR 里拼的是O Zn_pv,那 Zn 就用了氧的赝势,算出来的东西毫无意义,但 SCF 照样收敛。
解决:每次生成 POTCAR 后grep TIT POTCAR,和head -7 POSCAR的元素行逐字对一遍;或者直接跑 109,它会打出Element type in POSCAR may be not corresponding to POTCAR这样的提示。用 107 重排 POSCAR 元素顺序是最省事的修复方式。
5.3 现象:启动报 GLIBC 版本找不到
原因:二进制是在较新的 C 库环境编译的,目标机器上的 glibc 版本偏低,符号表里找不到对应版本号。
解决:不建议升级系统 glibc,风险远大于收益。可行的路有两条:找一份在低版本环境编译的二进制,或者把需要后处理的文件拷到版本较新的机器上做。我一般会在一台配置固定的机器上专门放后处理环境,避免每次换机器重踩。
5.4 现象:手调好的 INCAR 参数莫名消失
原因:~/.vaspkit里SET_INCAR_WRITE_MODE是默认的OVERRIDE,再跑一次 101 就把旧文件直接覆盖了,没有任何提示。
解决:改成BACK-UP-OLD,旧的存成INCAR.old;如果在做参数对比,用BACK-UP-NEW写到INCAR.new。养成习惯:跑 101 之前先cp INCAR INCAR.manual,多这一步比事后重调半小时参数划算。
5.5 现象:能带图能画出来,但高对称点位置和文献对不上
原因:用惯用胞而不是原胞去生成能带路径。高对称点坐标是在原胞的倒空间里定义的,惯用胞的倒格矢和原胞差一个变换,路径定义自然错位。
解决:3 号菜单跑完会生成PRIMCELL.vasp,用它替换 POSCAR,重新走 102 和 104,再算一次。替换后原子数变了,之前的 KPOINTS 和 POTCAR 都不能复用。
6. 催化链路与热力学校正:把 NEB 和自由能一次走通
做催化的读者多半是冲着 5 号菜单来的。一条完整的反应路径大致是这样:先用505在初末态之间线性插点生成 NEB 的中间构型,跑完 NEB 之后如果有虚频,用507做虚频校正,路径上的构型可以用405把 XDATCAR 转成 PDB 拿去做可视化。热力学量校正分两类,气相分子和吸附质分子各有一套处理,输出的是零点振动能以及温度对焓和自由能的贡献,最后拼成一张自由能台阶图。
# 生成 NEB 中间构型:准备 IS 和 FS 两个结构目录后 vaspkit # 5 -> Catalysis-ElectroChemi Kit # 505 -> 线性插点生成 NEB 路径 # 路径算完,转成可视化的 PDB vaspkit # 4 -> Structure Editor(或对应结构工具菜单) # 405 -> XDATCAR 转 PDB505的参数里关键是插点数目,它对应 NEB 的IMAGES。数目太少,路径在势垒顶上采样不足;太多则线性插值出来的构型可能互相撞原子。经验做法是先按每 0.5~1 Å 一个点的密度插,跑一遍看能垒形状,再决定要不要加密。507的虚频校正是针对过渡态附近的虚频模式做微调,把沿反应坐标的那个虚频消掉,剩下的才是需要报告的真实虚频。
验证这套流程有没有走对,我一般看三件事:NEB 前后两端构型用506一带的工具对比,确认初末态没被改动;虚频校正前后振动频率的符号变化是否只在目标模式上;热力学量校正的两组输出(气相参考和吸附态)用的温度、压强参数是否一致。这三条里任何一条对不上,台阶图的数值就没法比。
我是被一张自由能图坑过一次之后才养成这个习惯的:气相参考分子的校正参数和吸附态用了不同的温度,整条路径看着平滑,数值全偏。从那以后每次出图前都强制把两组校正的输入参数打出来对一遍,对不上就不往下走。希望帮到你。
本文还有配套的精品资源,点击获取