GPUMDkit 从 VASP 输出制作训练标签
从九组真实自洽位移计算提取能量力和virial,并单独提取ZnS的Born电荷。
阅读本篇目录
下载原始输入输出、转换脚本与绘图资料包。解压进入目录,inputs 是原始参考输入,reference 是实际结果。bash run.sh all 只做转换与检查,不重新启动 DFT;每次在 work 新建目录,LAST-RUN.txt 记录位置。下面独立示例均从资料包根目录开始。
先确定 OUTCAR 来自什么计算#
本篇从 9 个 Si 冻结位移结构的自洽 OUTCAR开始,分别用 GPUMDkit 的 Python 与 Shell 路线输出 NEP 数据,再提取已有 ZnS 线性响应计算中的 Born 有效电荷。
顺序是:检查计算类型与收敛 → 转换 OUTCAR → 查看字段和帧数 → 必要时规范标签 → 保存原始对应关系。固定电荷能带计算(如 ICHARG=11)的输出不应作为普通自洽力标签来源;坐标文件也不能代替能量、力或响应标签。

1. 对照本例的 VASP 设置#
本例基准输入:
SYSTEM = Si optical frozen displacement
ENCUT=550
PREC=Accurate
EDIFF=1E-6
ISMEAR=0
SIGMA=0.05
ISYM=0
NSW=0
IBRION=-1
LREAL=.FALSE.
LASPH=.TRUE.
LWAVE=.FALSE.
LCHARG=.FALSE.
NELM=150
ALGO=Normal
这里没有设置固定电荷的 ICHARG=11。9 个输入的几何位移保存在各自 POSCAR 中,原 INCAR、POSCAR、KPOINTS 与 OUTCAR 都在 inputs/vasp。本例提取的是已完成的实际计算,不需要为了练习转换再跑一次 DFT。势文件由使用者按自己的环境准备。
2. Python 路线:直接生成 train.xyz#
module purge
module load gpumdkit/1.5.8
mkdir my-vasp-labels
cp -r inputs/vasp my-vasp-labels/results
cd my-vasp-labels
gpumdkit.sh -out2exyz results
head -n 4 train.xyz
得到 9 帧、每帧 2 原子。主要字段:
| 字段 | 本篇含义 |
|---|---|
Lattice |
以 Å 表示的完整 3×3 晶胞 |
energy |
VASP TOTEN,单位 eV/晶胞 |
forces |
各原子的 x/y/z 力,eV/Å |
virial |
完整张量,eV/晶胞 |
pbc |
周期边界 |
这一入口会写当前目录的 train.xyz,所以每次使用新的工作目录。转换后保留原 OUTCAR 与帧来源,不靠文件是否生成来判断原计算是否收敛。
3. Shell 路线:输出 NEPdataset#
另从资料包根目录准备一份独立例子:
mkdir my-vasp-shell
cp -r inputs/vasp my-vasp-shell/results
cd my-vasp-shell
gpumdkit.sh -out2xyz results
head -n 4 NEPdataset/train.xyz
同样得到 9 帧。Shell 路线可能使用 Energy、Virial 等键名和不同的小数位数,Python 路线使用标准小写字段。它们代表的量应分别对照原日志;普通几何转换不能补出缺失标签。
本例最大原子力来自实际位移结构。两条路线与原始 TOTEN、力、晶胞和由应力换算的 virial 一一对应;小数输出精度不同,比较时允许相应舍入误差。后续工具若要求标准键名,可按标签检查与 DeepMD 衔接规范文件。
4. 单独提取 Born 有效电荷#
从资料包根目录:
mkdir my-born
cp -r inputs/born my-born/results
cd my-born
gpumdkit.sh -out2xyz_bec results
head -n 4 NEPdataset/train.xyz
这是 2 原子 ZnS 的既有实际线性响应输出。该入口从每个 OUTCAR 取末构型和对应的完整 Born 块,输出包含:
Properties=species:S:1:pos:R:3:forces:R:3:bec:R:9
每原子后面增加 9 个分量,按 xx xy xz yx yy yz zx zy zz 排列。本例 S 与 Zn 的对角元约为 −2.06282 e、+2.06282 e,两原子张量之和接近零。

Born 标签必须来自相应响应计算,不能从普通坐标或普通能量/力 OUTCAR 推测。其 VASP 前置过程见极化与介电响应。
5. 最后保存什么#
保存原始计算目录、转换后的 train.xyz、原子顺序与帧来源。若要继续训练 qNEP,保留含 bec 的 NEP 原件:普通 DeepMD 能量/力数据往返不会自动保留这个额外字段。
bash run.sh all
bash run.sh plots
这两个命令从资料包根目录执行,分别完成整套转换与参考图重绘。NEP 精度判断与数据读写核对不同,可继续看预测误差与能量参考。