pacemaker
workflow#
The pacemaker
workflow is described in the following and summarized in the figure above.
pacemaker
starts by constructing the potential according to the user specified basis configuration (\(\nu\) -order, \(n_\textrm{max}\), \(l_\textrm{max}\), etc.) or loads it from an available potential file. Then the B-basis functions are constructed, to this end generalized Clebsch-Gordan coefficients are set up for generating product basis functions that are invariant with respect to rotation and inversion.- Then
pacemaker
constructs the neighborlist for all structures in the dataframe. The neighborlist can be added to the reference dataframe for a fast restart of future parameterization runs. - Next the weights for each structure and atom as required by the loss function are set up.
pacemaker
provides different weighting schemes. The weights are then added to the reference dataframe. Weights may also be added directly to the reference dataframe, so that the user has full control over the weights for each structure and force. pacemaker
splits the dataset for training and for testing.- The further specification of \(\mathrm{L}_1\), \(\mathrm{L}_2\) and radial smoothness \(w_0, w_1, w_2\) regularization contributions and the relative weight \(\kappa\) of energy and force errors enables
pacemaker
to set up the loss function. - The hierarchical basis extension is setup as ladder fitting scheme if requested by the user.
- The optimization of the loss function can be carried out with different optimizers and optimization strategies. For each optimization step
pacemaker
stores the current potential and computes error metrics for energies and forces. In addition, external Python code can be called to perform specific calculations for advanced on-the-fly validation. - If requested, optimization is repeated with intermediate randomization of the training parameter.
- During and at the end of loss function optimization
pacemaker
provides outputs for assessing the quality and convergence of a parameterization. pacemaker
stores (and loads) the ACE potentials in a transparent YAML file format.