I suggest to add an interface for energy_difference(sys1, sys2).
For very large systems computing an energy-difference can be problematic due to roundoff errors. This arises in particular during Geometry optimization - linesearches then just tend to fail even if progress is being made. In JuLIP I had an energy difference that had a fall-back to just "energy minus energy" but for special potentials one could do something cleverer. Even summing the site energy differences is sometimes significantly more robust than the difference of the energies.
Maybe not a high priority, but I wanted to make a note.
I suggest to add an interface for
energy_difference(sys1, sys2).For very large systems computing an energy-difference can be problematic due to roundoff errors. This arises in particular during Geometry optimization - linesearches then just tend to fail even if progress is being made. In JuLIP I had an energy difference that had a fall-back to just "energy minus energy" but for special potentials one could do something cleverer. Even summing the site energy differences is sometimes significantly more robust than the difference of the energies.
Maybe not a high priority, but I wanted to make a note.