Closed Luthaf closed 1 year ago
Here is a pre-built version of the code in this pull request: wheels.zip, you can install it locally by unzipping wheels.zip
and using pip
to install the file matching your system
The documentation for this PR is (or will soon be) available on readthedocs: https://rascaline--147.org.readthedocs.build/en/147/
(first three commits are from #148, you can ignore them!)
SphericalExpansion logic has been slimmed-down by moving the computation of pair contributions from SphericalExpansion.compute_for_pair to a new struct SphericalExpansionByPair.compute_for_pair. Similarly, the samples function from FullNeighborList, has been splitted into samples and samples_for. It is just a shifting of logic, no new feature has been implemented. I guess it is important for some later feature, so the pair contribution calculator can be reused for the n-centers descriptor?
This is a very accurate understanding! The new SphericalExpansionByPair calculator is sharing code with FullNeighborList for sample generation (i.e. finding all pairs in a system), and other code with spherical expansion (to compute individual pair contributions)
This is only the first step, but I'm opening this since I've already re-written this code 3 times, so let's try to merge it before I have to rewrite it a fourth time!
This is currently in a state where the base code is shared between pair-by-pair calculation and full spx calculation, and the pair-by-pair code can compute the values (no gradients) of the spherical expansion.
Still TBD: