ACEsuit / ACEpotentials.jl

Machine Learning Interatomic Potentials with the Atomic Cluster Expansion
MIT License
45 stars 11 forks source link

Better functions for defining `rin0cuts` in new ACE model #201

Open CheukHinHoJerry opened 3 months ago

CheukHinHoJerry commented 3 months ago

Currently the user has to define a a SMatrix with something like

elements = (:Si, :O)
NZ = length(elements)
function make_rin0cut(zi, zj) 
   r0 = ACE1x.get_r0(zi, zj)
   return (rin = 0.0, r0 = r0, rcut = 6.5)
end

rin0cuts = SMatrix{NZ, NZ}([make_rin0cut(zi, zj) for zi in elements, zj in elements])

.

This is not convenient/user-friendly at all. To be discussed how we should do this better.

cortner commented 3 months ago

In terms of interface, maybe we should bring the ACE1 defaults interface to the new ACE models. That is the bigger issue I think. I just wonder whether it's a bit early and we should for now just introduce a kwarg cutoffs or something like that, which overwrites the defaults. I think rin and r0 will very rarely be modified.