msg-byu / enumlib

Derivative structure enumeration library
MIT License
59 stars 34 forks source link

IMPT: Potentially severe issue in Enumlib #48

Closed shyuep closed 6 years ago

shyuep commented 6 years ago

We believe that we have found a severe bug in enumlib. The relevant files are attached. Archive.zip Pls note that the structures are not charge-neutral by design.

We are using enumlib to order a 1:1 mixing on the 16a site in the primitive unit cell of the Ia-3d spacegroup. The generated enum.in file from pymatgen is:

Al4 Ga4 O48
bulk
9.442783 0.000000 -3.338528
-4.721391 8.177690 -3.338528
0.000000 0.000000 10.015584
2
8
2.360696 4.088845 1.669264 0/1
0.000000 0.000000 5.007792 0/1
-2.360696 4.088845 -1.669264 0/1
4.721391 0.000000 -1.669264 0/1
4.721391 0.000000 3.338528 0/1
-2.360696 4.088845 3.338528 0/1
2.360696 4.088845 -3.338528 0/1
0.000000 0.000000 0.000000 0/1
1 1
0.001
partial
4 4 8
4 4 8

Enumlib gives 4 distinct orderings, with space groups Ia-3, P-1, C2/c, Fddd.

We also performed the same enumeration using a brute force approach followed by grouping of identical structures (using other functions available in pymatgen). This resulted in 7 distinct orderings with space groups P-1, Fddd, C2/c, C2/c, Ia-3, R-3, I4_1/a. We have confirmed that the 4 orderings from enumlib is a subset of the 7 orderings from the brute force approach. Also, the additional orderings from brute force are obviously valid given that they have different spacegroups (e.g., R-3 and I4_1/a). The CIF files of all orderings are available in the attached zip file.

Can you let us know if there is something we are missing, or if this is indeed a bug? If it is the latter, it is a rather critical one given that we use enumlib all the time to generate orderings. If more info is needed, you can contact my postdoc @johnson1228 and student @w6ye.

glwhart commented 6 years ago

Thanks. We'll take a look and get back to you.

shyuep commented 6 years ago

I apologize. I think I have found the issue. It is basically related to the ordered sites breaking the symmetry of the enumerated sites. This is not a bug related to enumlib.

I will close this issue now.