Official Resources
- Homepage: https://github.com/FitSNAP/FitSNAP
- Source Repository: https://github.com/FitSNAP/FitSNAP
- Documentation: https://docs.lammps.org/stable/pair_snap.html
- License: GNU General Public License
Overview
SNAP (Spectral Neighbor Analysis Potential) is a machine-learning interatomic potential (MLIP) developed at Sandia National Laboratories by A.P. Thompson, L.P. Swiler, C.R. Trott, S.M. Foiles, and G.J. Tucker. SNAP uses bispectrum components to characterize the local neighborhood of each atom, similar to the GAP (Gaussian Approximation Potential) framework, but assumes a linear relationship between atom energy and bispectrum components, enabling robust automated fitting via weighted least-squares linear regression.
The SNAP potential is implemented in the LAMMPS parallel molecular dynamics code as the pair_style snap command. The linear SNAP coefficients are determined using the FitSNAP software, which provides a Python framework for generating MLIPs for LAMMPS. SNAP has been demonstrated to accurately reproduce a range of properties for tantalum including liquid structure, crystalline properties, and the Peierls barrier for screw dislocation migration in BCC metals. A previously unnoticed symmetry property can be exploited to reduce the computational cost of force calculations by more than one order of magnitude.
Scientific domain: Machine learning interatomic potentials, atomistic simulation
Target user community: Materials scientists using MD simulations with ML potentials
Theoretical Methods
- Bispectrum components of local neighbor density
- Hyperspherical harmonics in four dimensions (4D)
- Linear regression of energy vs. bispectrum components
- Weighted least-squares fitting
- Bond-orientational order parameters (same as GAP)
- Symmetry exploitation for computational efficiency
Capabilities (CRITICAL)
- Linear ML interatomic potential via bispectrum descriptors
- Automated fitting to large QM datasets via FitSNAP
- Implementation in LAMMPS (pair_style snap)
- Accurate reproduction of crystalline and liquid properties
- Correct prediction of dislocation migration barriers
- Multi-element support (Ta, InP, SiO2, TaOx)
- Parallel MD simulation support
- Force calculation speedup via symmetry properties
- Configurable bispectrum parameters (twojmax, etc.)
Inputs & Outputs
Input formats:
- SNAP coefficient files (.snapparam and .snapcoeff)
- LAMMPS input scripts with pair_style snap
- QM training data (DFT energies, forces, stresses)
Output data types:
- Interatomic potential coefficients
- MD simulation energies, forces, stresses
- FitSNAP fitting metrics and validation results
- LAMMPS trajectory outputs
Interfaces & Ecosystem
- Programming language: C++ (LAMMPS), Python (FitSNAP)
- MD engine: LAMMPS (pair_style snap)
- Fitting software: FitSNAP (https://github.com/FitSNAP/FitSNAP)
- Parallel computing: MPI parallelization in LAMMPS
- Training data: DFT calculations (VASP, QE, etc.)
Limitations & Known Constraints
- Linear model limits expressiveness compared to nonlinear potentials
- Bispectrum computation can be expensive for high twojmax
- Requires DFT training data generation
- Single-element potentials well-validated; multi-element more challenging
- Radial cutoff and basis size need convergence testing
Performance Characteristics
- Linear regression: fast fitting (minutes to hours)
- Force calculation: 10x speedup via symmetry exploitation
- LAMMPS parallel scaling for large-scale MD
- Faster than GAP (Gaussian process) but less flexible
- Bispectrum evaluation is the computational bottleneck
Comparison with Other Codes
- vs GAP: GAP uses Gaussian process regression (nonlinear); SNAP uses linear regression. Both use bispectrum
- vs ACE: ACE uses polynomial basis (more efficient); SNAP uses bispectrum (more expensive but systematic)
- vs NEP: NEP uses neural network; SNAP uses linear model. NEP is more flexible
- vs MTP: MTP uses moment tensor basis; SNAP uses bispectrum. Both are linear in features
Best Practices
- Use FitSNAP for automated potential fitting
- Converge twojmax (bispectrum basis size) for target accuracy
- Include diverse training configurations (crystals, liquids, defects)
- Use symmetry properties for force calculation speedup
- Validate against properties not in training set
- Use sufficient radial cutoff for target system
Verification & Sources
Primary sources:
- LAMMPS SNAP docs: https://docs.lammps.org/stable/pair_snap.html
- FitSNAP GitHub: https://github.com/FitSNAP/FitSNAP
- A.P. Thompson et al., J. Comput. Phys. 285, 316-330 (2015)
- Sandia publication: https://www.osti.gov/biblio/1426894
Confidence: VERIFIED - LAMMPS implementation and FitSNAP repository confirmed accessible