Quantum-Accelerators / quacc

quacc is a flexible platform for computational materials science and quantum chemistry that is built for the big data era.
https://quantum-accelerators.github.io/quacc/
BSD 3-Clause "New" or "Revised" License
157 stars 43 forks source link

Add more MLPs: ALIGN-FF, NequIP, GAP, DP, and FLARE #1940

Open Andrew-S-Rosen opened 3 months ago

Andrew-S-Rosen commented 3 months ago

What new feature would you like to see?

We already have support for MACE-MP-0, CHGNet, and M3GNet in quacc.recipes.mlp. We should also add support for:

Nekkrad commented 3 months ago

@Andrew-S-Rosen might be working on this in the near future (when time allows). Would you prefer expanding the pick_calculator function or creating calculators for each MLP? I reckon the first approach is probably the safest.

Andrew-S-Rosen commented 3 months ago

I'd go with the former. The only time we should create a custom calculator is if the original calculator does not have all the features we need, which is rare (right now, only VASP, Espresso, and Q-Chem require this). Expanding on the picker function seems like the easiest approach to me.

It would also involve updating the tests/requirements-mlp.txt file: https://github.com/Quantum-Accelerators/quacc/blob/main/tests/requirements-mlp.txt

as well as the pyproject.toml file: https://github.com/Quantum-Accelerators/quacc/blob/3ab1630603fdff718a8d16080096be083b1560f7/pyproject.toml#L49

but otherwise shouldn't be too painful.

jackpm14 commented 2 months ago

@Andrew-S-Rosen Might see if I can get some work in. For ALIGNN-FF, would the 'default' path be best, or would you prefer to have it added as ALIGNN-FF-Default?

Andrew-S-Rosen commented 2 months ago

@jackpm14: I'm a bit undecided. It seems there are several distinct ALIGN-FF models but I think if a user requested ALIGN-FF as the method they should get whatever is the current standard (presumably the default path).

Enumerating each individual model seems like a code maintenance disaster, but having just "alignff" as the method means it may make versioning less obvious as you saw with MACE-MP-0.

For now, I'd suggest just supporting "alignff" to be whatever the state of the art is at this point in time. That said, I'm very much open to suggestions here.