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.