This relates to issue #10 . The pair and neighborlist classes now also return the index of the pairs. This information was available, just not returned during the calculate function (as it wasn't necessary for initial testing/dev of a monatomic system).
Note: I tried a version of the pairlist that basically just removed non-interacting pairs to reduce the number of atoms used in the force calculation (current code will have all possible pairs, and the energy is just multiplied by either 0 or 1, i.e., based on the mask). Similar to the neighborlist, there was a n_max_neighbors variable that would pad things out. For the range of system sizes tested these extra steps took more time than extra LJ computations. I suspect for an NNP, this step to reduce extra interactions will likely speed things up given the cost of the NNP. This will be added in a follow-up commit to this PR; if it is ultimately not useful we can remove later. I'm not sure if this should be a new class or just part of the same class
Todos
Notable points that this PR has either accomplished or will accomplish.
[x] Make pair information accessible to allow for mixed systems
[x] Improve doc strings
Will move the other action items to a separate PR as they are not actually necessary here and not merging will potential block progress in other items.
[ ] Add in code that reduces and pads the Pairlist
[ ] Add in example using the minimize function
[ ] Create mixed LJ system to implement logic related to converting topology information into the most usable form.
Description
This relates to issue #10 . The pair and neighborlist classes now also return the index of the pairs. This information was available, just not returned during the calculate function (as it wasn't necessary for initial testing/dev of a monatomic system).
Note: I tried a version of the pairlist that basically just removed non-interacting pairs to reduce the number of atoms used in the force calculation (current code will have all possible pairs, and the energy is just multiplied by either 0 or 1, i.e., based on the mask). Similar to the neighborlist, there was a n_max_neighbors variable that would pad things out. For the range of system sizes tested these extra steps took more time than extra LJ computations. I suspect for an NNP, this step to reduce extra interactions will likely speed things up given the cost of the NNP. This will be added in a follow-up commit to this PR; if it is ultimately not useful we can remove later. I'm not sure if this should be a new class or just part of the same class
Todos
Notable points that this PR has either accomplished or will accomplish.
[x] Improve doc strings
Will move the other action items to a separate PR as they are not actually necessary here and not merging will potential block progress in other items.
Status