-
Notifications
You must be signed in to change notification settings - Fork 19
Description
We process the C2DB database with spglib.get_layergroup. Positions of atoms are recorded as std_positions in spglib.
And things went wrong for some materials, such as https://c2db.fysik.dtu.dk/material/2AgNaTe-1 with layer group No. 64.
For Wyckoff position 2a, the coordinates given in https://www.cryst.ehu.es/ are (3/4, 1/4, 0) and (1/4, 3/4, 0).
However, the 2a Wyckoff positions in spglib are (1/2, 0, 0) and (0, 1/2, 0).
We can check the layer group operations of spglib.
The operations on input cell are stored as rotations and translations.
And the transformation between input cell and standard cell is stored as transformation_matrix and origin_shift.
So we can calculate the operations on standard cell, they are listed as following:
(x, y, z) (-x, y, z) (x, -y, z) (-x, -y, z) (y, x, z) (-y, x, z) (y, -x, z) (-y, -x, z) (x+1/2, -y+1/2, -z) (-y+1/2, -x+1/2, -z) (-x+1/2, y+1/2, -z) (y+1/2, x+1/2, -z) (-x+1/2, -y+1/2, -z) (y+1/2, -x+1/2, -z) (x+1/2, y+1/2, -z) (-y+1/2, x+1/2, -z).
This is different from the operations recorded in https://www.cryst.ehu.es/, which is
(x,y,z) (-x+1/2,-y+1/2,z) (-y+1/2,x,z) (y,-x+1/2,z) (-x,y+1/2,-z) (x+1/2,-y,-z) (y+1/2,x+1/2,-z) (-y,-x,-z) (-x,-y,-z) (x+1/2,y+1/2,-z) (y+1/2,-x,-z) (-y,x+1/2,-z) (x,-y+1/2,z) (-x+1/2,y,z) (-y+1/2,-x+1/2,z) (y,x,z).
These two groups of operations may be isomorphic to each other, i.e., they are just expressed in two different coordinate systems.
But the problem is how to check they are isomorphic, and find the isomorphism (the transformation between the two set of coordinate systems)?
Because CrystalFormer works under the coordinate system given by https://www.cryst.ehu.es/, so we need to perform the transformation so that CrystalFormer recognizes the output of spglib.