gap-packages / cryst

Computing with crystallographic groups
https://www.math.uni-bielefeld.de/~gaehler/gap/packages.php#Cryst
Other
3 stars 6 forks source link

`WyckoffPositions` is not consistent with international tables for crystallography #11

Closed lan496 closed 4 years ago

lan496 commented 5 years ago

Observed behaviour

Cryst returns five Wyckoff positions for crystallographic space group No.100(P4bm):

gap> S := SpaceGroupIT(3, 100);
SpaceGroupOnRightIT(3,100,'1')
gap> wyckoffs := WyckoffPositions(S);
[ < Wyckoff position, point group 2, translation := [ 0, 0, 0 ], 
    basis := [ [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 2, translation := [ 0, 1/2, 0 ], 
    basis := [ [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 3, translation := [ 1/2, 0, 0 ], 
    basis := [ [ 1, 1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 4, translation := [ 1/2, 0, 0 ], 
    basis := [ [ 1, -1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], 
    basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] >
     ]
gap> WyckoffOrbit(wyckoffs[3]);
[ < Wyckoff position, point group 3, translation := [ 1/2, 0, 0 ], 
    basis := [ [ 1, 1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 3, translation := [ 1/2, 0, 0 ], 
    basis := [ [ -1, -1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 3, translation := [ 0, 1/2, 0 ], 
    basis := [ [ -1, 1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 3, translation := [ 0, 1/2, 0 ], 
    basis := [ [ 1, -1, 0 ], [ 0, 0, 1 ] ] >
     ]
gap> WyckoffOrbit(wyckoffs[4]);
[ < Wyckoff position, point group 4, translation := [ 1/2, 0, 0 ], 
    basis := [ [ 1, -1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 4, translation := [ 1/2, 0, 0 ], 
    basis := [ [ -1, 1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 4, translation := [ 0, 1/2, 0 ], 
    basis := [ [ 1, 1, 0 ], [ 0, 0, 1 ] ] >
    , < Wyckoff position, point group 4, translation := [ 0, 1/2, 0 ], 
    basis := [ [ -1, -1, 0 ], [ 0, 0, 1 ] ] >
     ]

Expected behaviour

The number of Wyckoff positions is inconsistent with International Tables for Crystallography volume A(ITA). In ITA, there are four Wyckoff positions for this space group type. https://it.iucr.org/Ac/ch2o3v0001/sgtable2o3o100/

In the above example, I find wyckoffs[3] and wyckoffs[4] are the same Wyckoff position(Wyckoff letter 4c), since WyckoffOrbit(wyckoffs[3])[1] and WyckoffOrbit(wyckoffs[4])[3] are actually the same Affine space up to translation.

Copy and paste GAP banner (to tell us about your setup)

┌───────┐ GAP 4.10.0 of 01-Nov-2018 │ GAP │ https://www.gap-system.org └───────┘ Architecture: x86_64-pc-linux-gnu-default64 Configuration: gmp 6.1.2, readline Loading the library and packages ... Packages: AClib 1.3.1, Alnuth 3.1.0, AtlasRep 1.5.1, AutoDoc 2018.09.20, AutPGrp 1.10, CRISP 1.4.4, Cryst 4.1.18, CrystCat 1.1.8, CTblLib 1.2.2, FactInt 1.6.2, FGA 1.4.0, GAPDoc 1.6.2, IRREDSOL 1.4, LAGUNA 3.9.0, Polenta 1.3.8, Polycyclic 2.14, PrimGrp 3.3.2, RadiRoot 2.8, ResClasses 4.7.1, SmallGrp 1.3, Sophus 1.24, SpinSym 1.5, TomLib 1.2.7, TransGrp 2.0.4, utils 0.59 Try '??help' for help. See also '?copyright', '?cite' and '?authors'

gaehler commented 5 years ago

Thanks for reporting this, and sorry for taking so much time to fix it. Due to an improper normalization of the representative affine subspace, some Wyckoff positions were listed more than once. Should be fixed in Release 4.1.21.