Atomic Cluster Expansion descriptors#
The Atomic Cluster Expansion (ACE) of Drautz [1] provides a complete and systematically improvable basis for the local atomic environment. It is the foundation of several modern interatomic potentials and is increasingly used as a general-purpose feature set for machine learning of structure-property relations.
For each atom \(i\) a set of two-body atomic basis functions is constructed,
where \(R_{nl}\) are radial functions truncated by a cutoff and \(Y_{lm}\) are spherical harmonics. Rotation-invariant features at body order \(\nu\) are then built by contracting \(\nu\) such atomic basis functions with appropriate generalised Clebsch-Gordan coefficients,
The first three body orders give two-body (\(\nu=1\)), three-body (\(\nu=2\)), and four-body (\(\nu=3\)) descriptors. Increasing \(n_{\max}\), \(l_{\max}\), and \(\nu_{\max}\) yields a systematically convergent representation.
In pyscal, the ACE descriptors up to \(\nu=3\) can be calculated by,
import pyscal
from ase.io import read
atoms = read('conf.dump', format='lammps-dump-text')
descriptors = pyscal.ace(atoms, nmax=4, lmax=4, nu_max=2, cutoff=5.0)
The full descriptor matrix is stored as atoms.arrays['pyscal_ace'] with shape \((N, n_{\mathrm{features}})\). Hyperparameters used in the calculation are recorded in atoms.info['pyscal_ace_params']. Setting normalize=False disables the per-feature normalisation; choosing nu_max=1 returns only the radial \(\nu=1\) block.
References#
Drautz, R. Atomic cluster expansion for accurate and transferable interatomic potentials. Phys. Rev. B 99, 014104 (2019).