GPUMDkit专题

GPUMDkit 从 VASP 输出制作训练标签

从九组真实自洽位移计算提取能量力和virial,并单独提取ZnS的Born电荷。

更新于 2026-10-28约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载原始输入输出、转换脚本与绘图资料包。解压进入目录,inputs 是原始参考输入,reference 是实际结果。bash run.sh all 只做转换与检查,不重新启动 DFT;每次在 work 新建目录,LAST-RUN.txt 记录位置。下面独立示例均从资料包根目录开始。

先确定 OUTCAR 来自什么计算#

本篇从 9 个 Si 冻结位移结构的自洽 OUTCAR开始,分别用 GPUMDkit 的 Python 与 Shell 路线输出 NEP 数据,再提取已有 ZnS 线性响应计算中的 Born 有效电荷。

顺序是:检查计算类型与收敛 → 转换 OUTCAR → 查看字段和帧数 → 必要时规范标签 → 保存原始对应关系。固定电荷能带计算(如 ICHARG=11)的输出不应作为普通自洽力标签来源;坐标文件也不能代替能量、力或响应标签。

真实Si自洽位移结构的能量与力标签

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,两原子张量之和接近零。

由实际VASP输出提取的ZnS Born电荷

Born 标签必须来自相应响应计算,不能从普通坐标或普通能量/力 OUTCAR 推测。其 VASP 前置过程见极化与介电响应。

5. 最后保存什么#

保存原始计算目录、转换后的 train.xyz、原子顺序与帧来源。若要继续训练 qNEP,保留含 bec 的 NEP 原件:普通 DeepMD 能量/力数据往返不会自动保留这个额外字段。

bash run.sh all
bash run.sh plots

这两个命令从资料包根目录执行,分别完成整套转换与参考图重绘。NEP 精度判断与数据读写核对不同,可继续看预测误差与能量参考。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