GPUMD专题

GPUMD:准备 NaCl 长程模型标签

从真实NaCl晶胞与VASP-D3BJ输入开始,生成能量受力标签并检查k点与有限差分。

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

本例用20个小NaCl晶胞演示长程模型的数据准备,随后在电荷模型与电荷+vdW实操训练两种模型。所有标签来自集群真实计算;原子电荷和C6没有参考标签,不能因模型输出了这些量就称其物理精度已经验证。

1. 下载后先画图#

下载NaCl真实标签、模型、完整输入生成器与绘图脚本,保存为 gpumd-NaCl-longrange-wave218.zip。

unzip gpumd-NaCl-longrange-wave218.zip -d nacl-longrange
cd nacl-longrange
bash view.sh
head data/NaCl-D3-labels.csv

figures/有四张图,analysis/有误差、受力差分和接口对照CSV。此步骤读取随包真实结果,不重新运行VASP或模型训练。重复画图时使用新解压目录。

真实八原子NaCl结构与计算前固定的数据划分

2. 数据如何划分#

20个8原子晶胞含4Na+4Cl,晶格应变与小幅原子位移在标签计算前生成,固定为训练12、验证4、独立测试4个父构型。另有6个±0.01 Å差分点和3个4×4×4 k网格对照,共29次真实电子结构计算。差分和加密网格不加入训练。

本例VASP6.5.1由NVHPC25.3构建,GPU单进程单卡;PBE PAW version64 Na/Cl,ENCUT400 eV、EDIFF1E-6、IVDW12。GPUMD5.9.1由GCC13.3/CUDA12.9.86构建,P100/V10016G使用对应模块;后处理ASE3.29.0。

3. 生成并查看完整电子结构输入#

module load ase/3.29.0
python3 prepare_dft.py
cat dft-cases/NaCl-00/INCAR
cat dft-cases/NaCl-00/POSCAR
cat dft-cases/NaCl-00/KPOINTS

INCAR:

SYSTEM = NaCl PBE-D3BJ long-range labels
PREC = Accurate
GGA = PE
IVDW = 12
ENCUT = 400
EDIFF = 1E-6
ISMEAR = 0
SIGMA = 0.05
ISPIN = 1
NBANDS = 64
ALGO = Normal
NELM = 100
NELMIN = 4
ISTART = 0
ICHARG = 2
NSW = 0
IBRION = -1
ISIF = 2
ISYM = 0
LREAL = .FALSE.
LASPH = .TRUE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
NCORE = 1
KPAR = 1

POSCAR:

NaCl PBE-D3BJ long-range model tutorial
1.0
5.49578975292098 0.00233490157276 0.00000000000000
0.00000000000000 5.50009736929407 -0.00750612976897
0.00421263745705 0.00000000000000 5.54107517618007
Na Cl
4 4
Cartesian
0.01521821048820 -0.00552248912288 -0.00395725879744
-0.01338738495874 2.77892192656750 2.79573541925063
2.72559755497277 0.02751808529494 2.75858229088523
2.76384477714446 2.72547559914332 0.02282312569526
2.72083392118023 -0.02538260189466 -0.01701019746147
2.73754074167681 2.71943534302690 2.78844610843122
0.02975074463613 -0.02769212472396 2.77367059342208
-0.00532527024123 2.72817194185706 0.02195943213971

KPOINTS:

Gamma mesh for NaCl label demonstration
0
Gamma
3 3 3
0 0 0

NSW=0保持结构不动,ISYM=0保留所给位移,EDIFF=1E-6控制电子收敛。IVDW=12对应DFT-D3(BJ),见VASP官方说明。本例NBANDS64,并检查了最高能带占据;改变材料后应重新确认能带数。

4. 提交与提取#

生成器同时建立 batches/,每个任务申请1GPU、1CPU,按平台加载VASP模块。POTCAR按Na、Cl顺序取对应PAW,包内不分发POTCAR、波函数或VASP程序。以一个P100批次为例:

cd batches/p100-0
cat config.json
sbatch job.slurm

该批依次算两个结构。其他P100及V10016G批次进入相应目录提交;全部完成后回到包根目录:

module load ase/3.29.0
python3 parse_dft.py
head data/NaCl-D3-labels.csv

随包已有真实标签和模型,不需要为阅读教程重算29个结构。标签选择包含D3修正的原生TOTEN,单位eV/整个8原子晶胞;力取原生受力,单位eV/Å。train.xyz写整个晶胞能量,NEP输出能量列则是每原子值。

5. 检查能量和力是否一致#

三组DFT位移差分的最大受力偏差约 6.15×10⁻⁵ eV/Å。三个父构型从3×3×3加密到4×4×4后,能量变化约 0.026–0.050 meV/原子,最大受力变化约 1.65×10⁻⁵ eV/Å。

cat DFT-VALIDATION.json

这些是选定小晶胞的实际检查,不能据此推断其他材料的网格也已收敛。训练集覆盖应变和小位移,尚未提供表面、缺陷、液态或高温大畸变的精度依据。接下来保持此数据划分,分别训练两种长程模型。

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

查看配图

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

100%查看原图 ↗