Descriptor¶
The Descriptor class encapsulates the functionality for computing and storing representations of atomic environments and atomic configurations (supercells).
See the full API for the module at Descriptor Module.
Descriptor Types¶
- AtomCenteredDescriptor
Represents each local atomic environment (an atom and its neighbors within a cutoff) with its own descriptor. Results are stored in the
.arraysdictionary of ASE Atoms objects with the key{OUTPUT_KEY}_descriptors.- ConfigurationDescriptor
Represents an entire supercell using a single descriptor. Results are stored in the
.infodictionary of ASE Atoms objects with the key{OUTPUT_KEY}_descriptors.
Available Implementations¶
- KLIFFDescriptor
Leverages the KLIFF library for atomic environment descriptors:
symmetry_function: Atom Centered Symmetry Functions (ACSF)bispectrum: Bispectrum descriptors
Requires cutoff distances, cutoff function name, and hyperparameters.
- QUESTSDescriptor
Model-agnostic descriptors from the QUESTS library. Combines sorted neighbor distances with average triplet bond lengths. The descriptor dimensionality is
(2 * num_nearest_neighbors) - 1.Note
QUESTS also supports multi-element descriptor calculations, if the
specieskeyword is set as the list of present elements. Bandwidth selection criteria based on these descriptors is still under active investigation (relevant if used in Score calculations).
Usage Example¶
# KLIFF symmetry function descriptor
kliff_desc = KLIFFDescriptor(
descriptor_type='symmetry_function',
cut_dists={'Cu-Cu': 4.0, 'O-O': 3.5, 'Cu-O': 3.7},
cut_name='cos',
hyperparams='set51'
)
# QUESTS descriptor
quests_desc = QUESTSDescriptor(
num_nearest_neighbors=32,
cutoff=5.0
)
# Compute descriptors
descriptors = kliff_desc.compute(atoms)
descriptor_list = quests_desc.compute_batch(list_of_atoms)
The descriptors are automatically attached to the atomic configurations and can be saved to storage with metadata for ColabFit integration.
Inheritance Graph¶
