$ show deepmodeling/deepmd-kit
DeePMD-kit is a comprehensive, production-grade deep learning package for many-body interatomic potential energy representation and molecular dynamics simulation. It provides a unified framework for training and deploying machine learning interatomic potentials (MLIPs) across multiple backends: TensorFlow, PyTorch, JAX, and PaddlePaddle, with a backend-agnostic core (dpmodel) that ensures numerical consistency. The package supports a wide range of descriptor architectures (SeA, SeR, SeT, DPA1/2/3/4, attention-based, hybrid) and fitting targets (energy, force, virial, dipole, polarizability, density of states, spin, property). It integrates tightly with LAMMPS via custom pair styles and plugins, and also supports ASE, i-PI, GROMACS, and other MD engines. The codebase is highly modular, with a plugin registration system for models, descriptors, and losses, and offers extensive serialization capabilities for model export and compression. Pretrained models (DPA-3, DPA-4) are available for direct download and fine-tuning. The project is actively maintained with a large community, comprehensive test suites, and continuous integration across CPU and GPU platforms.
The LLM identified 3 files worth highlighting for reuse:
Provides a generic plugin registry system (make_plugin_registry, PluginVariant) that allows components like descriptors, fittings, and losses to be registered by name and instantiated via factory. This pattern is self-contained, separates registration from implementation, and can be extracted into a standalone library for any application requiring extensible type dispatch.
Implements TrainingTimer, a wall-clock timer that tracks training steps, excludes startup overhead, and provides accurate ETA for long-running jobs. It is a simple, well-documented utility that can be reused in any training loop to monitor progress and estimate completion time.
Contains the NeighborGraphBuilder class and related utilities for constructing neighbor lists from atomic coordinates, supporting periodic boundary conditions, cell lists, and sparse edge representations. This is a fundamental building block for MD simulations and ML potentials, and its clean interface and modular design allow it to be reused in other simulation or graph-based projects.