Closed hongyi-zhao closed 1 year ago
There is no problem with my theoretical description. But the analysis of program logic is incorrect.
If we have reached the end of the algorithm, it means that S1
and S2
must belong to different space group types. So, the last fail
is necessary.
According to the Bieberbach's theorem II, the last
fail
used inConjugatorSpaceGroupsStdSamePG
andConjugatorSpaceGroups
are impossible to happen:https://github.com/gap-packages/cryst/blob/5cbd84c517d8030eecb52026667fd725f14d53a0/gap/equiv.gi#L74 https://github.com/gap-packages/cryst/blob/5cbd84c517d8030eecb52026667fd725f14d53a0/gap/equiv.gi#L143
In short: If the implemented algorithm is complete, then when it reaches the last step for two space groups, they must be isomorphic. Therefore, the algorithm should not include any statements related to
fail
at the end.