Non-collinear spins on Atoms
Some of us (@jensj @AlTy) discussed recently how the Atoms should be aware of noncollinear spins, particularly as "initial" spins.
The idea was, I think, though my memory is imperfect:
-
Storage: The initial spins are either not present (spin-paired), OR a 1D array of length
len(atoms)
(collinear) OR(len(atoms), 3)
(noncollinear). -
The Atoms object would have a method to query the type of spins, e.g.
get_spin_mode()
or aspin_mode
property which decides what it is based on the above rule. I am not sure whether we quite agreed on returning e.g. strings. -
But: If there are no initial spins, but the calculator has (through user-provided keywords) produced some kind of output magmom(s), should
spin_mode
then try to describe that?