Equivalence of superspace groups

The standard settings of (3 + d)-dimensional superspace groups are determined for a series of modulated compounds, especially concentrating on d = 2 and 3. The coordinate transformation in superspace is discussed in view of its implications in physical space.


Algorithm for determination of the transformation S.
Equivalence of two superspace groups is established by finding the transformation S between them as defined in Eq. (9) of the manuscript: Failure to find such a transformation is considered proof that two superspace groups are inequivalent.
As a general strategy, we will select an appropriate range limit N k for each of the independent variablesS sk in Eq. (15), and try all possible combinations of independent integers such that −N k ≤S sk ≤ N k .
For each trial set, we then calculate each of the dependent variablesS sj , check they are all integers, check that det(S R ) = 1 and det(S ϵ ) = ±1, and finally check if there is a solution to Eq. (12) It is important that each of the N k be sufficiently large that a solution to Eqs. (12) and (15) will be found whenever one exists. The following are our rules for determining the values of N k .
Rule 1. The value of N k must be greater than or equal to 1 for all independent variables capable of affecting the search for a solution (not all variables matter).
Rule 2. For a given j in Eq. (15), we can ensure that the dependent componentS sj has the opportunity to take on non-zero integer values by requiring that each of the N k be greater than or equal to the least common denominator of all of the coefficients B ′ ik /B ′ ij , some of which may be rational fractions.
Rule 3. The last term in Eq. (12) can be written as: where the sum is only over the independent components ofS s . For a given l and i, let m li be the least common denominator of the nonzero coefficients C li1 , C 1i2 , . . ., and let m be the least common multiple of all of the m li . Since Eq. (12) only needs to be satisfied to within an integer (mod 1), we can allow the full range of possible solutions by ensuring that its last term is able to take on nonzero integer values. This is accomplished by requiring that all of the N k be greater than or equal to 1 2 m.
Rule 4. Before performing an equivalence test, we always begin by transforming the 3-dimensional (i.e. basic space group) parts of the two superspace groups into a common simple setting. This means that both groups have the same set of R matrices and v 3 translations, so that the identity transformation (S R = 1 and S v = 0) relates their basic space groups. However, the two superspace groups may still differ in ϵ, M , and v d , such that there exists no overall solution for S with S R = 1. In such a case, a solution with S R ̸ = 1 may still exist, which involves a simple permutation or mixing of the external lattice vectors. Due to this preprocessing of the operators, we can use N k = 1 for each independent variable in S R , even if the previous rules say otherwise.
Rule 5. Let m ϵ be the maximum value of N k among the independent variables in S ϵ . In order to allow solutions for which det(S ϵ ) = ±1, we require that all values of N k for the independent variables in S ϵ must greater than or equal to m ϵ − 1.
Based on the independent-variable range limits described above, the total number of independent-variable trials will be For large numbers of independent variables and/or for large values of N k , it is often impractical to conduct so many trials. We must therefore increase the efficiency of the search by recognizing situations in which the values of certain higher-priority variables fail a critical test, making it unnecessary to explore the values of any other variables until the higher-priority variables have been changed.
To facilitate this approach, we first classify the independent variables as follows: The independent variables inS R . Consider that in Eq. (13), we putS R andS ϵ belowS M . When we bring B to row echelon form, this arrangement guarantees that dependent variables in S ϵ will only depend on independent variables in X ϵ . And because of the zeros that occur by definition in the upper right corner of S s , it also guarantees that dependent variables in S R will only depend on independent variables in X R .
Intersections with X T and X I split the variables of the X R , X ϵ and X M classes into four subclasses each.
The simplest way to construct an algorithm would be to have 12 successively nested loops to iterate the variables of each these subclasses (X R subclasses first, X ϵ subclasses next, and X M subclasses last), such that we perform tests in each loop that have the potential to skip all inner loops as soon as a failure is detected. For example, a dependent-variable test (must be integers) can be performed onS R as soon as values have been assigned to all variables in X R ∩ X I , and a determinant test can be performed as soon as values have been assigned to all variables in X R .
In practice, we find it convenient to group some of the subclasses together, while keeping others separate. See the algorithm pseudo-code at the end of the appendix for details. In the outermost loop (#1), we systematically iterate over all variables in X R ∩ X T . For each outer-loop trial, loops #2 and #3 iterate over the X R variables that don't affect the translation test, and accumulate a list of candidates that pass the dependent-variable and determinant tests (called the RT list). Note that for each candidate in X R ∩ X T ∩ X I that passes the independent variable test, we only need one candidate in X R ∩ X T ∩ X I that passes the determinant test-all candidates of this type are equivalent with respect to the tests that remain to be performed.
Provided that at least one successful candidate turns up in the RT list, we nest inward with a loop (#4) that iterates over X ϵ ∩ X T , which contains additional loops (#5 and #6) that accumulate a comparable list of successful ϵT candidates.
Provided that at least one successful candidate turns up in the ϵT list, we run 6 another loop (#7) that iterates over X M ∩ X T . These trials each complete the assignment of variables in X T , so that we are able to perform the translation test of Eq.
(12). Each successful candidate is accumulated in the M T list. Note that the variables in X M are not subject to a determinant test.
Nested loops #8, #9 and #10 now iterate over the accumulated lists of successful candidates from previous tests on specific variables. Taking X R ∩ X T and X ϵ ∩ X T values from the loop #1 and loop #4 iterators, together with X R ∩ X T values from the RT list, X ϵ ∩ X T values from the ϵT list, and X M ∩ X T values from the M T list, we finally iterate over the X M ∩ X T ∩ X I variables, and perform the last test: the dependent-variable onS M . Only one success within this innermost loop proves the two groups to be equivalent. Observe that we never explore the variables in X M ∩ X T ∩ X I because they don't impact the outcomes of any of the tests performed-we simply set these variables to zero.
The accumulation of the RT , ϵT and M T lists was convenient but not necessary.
Their creation did not eliminate nested loops, but merely delayed the nesting until the last step of the algorithm (loops #8-#11). We accumulated these lists because the overhead associated with the tests relevant to each list were expensive. In the current algorithm, we get many valid candidates for a specific variable subclass after paying this expense only once.
Our algorithm is still a brute force exploratory approach to establishing superspacegroup equivalence based on two sets of group operators. But it is also robust and highly efficient. Efficiency was enhanced in at least four ways: (1) separating dependent and independent variables, (2) keeping variable dependencies isolated withinS R andS ϵ , (3) aggressively performing outer-loop tests that bypassed large numbers of innerloop iterations, (4) and keeping the independent-variable ranges as small as possible without precluding viable solutions.
If the ϵT list is empty, cycle Loop (4).
Clear the M T list.
If a solution for S t exists, store the values for X M ∩ X T in the M T list.
End Loop (7) If the M T list is empty, cycle Loop (4).
Loop (8): Iterate over entries in the RT list.
Loop (9): Iterate over entries in the ϵT list.
Loop (10) Else we have found a solution. The two groups are equivalent.
Exit algorithm.

End Loop (1).
There is no solution. The two groups are not equivalent.
Exit algorithm.