Features

Features are numerical vectors representing a given structure or atom/atom-centered environment in an abstract n-dimensional space. They are also sometimes called descriptors, representations, embeddings, etc.

Features can be computed with an analytical expression (for example SOAP power spectrum, atom-centered symmetry functions, …), or learned indirectly by a neural-network or a similar machine learning construct.

In metatomic models, they are associated with the "feature" or "feature/<variant>" name (see Variants), and must have the following metadata:

Metadata for "feature"

Metadata

Names

Description

keys

"_"

the keys must have a single dimension named "_", with a single entry set to 0. The "feature" quantity is always represented as a metatensor.torch.TensorMap with a single block.

samples

["system", "atom"] or ["system"]

the samples should be named ["system", "atom"] for per-atom quantities; or ["system"] for per-system quantities.

"system" must range from 0 to the number of systems given as input to the model. "atom" must range between 0 and the number of atoms/particles in the corresponding system. If selected_atoms is provided, then only the selected atoms for each system should be part of the samples.

components

the "feature" quantity must not have any components.

properties

the "feature" quantity can have arbitrary properties.

Note

Features are typically handled without a unit, so the "unit" field of metatomic.torch.ModelOutput() is typically left empty.

The following simulation engines can use the "feature" quantity as an output:

Gradients of the "feature" quantity

The "feature" quantity is typically used with automatic differentiation for the gradients, and explicit gradients are not currently specified.