TDEP专题

TDEP力常数拟合与误差判断

从二阶到三阶、四阶逐步拟合,用独立MD和经典构型测试集判断截断与过拟合。

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

本专题用鸢算科技集群实际完成的Si多温度DFT数据,演示TDEP输入准备、二至四阶力常数拟合、声子、自由能和热导。版本为TDEP 25.03,固定提交d38f435,采用ifx/icx 2024.2.1、Intel MPI 2021.13、顺序MKL、FFTW 3.3.11和HDF5 1.14.6;使用 tdep/25.03-8173m CPU模块。前置DFT使用VASP 6.6.1 GPU/HDF5构建,NVHPC 25.3、CUDA 12.8,分别在P100和V100 16G上运行。

下载实际输入、数值、8张图与操作脚本,保存为 tdep-silicon.zip:

python3 -m zipfile -e tdep-silicon.zip .
cd tdep-silicon-practical-wave285
bash preview.sh
ls preview/figures

预览只读 reference/数值,不启动DFT。需要从随包自有数值输入运行原生拟合及后处理时,用下面三个短命令;这也不重跑VASP:

bash prepare.sh
bash calculate.sh
bash extract.sh

原生结果在 work/,提取表格在 results/data/。本包为小型单进程CPU示例;正式大拟合和热导请用Slurm分配CPU资源。VASP程序、POTCAR和原始全文电子输出不随包分发。

1 二阶先跑通,再增加模型复杂度#

在包含 infile.ucposcar、infile.ssposcar、infile.positions、infile.forces、infile.stat、infile.meta的独立目录中:

module load tdep/25.03-8173m
extract_forceconstants -rc2 5
ls outfile.forceconstant

-rc2是二阶相互作用截断半径Å。更大的命令数值不保证真的增加了相互作用壳层,实际可用范围受超胞限制。本例Si16中请求3.5、4、5 Å,原生截断都停在第一近邻2.35126 Å;扩到Si64后,才能比较2.35126、3.83959和4.50232 Å壳层。遇到这种情况应扩大超胞,而不是只改命令。

2 在新目录做三阶与四阶对照#

extract_forceconstants -rc2 5 -rc3 5
ls outfile.forceconstant outfile.forceconstant_thirdorder
extract_forceconstants -rc2 5 -rc3 5 -rc4 3
ls outfile.forceconstant_fourthorder

每种模型用新目录,避免同名输出相互覆盖。二阶、三阶、四阶分别描述展开中的不同阶数;不要仅因为拟合训练误差更小,就认定高阶模型更适合预测。官方拟合说明给出这些截断与不变性选项。

3 训练与测试怎样分开#

模型B在每温度使用相同协议:seed11的10个MD帧,加10个有实际DFT力的经典构型,共20训练构型;测试包括从未参与拟合的seed29的30个MD帧和2个经典构型。拟合数据混合了MD帧与静态构型,只用于力模型,不把其中时间/应力语义混合的stat拿去估计热力学平均。

三阶模型的两个独立测试集力分量对比

力误差采用每Cartesian分量的RMSE,训练前去掉每帧总力漂移;相对误差为该RMSE除以测试集力分量RMS。原生程序部分输出使用向量RMS,与分量RMS相差√3,比较前须统一定义。

三阶模型 独立MD RMSE / eV Å⁻¹ 独立经典构型 RMSE / eV Å⁻¹
300 K 0.0518783 0.0473942
600 K 0.0875629 0.0885849
900 K 0.1398135 0.1434802

本例采用绝对误差小于0.1 eV/Å且相对误差小于0.2的双条件,300/600 K同时满足,900 K不满足。该阈值用于这组教学模型,具体科研精度应根据目标可观测量确定。

4 识别过拟合而不是不断增加参数#

温度误差对照与900 K扩大四阶半径的过拟合

900 K把四阶半径从3增到5 Å后,训练RMSE从0.1081降到0.0721 eV/Å,独立MD误差却增到0.1543 eV/Å。因此本专题不把900 K模型用于材料声子、自由能或热导预测。下一步应检查采样范围、数据量、参考结构与模型形式,而不是只追求训练残差下降。

cat results/FORCE-VALIDATION.json
head reference/force-errors.csv
ls work/fit-matched/300K

force_model.py按原生二/三/四阶张量和周期映射独立重建力,不调用VASP。正式大拟合可以将下载包的 submit-fit.sh复制到数据目录后提交:

sbatch submit-fit.sh -rc2 5 -rc3 5

下一篇:声子与DOS。

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

查看配图

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

100%查看原图 ↗