Repository navigation
v1.0.2
🚀 NEPAdapters v1.0.2
本版本集中统一 CPU、CUDA 与 LAMMPS 的 NEP4 模型协议语义,补齐 CUDA 后端此前缺失的模型能力,并修复小周期盒子和邻居容量问题。
✨ 协议与模型支持
- 统一 NEP4 解析:CPU/CUDA 现在一致校验参数数量、取值范围、baseline 数量和 counted block;缺少必要的 spin 参数会直接报错。
- 类型语义:
spin_dof_type严格控制 spin 描述符中心和磁力输出,spin_env_type控制可进入 spin 环境的邻居元素,并验证自由度类型是环境类型的子集。 - Cutoff 语义:结构 radial cutoff、spin cutoff 和候选邻居 cutoff 相互独立;支持结构 radial/angular type-dependent cutoff。
- CUDA 模型能力:补齐 universal、typewise 和 flexible ZBL,以及普通 NEP4 双隐藏层 ANN。
- 版本边界:明确拒绝已淘汰的 NEP3;本版本不加入 dipole、polarizability 和 temperature model。
🐛 修复与可靠性
- 修复 CUDA 在
rc_spin != rc_radial时错误扩大普通结构描述符 cutoff 的问题。 - 修复 CUDA batch 在小周期盒子中遗漏周期自镜像邻居的问题,覆盖普通 NEP、spin NEP 和 qNEP。
- CPU batch 将模型声明的邻居容量作为初始 workspace;实际需求更大时自动扩容、重建邻居表并复用高水位容量,不再受固定
1000或模型导出容量的硬限制。 - CPU batch、CPU LAMMPS 和 CUDA 对非
spin_dof_type元素的磁力输出均严格为零。 - LAMMPS ordinary NEP 与 spin 路径复用统一后的 parser、model 和最大 cutoff 语义。
🧪 验证
- 本地 CPU 测试
28/28通过。 - Sai V100 CPU/CUDA spin、普通 NEP 和 qNEP 测试
47/47通过。 - 普通 NEP4 已与 GPUMD 参考实现完成跨后端数值一致性验证;CPU 达到双精度一致性,CUDA 的 energy、force 和 virial 误差处于单精度预期范围。
⚠️ 当前边界
- qNEP batch 已完成 CPU/CUDA 数值验证;LAMMPS/PPPM qNEP 集成仍不支持。
- dipole、polarizability 和 temperature model 不在 CUDA 支持范围内。
- LAMMPS 外部邻居路径使用 ghost atoms,不受本次 CUDA batch 小周期盒子缺陷影响。
python -m pip install --upgrade "nep-adapters[ase]==1.0.2"Full Changelog: v1.0.1...v1.0.2