Edge Update#

We recommend using IdentityEdgeUpdate, Element2EdgeUpdate, or TensorDotEdgeUpdate in most cases.

The most conservative choice is IdentityEdgeUpdate, which does not introduce any additional information during edge updates. For datasets with relatively rich sampling in configuration space, we recommend using Element2EdgeUpdate to incorporate element-dependent information. If higher accuracy is desired and increased computational cost is acceptable, TensorDotEdgeUpdate is recommended.

class tace.models._e3nn.edge.IdentityEdgeUpdate(layer: int, num_layers: int, num_elements: int, num_radial_basis: int, num_channel: int, edge_embedding_channel: int, bias: bool = False)[source]#

Bases: EdgeUpdate

An identity edge update module.

This class directly returns the input edge features (edge embedding) without modification.

class tace.models._e3nn.edge.ElementEdgeUpdate(layer: int, num_layers: int, num_elements: int, num_radial_basis: int, num_channel: int, edge_embedding_channel: int, bias: bool = False)[source]#

Bases: EdgeUpdate

An edge update module that incorporates edge element information.

This class augments edge features by concatenating embeddings of the source and target node elements, allowing edge representations to explicitly depend on the types of connected nodes.

class tace.models._e3nn.edge.Element2EdgeUpdate(layer: int, num_layers: int, num_elements: int, num_radial_basis: int, num_channel: int, edge_embedding_channel: int, bias: bool = False)[source]#

Bases: ElementEdgeUpdate

A variant of element-based edge update with reversed ordering.

This class is similar to ElementEdgeUpdate but swaps the order of source and target element embeddings when concatenating.