VTST:提取原子芯处静电势
用alcesp读取真实OUTCAR的最后一组芯处静电势,说明多步日志、构型、原子编号与参考零点。
阅读本篇目录
下载原始输入、工具输出、CSV 和绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd vtst-core-potential
module load ase/3.29.0 vtstscripts/1040
bash read.sh
bash plot.sh
工具版本为 VTST scripts 1040,使用 Perl;ASE 3.29.0、NumPy 和 Matplotlib 用于后处理。数据来自真实 NH₃ 原生振动计算,原子顺序 H、H、H、N;本篇只处理现有文件,不重新提交电子结构计算。
1. 从 OUTCAR 提取#
alcesp.pl 读取 OUTCAR 中 average (electrostatic) potential at core 对应的数值,并写入指定文件:
mkdir potential-new
cd potential-new
cp ../inputs/minimum/OUTCAR .
perl "$VTSTSCRIPTS_ROOT/alcesp.pl" OUTCAR core-potential.dat
cat core-potential.dat
cd ..
参数依次为输入 OUTCAR 与输出文件。省略时默认读取当前 OUTCAR,写入 esp.out;推荐显式给出名字,便于识别不同结构。
实际最小点扫描日志的输出为:
-43.0998
-43.0998
-43.0998
-72.7671
四行依次对应 H1、H2、H3、N4,单位 eV。原始日志仅打印有限小数位,提取不会增加数值精度。
2. 多步 OUTCAR 取的是哪一步#
这个版本的脚本选取最后一组,而不是第一组,也不输出整条时间序列。
本例 OUTCAR 是 ICHAIN=1 的有限位移扫描:先计算参考力,再依次移动自由度。原 DISPLACECAR 为:
0.015 0.015 0.015
0.015 0.015 0.015
0.015 0.015 0.015
0.015 0.015 0.015
因此最后一组静电势对应 N4 沿 z 方向位移 +0.015 Å 后的最后构型,不是未位移参考结构。本包 core-potentials.csv 同时给出最后构型坐标;inputs/*/POSCAR 则保留扫描起点,两者应分清。
grep -n 'average (electrostatic) potential at core' \
inputs/minimum/OUTCAR | tail
grep -n 'NIONS' inputs/minimum/OUTCAR | head
head -n 6 analysis-read/core-potentials.csv
处理自己的优化或 MD 日志时,也先确认最后构型是什么、是否已完成,不能只凭文件名把数值归到初始 POSCAR。
3. 对比两份实际日志#
mkdir saddle-potential-new
cd saddle-potential-new
cp ../inputs/saddle/OUTCAR .
perl "$VTSTSCRIPTS_ROOT/alcesp.pl" OUTCAR core-potential.dat
cat core-potential.dat
cd ..
鞍点扫描最后一组为 H1 −43.2630、H2 −43.2601、H3 −43.2601、N4 −72.5356 eV;同样对应最后的 N-z 位移构型。

这些是 VASP 当前计算约定下的芯处静电势,不是原子电荷、Bader 电荷、芯能级结合能或相对于真空的功函数。不同赝势、参考电势、结构或计算条件下不能直接把绝对值比较解释成化学位移。需要真空能级/功函数时,按相应静电势和真空平台流程处理。
4. 生成自己的表格和图片#
bash run.sh
bash read.sh work-new analysis-new
bash plot.sh analysis-new
结果分别在 work-new/、analysis-new/ 和 figures/。快捷脚本拒绝覆盖已有 work-new;只重新执行小工具,不启动 VASP。几何距离矩阵的另一种小工具见原子间倒距离矩阵。