Jump to content

Requests for technical support from the VASP team should be posted in the VASP Forum.

Running universal machine-learned force fields

From VASP Wiki
Revision as of 13:54, 8 June 2026 by Liebetreu (talk | contribs) (Created page with "Universal machine-learned force fields (uMLFF, or alternatively: uMLIP for "universal machine-learned interatomic potentials") offer a fast alternative to the computational demands of DFT. Pre-trained uMLFFs can be used as an alternative to {{VASP}}-native force fields to drive essentially every {{VASP}} simulation which uses the the prediction-only mode {{TAG|ML_MODE|run}}. This includes :Category:Molecular_dynamics|molecular...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Universal machine-learned force fields (uMLFF, or alternatively: uMLIP for "universal machine-learned interatomic potentials") offer a fast alternative to the computational demands of DFT. Pre-trained uMLFFs can be used as an alternative to VASP-native force fields to drive essentially every VASP simulation which uses the the prediction-only mode ML_MODE = run. This includes molecular dynamics simulations, ionic optimization (see IBRION) and advanced sampling techniques.

We utilize VASP's Plugins feature to call pre-trained uMLFF models via Python and have them calculate forces and stresses of our systems.

For GRACE force fields and VASP ≥ 6.6.0, please refer to the dedicated wiki page.

Model selection

A dedicated list of publically available models, including performance benchmarks, can be found at MaterialsProject's matbench-discovery. As a general rule of thumb, choose a model with good relevant metrics that was trained on a broad choice of datasets. Between models with similar metrics, choose a model with fewer parameters for faster inference.

Step-by-step instructions

We offer two examples for running different uMLFFs in VASP. Please be advised that implementations may vary wildly between models, and the first step is always to understand how to call any one particular model in Python directly before trying to have it called via VASP plugin. This also allows for much easier and more comprehensive debugging.

Related tags and articles

References