Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the symmorphic space group determination algorithm. #40

Open
hongyi-zhao opened this issue Apr 24, 2023 · 1 comment
Open

About the symmorphic space group determination algorithm. #40

hongyi-zhao opened this issue Apr 24, 2023 · 1 comment

Comments

@hongyi-zhao
Copy link

hongyi-zhao commented Apr 24, 2023

The algorithm of IsSymmorphicSpaceGroup implemented in cryst package is as follows:

cryst/gap/cryst.gi

Lines 537 to 543 in fbf54fb

#############################################################################
##
#M IsSymmorphicSpaceGroup( S ) . . . . . . . . . . . . . . .is S symmorphic?
##
InstallMethod( IsSymmorphicSpaceGroup,
"generic method", true, [ IsAffineCrystGroupOnLeftOrRight ], 0,
S -> CocVecs( S ) = [] );

cryst/gap/max.gi

Lines 467 to 504 in fbf54fb

#############################################################################
##
#F CocycleInfo( <S> ) . . . . . . . . . . .information about extension type
##
CocycleInfo := function( S )
local P, iso, F, d, gens, mats, coc, rel, new;
P := PointGroup( S );
iso := IsomorphismFpGroup( P );
F := Image( iso );
d := DimensionOfMatrixGroup( S ) - 1;
gens := GeneratorsOfGroup( FreeGroupOfFpGroup( F ) );
mats := iso!.preimagesInAffineCrystGroup;
coc := [];
for rel in RelatorsOfFpGroup( F ) do
new := MappedWord( rel, gens, mats );
Add( coc, new[d+1]{[1..d]} );
od;
return coc;
end;
#############################################################################
##
#M CocVecs( <S> ) . . Cocycles of extension of point group with translations
##
InstallMethod( CocVecs, true, [ IsAffineCrystGroupOnRight ], 0,
function( S )
return ReducedLatticeBasis( CocycleInfo( S ) );
end );
InstallMethod( CocVecs, true, [ IsAffineCrystGroupOnLeft ], 0,
function( S )
return CocVecs( TransposedMatrixGroup( S ) );
end );

But I also noticed the following definition in the paper by Bettina Eick and Bernd Souvignier:

image
image

It seems that this definition does not completely correspond to the algorithm above. Any tips/comments will be appreciated.

Regards,
Zhao

@hongyi-zhao hongyi-zhao changed the title The algorithm of IsSymmorphicSpaceGroup. About the algorithm implementation of IsSymmorphicSpaceGroup. Apr 24, 2023
@hongyi-zhao
Copy link
Author

hongyi-zhao commented Jun 3, 2023

See #39 (comment) for the related discussion. Considering that a system of nonprimitive translations (SNoT) is completely determined by its values on generators of the point group, as shown in the screenshot below, so a space group is symmorphic if and only if the SNoT of the preimage of the generators of the point group in the corresponding space group is 0 mod lattice basis.

image

While the current implementation of IsSymmorphicSpaceGroup in Cryst package is based on the condition that the SNoT of the preimage of the relators of the point group in the corresponding space group is 0 mod lattice basis.

@hongyi-zhao hongyi-zhao changed the title About the algorithm implementation of IsSymmorphicSpaceGroup. About the symmorphic space group determination algorithm. Jun 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant