Add a short range repulsive potential as baseline potential #265
Labels
Discussion
Issues to be discussed by the contributors
Priority: Medium
Important issues to address after high priority.
Problem
@HannaTuerk and @bananenpampe recently saw that for some of their systems atoms either cluster or their energy is smaller than one would expect if they are tiny. These are typical indications for holes in the potential. To get rid of them one can add more training data. But this can be very hard because sampling these small distances is very hard.
Possible solution
Another approach is adding a short-range repulsive potential as baseline potential and subtracting the energy and force before the actual training is started. This is very similar to the composition model.
The canonical candiate would be the Ziegler-Biersack-Littmark (ZBL) potential which is also implemented in MACE and GPUMD. @bananenpampe found also a Python implementation.
Implementation
The easiest approach is that we provide a function that computes the energy and forces based on the ZBL potential and each architecture can use this function if they like
Another idea I had, is that we provide these operations in a base class and architecture developers don't have to do it by themselves. Still, we already provide them the energies "corrected" by the composition energy and the short-range repulsion. Basically, they have to call
super().forward()
in their forward function. I don't know if this is a clever idea though...The text was updated successfully, but these errors were encountered: