Basis functions

A common pattern used in \(\mathrm{E}(3)\)-equivariant architectures is the “featurization” of Euclidean vectors \(\vec{v}\). This is typically done by expanding the vectors in radial-spherical basis functions. For example, the MessagePass expects an expansion of all relative displacement vectors between source and target nodes in in basis functions as input. In the tetracubes example, basis functions are used to “featurize” the positions of the four cubes making up a tetracube shape.

We recommended to use the convenience wrapper function basis to construct basis function (see its documentation for more details). This wrapper function can be combined with a multitude of different radial functions implemented in E3x, e.g. exponential_bernstein or sinc, as well as cutoff or damping functions such as smooth_cutoff or smooth_damping. For a hands-on example of how basis can be used in a real architecture, please refer to the MD17 ethanol example.