General¶
The MLPotential engine in the Amsterdam Modeling Suite can calculate the potential energy surface using several different types of machine learning (ML) potentials. To use ML potentials, first install them separately.
The supported models can be found on the page Models & Backends.
Quickstart guide¶
To set up a simple MLPotential job using the graphical user interface, see the
There are also command-line examples and Python examples with PLAMS.
What’s new in AMS2026.1?¶
New models:
eSEN-S-Con-OMol is a pre-trained model based on DFT (ωB97M-V/def2-TZVPD) data from the OMol25 dataset, which contains data from diverse chemistry disciplines including biochemistry, electrochemistry, and organic and inorganic chemistry with all of the first 83 elements represented.
MACE-MP-0 is a pre-trained foundation model for materials chemistry, parameterized for 89 chemical elements. It is available in three sizes (small/medium/large) which balance accuracy vs. compute.
MACE-MPA-0 is trained on a larger dataset with additional crystal structures, and improves accuracy compared to MACE-MP-0.
UMA-S-1.1-OC20 is a pre-trained model based on DFT (RPBE) data, with training data comprising >100 million calculations of small molecules adsorbed on catalyst surfaces formed from materials in the Materials Project.
UMA-S-1.1-ODAC is a pre-trained model based on DFT (PBE+D3) data, with training data comprising >10 million calculations of CO2/H2O molecules adsorbed in Metal Organic Frameworks sampled from various open databases like CoreMOF.
UMA-S-1.1-OMat is a pre-trained model based on DFT (PBE/PBE+U) data, with training data comprising >100 million calculations of inorganic materials collected from many open databases like Materials Project and Alexandria, and randomly sampled far from equilibria.
UMA-S-1.1-OMC is a pre-trained model based on DFT (PBE+D3) data, with training data comprising ~25 million calculations of organic molecular crystals from random packing of OE62 structures into various 3D unit cells.
UMA-S-1.1-OMol is a pre-trained model based on DFT (wB97M-V/def2-TZVPD) data, with training data comprising over 100 million calculations covering small molecules, biomolecules, metal complexes, and electrolytes.
Train custom MACE models with ParAMS and Simple Active Learning (and use them in the MLPotential engine)
All models and backends installable using AMSpackages
Removed: The SchNetPack (1.0.0) and sGDML (0.4.4) backends. To continue using these models, migrate to Engine ASE.
What’s new in AMS2025.1?¶
Improved support for external ML potentials (not included with AMS but available online) through Engine ASE.
Deprecated: The SchNetPack (1.0.0) and sGDML (0.4.4) backends. To continue using these models, migrate to Engine ASE.
What’s new in AMS2024.1?¶
New models: AIMNet2-B973c and AIMNet2-wB97MD3. These are suitable for molecular systems containing H, B, C, N, O, F, Si, P, S, Cl, As, Se, Br, I. These are currently the only ML potential models that support charged systems (ions), and that predict atomic charges and dipole moments and that give IR intensities when calculating normal modes.
Train custom M3GNet models with ParAMS and Simple Active Learning (and use them in the MLPotential engine)
Auto-detection of GPU.
When using the ANI (or AIMNet2) models, the
mlpotential.txtfile is no longer produced, but the engine uncertainty (standard deviation of committee prediction) is written to the standard output and stored on the binary .rkf results files.
What’s new in AMS2023.1?¶
New model: M3GNet-UP-2022 based on M3GNet. This is a universal potential (UP) that can be used for the entire periodic table of elements up to, but excluding, Curium (Cm, 96).
New backend: M3GNet
PiNN is no longer a backend in MLPotential, but you can use it through Engine ASE.
Theory of ML potentials¶
With machine learning potentials, it is possible to quickly evaluate the energies and forces in a system with close to first-principles accuracy. Machine learning potentials are fitted (trained, parameterized) to reproduce reference data, typically calculated using an ab initio or DFT method. Machine learning potentials are sometimes referred to as machine learning force fields, or as interatomic potentials based on machine learning.
Several types of machine learning potentials exist, for example neural-network-based methods and kernel-based methods.
Several types of neural network potentials exist. It is common for such potentials to calculate the total energy as a sum of atomic contributions. In a high-dimensional neural network potential (HDNNP), as proposed by Behler and Parrinello [1], each atomic contribution is calculated by means of a feed-forward neural network, that takes in a representation of the chemical environment around the atom as input. This representation, or atomic environment descriptor or fingerprint, consists of a vector of rotationally, translationally, and permutationally invariant functions known as atom-centered symmetry functions (ACSF).
Graph convolutional neural network potentials (GCNNPs), or message-passing network neural potentials, similarly construct the total energy by summing up atomic contributions, but the appropriate representations of local atomic chemical environments are learned from the reference data.
Kernel-based methods make predictions based on how similar a system is to the systems in the training set.
There are also other types of machine learning potentials. For more detailed information, see for example references [2] and [3].
Support¶
SCM provides technical (non-scientific) support for installation and running simulations via the AMS driver.
See also: Frequently Asked Questions
Technical information¶
Each of the supported backends can be used as ASE (Atomic Simulation
Environment) calculators. The MLPotential engine
is an interface to those ASE calculators. The communication between the AMS
driver and the backends is implemented with a named pipe interface. The MLPotential engine launches a
Python script, ase_calculators.py, which initializes the ASE calculator.
The exact command that is executed is written as WorkerCommand in the
output.