ACEsuit / mace

MACE - Fast and accurate machine learning interatomic potentials with higher order equivariant message passing.
Other
412 stars 155 forks source link

Inquiry about implement of `pair_repulsion` in the mace_mp function #494

Closed hspark1212 closed 5 days ago

hspark1212 commented 5 days ago

Thank you for creating such an excellent repository!

I have questions regarding how pair_repulsion works in the MACE code. According to the code, when pair_repulsion is set to True (referred to this line), the potential is calculated using ZBLbasis and is then added to the energy of each node (referred to this line).

  1. The commit adding pair_repulsion is dated March 28th. It seems it was not used during the pre-training of the mace_mp model. Does this imply that it is not incorporated in the mace_mp model?

  2. I'm wondering if pair_repulsion is employed during training, or it is used as an additional feature on the trained models, similar to how the TorchDFTD3Calculator is used when dispersion=True in the mace_mp function?

  3. Can pair_repulsion be activated using from mace.calculator import mace_mp by setting like mace_mp(pair_repulsion=True)?

ilyes319 commented 5 days ago

Hey,

  1. Pair repulsion was not used in the initial mace_mp models, but we released a new version of small and medium that use it. You can find the models here: https://github.com/ACEsuit/mace-mp/releases/tag/mace_mp_0b.
  2. Yes it used both during training and evaluation.
  3. No you can not do that yet, you will have to pass the url of the model to the mace_mp class as macemp = mace_mp(model="https://github.com/ACEsuit/mace-mp/releases/download/mace_mp_0b/mace_agnesi_medium.model").
hspark1212 commented 5 days ago

Thank you for your prompt response!

It would be nice if we could use pair_repulsion in the mace_mp function.

I've made a graph of the potential energy across the distance for Cu-Cu interactions, and it's working quite well! image