Hi all,
arguably I should be one of the people who know this, but I’m currently very confused about the MEAM implementation.
Originally I wanted to finally implement the c11 reference structure (or more generally, look into how we can simplify the treatment of reference structures - there is currently way too much special casing spread everywhere for my taste…), but there has to be something I don’t understand (anymore).
When the reference electron density is calculated for element pairs a-b, the same density is applied for b-a as well. But what that means is that it should depend on the order of evaluation if we apply the correct density or a wrong one:
Let’s say element 1=Cu
, element 2=Au
, lattce(1,2)="l12"
. Only 1-2 gets calculated. From the values of get_Zij
and get_Zij2
, this puts element 1 at the origin, meaning we actually calculate CuAu3, not Cu3Au as the docs say. Anyway, the stored density is around a Cu atom.
Later in force calculation, if we calculate forces (using half neighbor lists) between a Cu atom and an Au atom, everything is consistent. But when we calculate between an Au atom and a Cu atom, the same density lookup table is used - the Au atom’s environment gets treated as if it was Cu.
I have to be missing something obvious here, as I would expect to get different results from simply changing the atom order, which I don’t.
What is it?
Thanks,
Sebastian