-
Notifications
You must be signed in to change notification settings - Fork 2
Description
The equivariant_model is too rigid - as a user of the package / developer of models, I want to specify an arbitrary radial embedding. Here "radial" is a substitute for embedding everything that is invariant.
Specifically, I want to allow models that have Rnl and Ylm. The Rnl is just a function of xj i.e Rnl(xj) is some vector (embedding / basis). All the information how xj is transformed and then a basis is applied is hidden in there. The user/developer must guarantee that Rnl is invariant.
So the calling convention should be
radial, radial_spec = ... # construct the radial embedding
equivariant_model(AAspec, maxL, radial, radial_spec)The radial basis is so application specific that it should not be automatically generated, i.e., no default. But we can provide a few simple radial basis sets.
The radial_spec could also be stored inside radial if we can give it meta information. It's just a list of (n, l) tuples, i.e.,
radial_spec = [ (n = 0, l = 0), (n = 1, l = 0), ... ]