convexhull_cur

Contents

convexhull_cur#

autoplex.data.common.utils.convexhull_cur(atoms, descriptor, bolt_frac=0.1, bolt_max_num=3000, cur_num=100, kernel_exp=4, kt=0.5, energy_label='REF_energy', isolated_atom_energies=None, element_order=None, scheme='linear-hull')[source]#

Sample atoms from a list according to Boltzmann energy weighting relative to convex hull and CUR diversity.

Parameters:
  • atoms (list of ase.Atoms) – The atoms for which to perform CUR selection.

  • bolt_frac (float) – The fraction to control the proportion of atoms kept during the Boltzmann selection step.

  • bolt_max_num (int) – The maximum number of atoms to select by Boltzmann flat histogram.

  • cur_num (int) – The number of atoms to select by CUR.

  • kernel_exp (float) – The kernel exponent to use in the calculation.

  • kt (float) – The product of the Boltzmann constant and the temperature, in eV.

  • energy_label (str) – The label for the energy property in the atoms.

  • descriptor (str, optional) – The quip descriptor string to use for the calculation.

  • isolated_atom_energies (dict, optional) – The isolated atom energies for each element in the system.

  • element_order (list of str, optional) – The order of elements for the isolated atom energies.

  • scheme (str, optional) – The scheme to use for the convex hull calculation. Default is ‘linear-hull’ (2D E,V hull). For 2-component systems with varying stoichiometry, use ‘volume-stoichiometry’ (3D E,V,mole-fraction hull). TODO: need to generalise this to ND hulls for mcp systems. GST good test case.

Returns:

The selected atoms.

Return type:

list of ase.Atoms

Notes

This function calculates the descriptor vector for each atom, then performs CUR selection on the resulting vectors. The selection is based on the convex hull of the vectors.