Hi Ryan et al.
In version 1, a model could discover which elements are present in a simulation using KIM_API_get_num_sim_species() and KIM_API_get_sim_species(). Is it correct that this is not possible in version 2?
I admit that there ought not to be a good reason (aside from optimization) for the model to know this, but there is a weird feature (of the six-legged kind) in the original EMT potential as implemented originally in ARTwork and later in Asap: The cutoff is global, and determined by the largest atom present in the simulation.
This has the most unfortunate consequence that copper changes its properties ever so slightly if there is just a single gold atom present. Asap’s EMT, and the corresponding OpenKIM V1 model handle this by requesting a list of elements from the simulation, and only loading the relevant parameters. But if that is not possible in V2, then all parameters get loaded and the calculator behaves marginally different from the V1 counterpart (but perhaps in a more consistent matter).
One workaround would be to make six parametrized models, with the smallest element, the two smallest elements, etc.
What do you think?