VASPKIT版本、环境与算例准备
选择1.5.1、核对个人配置,准备实例文件及需要重新生成的VASP波函数。
阅读本篇目录
本专题默认使用 VASPKIT Standard 1.5.1。集群同时保留1.3.5;直接加载不带版本号的模块目前仍指向1.3.5,所以按本文显式选择版本。
1. 加载和切换#
module load vaspkit/1.5.1
vaspkit
看到开头的Standard Edition 1.5.1后再按教程输入。模块的family设置用于避免同一shell叠加两个VASPKIT模块。切换旧版时:
module unload vaspkit
module load vaspkit/1.3.5
vaspkit
VASPKIT是独立的预处理/后处理程序,并不要求它与VASP使用相同的编译器或MPI。集群这里使用上游发布的Linux预编译程序,未把它重新编译成特定GPU版。Python辅助脚本、自动绘图与Fortran程序本身是不同的依赖部分。
2. 两个版本共用个人配置#
两版都读取你自己的~/.vaspkit,不是每版一个独立配置目录。集群包装脚本只在文件不存在时初始化,已有配置不会被切换模块自动覆盖。默认配置中的赝势位置、Python程序和VASPKIT_UTILITIES_PATH因此可能保留为先使用的版本。
先查看相关字段:
grep -E 'UTILITIES_PATH|PYTHON_BIN|PBE_PATH|SYMPREC|SYMMETRY_TOLERANCE' ~/.vaspkit
若准备按1.5.1完成本专题,且需要恢复为该版的集群配置,可以先备份自己的文件,再选择使用该版模板:
cp -p ~/.vaspkit ~/.vaspkit.before-1.5.1
cp "$VASPKIT_ROOT/etc/vaspkit.conf" ~/.vaspkit
这两行会替换你的个人配置,之前自定义的绘图、赝势选择或脚本入口需按需合并;不要在另一个需要旧配置的VASPKIT进程仍运行时执行。备份文件名若已存在,请先换一个名字。完成后恢复原配置:
cp -p ~/.vaspkit.before-1.5.1 ~/.vaspkit
本专题实例没有替换集群公共安装,也没有批量改动用户配置。两版的一些结构菜单编号不同;SYMPREC与SYMMETRY_TOLERANCE等字段也应按目标版模板核对。
3. 打开资料包#
到专题导航下载实例包,进入解压后的目录:
cd vaspkit-examples
python3 prepare.py
prepare.py在本机读取已经安装的1.5.1官方examples,校验版本对应文件,再复制到你的例子目录;已有文件保留。公开下载只包含我们制作的脚本与可公开的计算/后处理材料,不重新分发VASPKIT程序或其官方原始示例。
103、104、108等赝势生成/检查任务需要有权限使用的POTCAR;108运行前可先在其目录输入103,生成与POSCAR元素顺序一致的本地赝势。普通结构和数据提取,进入对应目录即可运行。例如总态密度:
module load vaspkit/1.5.1
cd cases/111
vaspkit < answers.in
head TDOS.dat
answers.in只是逐行键盘输入,不是VASP的INCAR。你也可以输入vaspkit,看屏幕提示,依次输入正文列出的数字或文字。不同任务的“1”可能表示方向、原子选择方式或单位,不能脱离提示理解。
为了反复试参数而不覆盖例子,先复制该例子目录:
cp -r cases/111 my-dos
cd my-dos
vaspkit
大型电荷网格、波函数、长轨迹和搜索任务应放到申请的计算资源内运行;生产VASP计算仍通过Slurm提交。可从yskit选择适用的软件与资源,生成提交脚本,在脚本中运行所需命令。小型结构编辑和查看文本不需要重新运行VASP。
4. 新计算与波函数准备#
公开附件不包含POTCAR、WAVECAR或WAVEDER。普通文本数据的例子可直接后处理;波函数导出、空间LDOS、跃迁矩阵元和能带展开,需要你先产生自己的波函数文件。
calculations提供以下输入目录:
| 目录 | 内容 | 后续使用 |
|---|---|---|
| si-scf | Si规则网格自洽 | 提供CHGCAR给si-line-band |
| si-line-band | Γ-X-L,每段20点,LOPTICS启用 | 211系列、713、714 |
| si-phonon | VASP 6.6.1原胞声子示例 | 203、952–955 |
| cu-fermi | Cu规则倒空间网格 | 123、125、264、265 |
| graphene-unfold | 石墨烯正交超胞及映射 | 282–285 |
| graphene-fermi | 石墨烯9×9×1网格 | 232、233、267 |
| fe-spin | Fe自旋极化示例 | 用于说明磁性波函数格式边界 |
每个目录提供run.sh。这里P100示例使用VASP 6.5.1 GPU入口;原生声子例子使用VASP 6.6.1 CPU程序,脚本通过Slurm申请V100分区资源以复现本例的执行环境。请根据你有权限的分区选择脚本,不能在登录节点直接执行VASP。VASP各版工具链细节见版本说明。
以硅为例,先在自洽目录由有相应使用权限的用户准备PBE赝势:
cd calculations/si-scf
vaspkit
输入103,确认生成的赝势元素顺序与POSCAR一致。然后:
sbatch run.sh
等待作业结束,并检查电子收敛及OUTCAR末尾是否完整。自洽确实完成后:
cp CHGCAR ../si-line-band/
cp POTCAR ../si-line-band/
cd ../si-line-band
sbatch run.sh
si-line-band/INCAR使用ICHARG=11读取自洽电荷,LORBIT=11保存投影,LWAVE=.TRUE.保存波函数,LOPTICS=.TRUE.产生光学矩阵元。线模式采样适合能带与沿路径矩阵元演示,不是收敛光学谱的布里渊区积分网格。
任务完成后,从附件根目录为相应例子补齐文件:
cp calculations/si-line-band/WAVECAR cases/713/
cp calculations/si-line-band/WAVEDER cases/714/
换自己的ENCUT、网格或NBANDS时,要把该次的POSCAR、INCAR、KPOINTS、DOSCAR、EIGENVAL和投影文件一并更新,不能仅替换WAVECAR而留下旧能带索引。Cu的123/125同理从cu-fermi复制WAVECAR;石墨烯282–285从graphene-unfold复制WAVECAR并保留对应映射表。
511/512/515/516使用既有NaCl例子的波函数。自己重算时可参考电荷与成键中的完整VASP流程;不要使用硅或铜波函数搭配NaCl POSCAR。当前124/126/513等边界请直接看对应教程,不建议反复重算试图掩盖程序兼容问题。
5. 弹性与堆垛扫描怎样衔接#
cases/200、cases/201和cases/926保留本次计算的结果。查看已完成结果时直接使用目录中的answers.in。自己重新建模,应复制目录到新位置,再把INPUT.in第一行从2改为1;此时工具执行生成结构阶段。不要在已有同名子目录的地方期待它自动重建。
金刚石201的五点能量—应变设置为:
1
3D
5
-0.01 -0.005 0.00 0.005 0.01
运行201后,在各应变子目录准备合法POTCAR,使用yskit生成VASP提交脚本并提交。固定离子示例采用IBRION=-1、NSW=0;若要离子松弛弹性常数,需改成保持形变晶胞、仅松弛原子的计算,并在所有应变点保持一致。
等全部子目录完成后,把第一行改回2,回到父目录执行:
vaspkit
输入201,得到ELASTIC_TENSOR。同理926生成阶段选择上层原子2、3,完成4个VASP子目录后切到模式2,再输入926及1 1显示一份周期网格。完整示例见二维材料。
6. 如何画图#
本专题的11张数据图均来自附件数据。回到附件根目录:
module load phonopy/4.8.3
python plot.py
图片出现在figures目录。该模块仅提供这里需要的Python、NumPy和Matplotlib,不改变VASPKIT提取的数据。若只想画一条曲线,也可以将DAT文件导入Origin,先按表头识别单位与能量零点;二维GRD数据必须同时读取对应X/Y网格,不能当成简单两列表。
7. 最常见的问题#
- 找不到文件:先执行
pwd和ls,确认位于对应例子目录,且已经运行prepare.py。 - 运行时要求更多输入:检查
answers.in是否属于当前版本;换版本后菜单编号可能改变。 - 只有数据没有图片:多数菜单主要输出数据,自动绘图还依赖个人配置和Python辅助脚本;也可使用附件的
plot.py。 - 输出全零、NaN或不完整:先检查是否选了0帧、空原子集合、错误能带范围或不匹配波函数;不能仅以程序退出码判断科学结果。
- 自己计算得到的数值不同:核对结构、赝势、VASP版本、网格、ENCUT、NBANDS、展宽、能量参照与选择范围,再比较数值。