DeePMD DOS量化标签准备
将真实NH3量化轨道能量整理为占据价轨道谱标签,说明展宽、单位、能量参考和非周期数据格式。
阅读本篇目录
DeePMD的DOS模型学习“结构→能量网格上的谱值”。本例使用鸢算科技集群实际计算的24个NH₃几何,演示标签准备、原生训练和结果分析。这里学习的是HF/6-31G(d)轨道能量经过展宽得到的分子占据价轨道谱,用于理解DOS模型操作;它没有周期晶体的k点、能带或完整态密度,也不是实验光电子谱。
1 下载并进入目录#
mkdir NH3-DOS
python3 -m zipfile -e nh3-deepmd-dos-*.zip NH3-DOS
cd NH3-DOS
后续直接用提供的真实量化数值训练,不需先运行Gaussian。包内没有Gaussian程序、CHK、完整FCHK或轨道系数。
2 量化计算与谱的定义#
每个结构1N+3H,中性单重态、10电子。Gaussian16 C.01 AVX版以1核、1GB内存完成固定几何HF/6-31G(d),SCF=(Tight,Conver=10);沿用同组张量数据的 Polar NoSymm 路由,偶极/极化率不用于DOS训练。原有16个几何加上8个额外训练几何,共24个真实量化计算。
cat reference/gaussian-inputs/NH3-extra-train-01.gjf
%NProcShared=1
%Mem=1GB
%chk=calc.chk
#p HF/6-31G(d) SCF=(Tight,Conver=10) Polar NoSymm
NH3 actualtensorlabel NH3-extra-train-01
0 1
N 0.00000000000000 0.00000000000000 0.00000000000000
H 0.90788947364127 0.00000000000000 -0.39476157823599
H -0.44935943644871 0.77831337478969 -0.39077408754674
H -0.45165208663467 -0.78228436139575 -0.39276783289137
原生求解命令是 g16 < input.gjf > native.log,随后 formchk calc.chk calc.fchk 将检查点转换为文本。本包只导出已占据轨道能量等选定数值;这些命令在已有Gaussian环境中完成,普通训练从下节的JSON数值开始即可。
限制性闭壳层HF有5个双占据空间轨道。排除最深的N核心轨道,保留4个价轨道,每个权重2,谱积分对应8个价电子。能量使用原始分子HF轨道能量,不逐帧把HOMO移到零点;所有标签保持同一种能零。能量网格−40至5 eV,步长0.25 eV,共181点,Gaussian展宽σ=0.75 eV:
D(E) = sum_i 2 / (sqrt(2*pi)*sigma) * exp(-(E-epsilon_i)^2/(2*sigma^2))
先用1 Hartree=27.211386245988 eV换算轨道能量,再求展宽;单位为states/eV,按分子总量归一。别把每原子DOS、每晶胞DOS或不同自旋约定混在同一组标签里。

简并轨道的峰会重合;因此四个价轨道不一定出现四个分离峰。约−422.8 eV的核心轨道位于窗口外,明确排除,不应把图上积分8误称为分子的全部10电子。
3 重建DeePMD数据#
bash labels.sh
输出 labels-rebuilt/train、validation、test,按提供的轨道标量重新展宽,并对照最终参考数组。全局标签为 set.000/dos.npy,形状为“帧数×181”;coord.npy 与它逐帧对应。非周期目录有 nopbc,box.npy 的20 Å矩阵只是格式占位;预测接口传 cell=None。
head -n 30 reference/expanded/selected-orbital-labels/NH3-extra-train-01.json
最终16个原始训练几何、4个验证几何、4个测试几何;每个原始几何有三种刚体姿态,分别得到48、12、12帧。先划分原始几何,再增强。标量DOS对整体旋转和平移不变,因此姿态变化复用同一谱标签,72帧不是72次独立量化计算。

右图使用实际坐标反算平均键长和锥角,点大小表示键长不对称程度;同一键长/锥角的不同不对称结构可能重叠。新增训练几何填充原训练几何之间的间隔,原验证集与测试集没有换成新样本。继续原生DOS训练;文件与损失定义见DeePMD官方DOS说明。