DP-GEN专题

DP-GEN多组分结构与标注数据

用水和过氧化氢认识共享元素映射、不同原子数系统及训练验证测试集,附完整结构与CP2K输入。

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

同一套势函数需要处理不同化学计量比时,首先统一元素编号,再把不同原子数、不同组分的数据分成各自的系统目录。本例在鸢算科技集群实际计算水和过氧化氢:二者都含H/O,但H:O分别为2:1与1:1。它们是两个独立的分子系统,不是混合液体。

下载本组三篇共用的输入、真实标注、参考轨迹和运行绘图包。三篇按数据准备 → 组分与温度探索 → 模型偏差与误差检查阅读。完整选帧、DFT补标及再训练循环见既有入门教程。

1. 解压、提交、查看结果#

将下载文件保存为 example.zip,进入自己的工作目录:

python3 -m zipfile -e example.zip .
cd dpgen-composition

提交实际训练与探索:

sbatch job.slurm

使用CPU分区56核整节点申请规则;私有接口编译最多用8核,四次训练和四组MD顺序各用1核。CPU分区维护时请等待恢复,不在登录节点自行运行生产计算。已分配CPU作业内的直接入口是 bash run.sh。

本例使用DP-GEN0.14.0、DeePMD-kit3.2.0 TensorFlow、LAMMPS22Jul2025 Update6 CPU,编译接口用oneAPI2024.2,绘图用sisl0.16.4。脚本只在自己的解压目录构建CPU接口,公共模块无需修改。它会依次完成私有接口构建、四模型训练/冻结、四组MD、数据检查和绘图。默认直接使用附件中的真实DFT标签,避免每次练习重复量子化学计算。

完成后:

ls plots
cat VALIDATION.json

四张图分别是分子结构、标注数据、探索轨迹/模型偏差和留出误差。reference-results/是本文原始实算结果;新运行生成的数据在当前目录,二者分开保存。

2. 两个完整结构#

水与过氧化氢的结构及组分比例

H2O 初始结构#

O  H 
 1.0000000000000000
    12.0000000000000000    0.0000000000000000    0.0000000000000000
     0.0000000000000000   12.0000000000000000    0.0000000000000000
     0.0000000000000000    0.0000000000000000   12.0000000000000000
 O   H  
   1   2
Cartesian
  6.2123257573209445  6.0823533395354739  6.3258423265822801
  5.6178381206620216  6.6704119211652673  5.8370788367088604
  6.1698361220170330  5.2472347392992589  5.8370788367088604

H2O2 初始结构#

O  H 
 1.0000000000000000
    12.0000000000000000    0.0000000000000000    0.0000000000000000
     0.0000000000000000   12.0000000000000000    0.0000000000000000
     0.0000000000000000    0.0000000000000000   12.0000000000000000
 O   H  
   2   2
Cartesian
  5.6077710450583282  6.6352081807110830  5.8054356419399200
  6.1386644465730003  5.2664434873893340  5.8054356419399200
  6.4498539846718490  7.1191628647446983  5.7136152005351004
  5.8037105236968225  4.9791854671548856  6.6755135155850587

结构给出12 Å真空盒。训练数据目录中有 nopbc 标志,探索也采用非周期边界;盒尺寸是坐标容器,不是液态分子的密度定义。DP-GEN生成的 conf.lmp 会重写坐标容器,核对元素与分子内部几何,不要求其盒长与POSCAR逐字相同。

3. 元素映射和数据目录#

cat data/train/H2O/type_map.raw
cat data/train/H2O/type.raw
cat data/train/H2O2/type.raw
ls data/train/H2O/set.000

所有系统的 type_map.raw 都是先H、后O,所以DeePMD的编号H=0、O=1;LAMMPS的类型编号从1开始,对应H=1、O=2。水结构原子顺序O,H,H,对应 type.raw 为1,0,0;过氧化氢为O,O,H,H,对应1,1,0,0。不要把“类型表先写H”误当成“坐标必须先排所有H”。

