Fix conversion from raw enumeration data to ASE Atoms object
This MR fixes a nasty bug in the structure enumeration module. The last step in the structure enumeration is to convert a tuple of decorations (such as (0, 1, 0, 1)
) to an ASE Atoms object. Crucially, this tuple needs to be converted to Cartesian coordinates with the use of the underlying lattice and matrices associated with the supercell. This conversion has been overly simplistic and sometimes caused the algorithm to yield the wrong structure. For reasons that I don't quite understand, the conversion was still correct in the overwhelming majority of cases I've tested, but for example with fairly large hcp structures (8 atoms or more), some of the structures were incorrect. This MR changes the conversion function such that the structures should now be correct. The new algorithm follows more closely the one published in conjunction with enumlib
.
Closes #224