Fitting Process
The constrained fitting process is carried out using scripts provided in potential_fitting/scripts. During the fitting process: - The Lagrange multiplier \(\lambda\) is increased logarithmically until the hard constraint is satisfied. - Interval bisection is used to fine-tune \(\lambda\) such that the error on the hard constraint data is minimized to within the tolerance tol, which is set to \(\alpha / 10\) by default.
The fitting of cheap potentials typically involves small parameter spaces (e.g., fewer than 100 parameters), allowing the process to be completed quickly. On a single CPU core, the fitting process typically takes approximately 5 minutes (though this depends on the size of the cheap potential).
Cheap Potential Data
Scripts to generate cheap potential fitting data are provided in potential_fitting/scripts. Two types of data are used in the fitting process, soft constraints and hard constraints. Soft constraint data is generated from high-temperature molecular dynamics (MD) simulations, while hard constraint data is generated by applying shear and expansion deformations to bulk supercells of the material.
Soft Constraints:
For Si, a 4096-atom diamond structure was simulated at 500 K for 10 ps, with snapshots saved every 0.5 ps.
For W and Fe, 2000-atom body-centered cubic (BCC) bulk cells were simulated at 1200 K, with snapshots saved every 0.1 ps.
The soft constraints consist of the total energy and forces from each snapshot.
Hard Constraints:
For the hard constraints, data was generated by applying multiple shear and expansion deformations to \(5 \times 5 \times 5\) bulk supercells of Si, Fe, and W lattices, saving the resulting energies for each deformation configuration.
Running the examples
Instructions to run the potential fitting examples are provided in the README of the potential_fitting directory. Examples are provided for fitting linear atomic cluster expansion (ACE) potentials to Si and Fe, as well as ultra-fast (UF3) potentials to W data.