系统 每帧原子数 训练 验证 独立测试
H₂O 3 6 1 1
H₂O₂ 4 6 1 1

每个 set.000 中:coord.npy 是Å坐标,box.npy 是Å晶胞矩阵,energy.npy 是eV总能,force.npy 是eV/Å受力。不同原子数不能直接拼成同一个规则数组,因此保留为两个系统;训练参数同时列出两个目录。

每个系统含原结构和7个小位移结构,固定随机种子46417、位移标准差0.008 Å。编号0–5训练、6验证、7测试;测试构型没有传入训练器。附件的 labels-reference.json 逐帧保存原子顺序、位置、数据用途及原生输出校验值。

4. 这16份DFT标签如何得到#

全部采用CP2K2026.2 CPU、PBE、GTH赝势、DZVP-MOLOPT-SR基组、600 Ry/50 Ry网格、EPS_SCF 1E-8,每个构型计算一次能量和力,不先优化掉扰动。CP2K构建环境为oneAPI2024.2/IntelMPI;实际标签计算每次8个MPI进程、每进程1线程。完整水分子输入如下,过氧化氢及所有扰动输入也在 labels/ 中:

&GLOBAL
 PROJECT response
 RUN_TYPE ENERGY_FORCE
 PRINT_LEVEL MEDIUM
&END GLOBAL
&FORCE_EVAL
 METHOD QS
 &DFT
  &PRINT
   &MOMENTS ON
    PERIODIC .FALSE.
    REFERENCE COM
   &END MOMENTS
  &END PRINT
  BASIS_SET_FILE_NAME ../../DATA/BASIS_MOLOPT
  POTENTIAL_FILE_NAME ../../DATA/GTH_POTENTIALS
  &QS
   EPS_DEFAULT 1.0E-12
  &END QS
  &MGRID
   CUTOFF 600
   REL_CUTOFF 50
  &END MGRID
  &SCF
   EPS_SCF 1.0E-8
   MAX_SCF 100
   SCF_GUESS ATOMIC
   &OT
    MINIMIZER DIIS
    PRECONDITIONER FULL_SINGLE_INVERSE
   &END OT
  &END SCF
  &XC
   &XC_FUNCTIONAL PBE
   &END XC_FUNCTIONAL
  &END XC
  &POISSON
   PERIODIC NONE
   POISSON_SOLVER MT
  &END POISSON
 &END DFT
 &SUBSYS
  &CELL
   ABC 12 12 12
   PERIODIC NONE
  &END CELL
  &COORD
O 6.21232575732094 6.08235333953547 6.32584232658228
H 5.61783812066202 6.67041192116527 5.83707883670886
H 6.16983612201703 5.24723473929926 5.83707883670886
  &END COORD
  &KIND O
   BASIS_SET DZVP-MOLOPT-SR-GTH
   POTENTIAL GTH-PBE-q6
  &END KIND
  &KIND H
   BASIS_SET DZVP-MOLOPT-SR-GTH
   POTENTIAL GTH-PBE-q1
  &END KIND
 &END SUBSYS
 &PRINT
  &FORCES ON
  &END FORCES
 &END PRINT
&END FORCE_EVAL

标签生成脚本 run_labels.py 使用 mpirun -np 8 cp2k.psmp -i input.inp -o cp2k.out 这一计算形式,在分配到的核数不足8时相应减少进程数。运行环境需要无限栈 ulimit -s unlimited、每MPI进程1线程。附件已带原生输出;若自行重算,请用新副本,并按README重新解析与导出数据,不能只改参考校验值。

16个真实PBE标签的相对能量与受力分布

图中每种组分的能量都减去自己的第0帧,避免把不同化学计量比的绝对总能直接当成稳定性比较。本例未做基组/截断能/真空盒收敛;原生受力存在有限数值不平衡,未人为归零。数据用于工作流教学,正式训练前需提高标签质量并扩大构型覆盖。

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

查看配图

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

100%查看原图 ↗