View Javadoc
1   // ******************************************************************************
2   //
3   // Title:       Force Field X.
4   // Description: Force Field X - Software for Molecular Biophysics.
5   // Copyright:   Copyright (c) Michael J. Schnieders 2001-2024.
6   //
7   // This file is part of Force Field X.
8   //
9   // Force Field X is free software; you can redistribute it and/or modify it
10  // under the terms of the GNU General Public License version 3 as published by
11  // the Free Software Foundation.
12  //
13  // Force Field X is distributed in the hope that it will be useful, but WITHOUT
14  // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
16  // details.
17  //
18  // You should have received a copy of the GNU General Public License along with
19  // Force Field X; if not, write to the Free Software Foundation, Inc., 59 Temple
20  // Place, Suite 330, Boston, MA 02111-1307 USA
21  //
22  // Linking this library statically or dynamically with other modules is making a
23  // combined work based on this library. Thus, the terms and conditions of the
24  // GNU General Public License cover the whole combination.
25  //
26  // As a special exception, the copyright holders of this library give you
27  // permission to link this library with independent modules to produce an
28  // executable, regardless of the license terms of these independent modules, and
29  // to copy and distribute the resulting executable under terms of your choice,
30  // provided that you also meet, for each linked independent module, the terms
31  // and conditions of the license of that module. An independent module is a
32  // module which is not derived from or based on this library. If you modify this
33  // library, you may extend this exception to your version of the library, but
34  // you are not obligated to do so. If you do not wish to do so, delete this
35  // exception statement from your version.
36  //
37  // ******************************************************************************
38  package ffx.crystal;
39  
40  import static ffx.crystal.CrystalSystem.CUBIC;
41  import static ffx.crystal.CrystalSystem.HEXAGONAL;
42  import static ffx.crystal.CrystalSystem.MONOCLINIC;
43  import static ffx.crystal.CrystalSystem.ORTHORHOMBIC;
44  import static ffx.crystal.CrystalSystem.TETRAGONAL;
45  import static ffx.crystal.CrystalSystem.TRICLINIC;
46  import static ffx.crystal.CrystalSystem.TRIGONAL;
47  import static ffx.crystal.LatticeSystem.CUBIC_LATTICE;
48  import static ffx.crystal.LatticeSystem.HEXAGONAL_LATTICE;
49  import static ffx.crystal.LatticeSystem.MONOCLINIC_LATTICE;
50  import static ffx.crystal.LatticeSystem.ORTHORHOMBIC_LATTICE;
51  import static ffx.crystal.LatticeSystem.RHOMBOHEDRAL_LATTICE;
52  import static ffx.crystal.LatticeSystem.TETRAGONAL_LATTICE;
53  import static ffx.crystal.LatticeSystem.TRICLINIC_LATTICE;
54  import static ffx.crystal.LaueSystem.L111;
55  import static ffx.crystal.LaueSystem.L113;
56  import static ffx.crystal.LaueSystem.L114;
57  import static ffx.crystal.LaueSystem.L121;
58  import static ffx.crystal.LaueSystem.L222;
59  import static ffx.crystal.LaueSystem.L223;
60  import static ffx.crystal.LaueSystem.L224;
61  import static ffx.crystal.LaueSystem.L32U;
62  import static ffx.crystal.LaueSystem.LM3B;
63  import static ffx.crystal.LaueSystem.LM3M;
64  
65  /**
66   * The SpaceGroupDefinitions class defines the 230 distinct space groups in three dimensions.
67   *
68   * @author Michael J. Schnieders
69   * @see <ul>
70   *     <li><a href="http://it.iucr.org/Ab/" target="_blank"> International Tables for
71   *     Crystallography Volume A: Space-group symmetry </a>
72   *     <li><a href="http://www.ccp4.ac.uk/html/symlib.html" target="_blank"> CCP4 Symlib </a>
73   *     </ul>
74   * @since 1.0
75   */
76  public class SpaceGroupDefinitions {
77  
78    private static final double f12 = 1.0 / 2.0;
79    private static final double f13 = 1.0 / 3.0;
80    private static final double f23 = 2.0 / 3.0;
81    private static final double f14 = 1.0 / 4.0;
82    private static final double f16 = 1.0 / 6.0;
83    private static final double f18 = 1.0 / 8.0;
84    private static final double f112 = 1.0 / 12.0;
85  
86    /**
87     * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
88     * specification limit on method size is exceeded.
89     *
90     * @param num input parameter (between 1 and 50)
91     * @return the selected SpaceGroup
92     */
93    static SpaceGroup getSpaceGroup1(int num) {
94      SpaceGroup spaceGroup = null;
95      switch (num) {
96        case 1 -> spaceGroup =
97            new SpaceGroup(
98                1,
99                1,
100               1,
101               "P1",
102               "PG1",
103               "P 1",
104               TRICLINIC,
105               TRICLINIC_LATTICE,
106               L111,
107               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
108               new double[] {1.0, 1.0, 1.0},
109               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0));
110       case 2 -> spaceGroup =
111           new SpaceGroup(
112               2,
113               2,
114               2,
115               "P-1",
116               "PG1bar",
117               "P -1",
118               TRICLINIC,
119               TRICLINIC_LATTICE,
120               L111,
121               new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LT},
122               new double[] {1.0, f12, 1.0},
123               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
124               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0));
125       case 3 -> spaceGroup =
126           new SpaceGroup(
127               3,
128               2,
129               2,
130               "P2",
131               "PG2",
132               "P 1 2 1",
133               MONOCLINIC,
134               MONOCLINIC_LATTICE,
135               L121,
136               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
137               new double[] {f12, 1.0, 1.0},
138               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
139               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0));
140       case 4 -> spaceGroup =
141           new SpaceGroup(
142               4,
143               2,
144               2,
145               "P21",
146               "PG2",
147               "P 1 21 1",
148               MONOCLINIC,
149               MONOCLINIC_LATTICE,
150               L121,
151               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
152               new double[] {1.0, f12, 1.0},
153               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
154               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0));
155       case 5 -> spaceGroup =
156           new SpaceGroup(
157               5,
158               4,
159               2,
160               "C2",
161               "PG2",
162               "C 1 2 1",
163               MONOCLINIC,
164               MONOCLINIC_LATTICE,
165               L121,
166               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
167               new double[] {f12, f12, 1.0},
168               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
169               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
170               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
171               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0));
172       case 6 -> spaceGroup =
173           new SpaceGroup(
174               6,
175               2,
176               2,
177               "Pm",
178               "PGm",
179               "P 1 m 1",
180               MONOCLINIC,
181               MONOCLINIC_LATTICE,
182               L121,
183               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
184               new double[] {-1.0, -1.0, -1.0},
185               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
186               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0));
187       case 7 -> spaceGroup =
188           new SpaceGroup(
189               7,
190               2,
191               2,
192               "Pc",
193               "PGm",
194               "P 1 c 1",
195               MONOCLINIC,
196               MONOCLINIC_LATTICE,
197               L121,
198               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
199               new double[] {-1.0, -1.0, -1.0},
200               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
201               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12));
202       case 8 -> spaceGroup =
203           new SpaceGroup(
204               8,
205               4,
206               2,
207               "Cm",
208               "PGm",
209               "C 1 m 1",
210               MONOCLINIC,
211               MONOCLINIC_LATTICE,
212               L121,
213               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
214               new double[] {-1.0, -1.0, -1.0},
215               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
216               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
217               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
218               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0));
219       case 9 -> spaceGroup =
220           new SpaceGroup(
221               9,
222               4,
223               2,
224               "Cc",
225               "PGm",
226               "C 1 c 1",
227               MONOCLINIC,
228               MONOCLINIC_LATTICE,
229               L121,
230               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
231               new double[] {-1.0, -1.0, -1.0},
232               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
233               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
234               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
235               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12));
236       case 10 -> spaceGroup =
237           new SpaceGroup(
238               10,
239               4,
240               4,
241               "P2/m",
242               "PG2/m",
243               "P 1 2/m 1",
244               MONOCLINIC,
245               MONOCLINIC_LATTICE,
246               L121,
247               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
248               new double[] {f12, f12, 1.0},
249               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
250               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
251               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
252               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0));
253       case 11 -> spaceGroup =
254           new SpaceGroup(
255               11,
256               4,
257               4,
258               "P21/m",
259               "PG2/m",
260               "P 1 21/m 1",
261               MONOCLINIC,
262               MONOCLINIC_LATTICE,
263               L121,
264               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
265               new double[] {-1.0, -1.0, -1.0},
266               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
267               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
268               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
269               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0));
270       case 12 -> spaceGroup =
271           new SpaceGroup(
272               12,
273               8,
274               4,
275               "C2/m",
276               "PG2/m",
277               "C 1 2/m 1",
278               MONOCLINIC,
279               MONOCLINIC_LATTICE,
280               L121,
281               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
282               new double[] {-1.0, -1.0, -1.0},
283               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
284               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
285               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
286               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
287               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
288               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
289               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
290               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0));
291       case 13 -> spaceGroup =
292           new SpaceGroup(
293               13,
294               4,
295               4,
296               "P2/c",
297               "PG2/m",
298               "P 1 2/c 1",
299               MONOCLINIC,
300               MONOCLINIC_LATTICE,
301               L121,
302               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
303               new double[] {-1.0, -1.0, -1.0},
304               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
305               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
306               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
307               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12));
308       case 14 -> spaceGroup =
309           new SpaceGroup(
310               14,
311               4,
312               4,
313               "P21/c",
314               "PG2/m",
315               "P 1 21/c 1",
316               MONOCLINIC,
317               MONOCLINIC_LATTICE,
318               L121,
319               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
320               new double[] {-1.0, -1.0, -1.0},
321               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
322               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
323               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
324               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12));
325       case 15 -> spaceGroup =
326           new SpaceGroup(
327               15,
328               8,
329               4,
330               "C2/c",
331               "PG2/m",
332               "C 1 2/c 1",
333               MONOCLINIC,
334               MONOCLINIC_LATTICE,
335               L121,
336               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
337               new double[] {-1.0, -1.0, -1.0},
338               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
339               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
340               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
341               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
342               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
343               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
344               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
345               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12));
346       case 16 -> spaceGroup =
347           new SpaceGroup(
348               16,
349               4,
350               4,
351               "P222",
352               "PG222",
353               "P 2 2 2",
354               ORTHORHOMBIC,
355               ORTHORHOMBIC_LATTICE,
356               L222,
357               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
358               new double[] {f12, f12, 1.0},
359               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
360               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
361               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
362               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0));
363       case 17 -> spaceGroup =
364           new SpaceGroup(
365               17,
366               4,
367               4,
368               "P2221",
369               "PG222",
370               "P 2 2 21",
371               ORTHORHOMBIC,
372               ORTHORHOMBIC_LATTICE,
373               L222,
374               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
375               new double[] {f12, f12, 1.0},
376               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
377               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
378               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
379               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0));
380       case 18 -> spaceGroup =
381           new SpaceGroup(
382               18,
383               4,
384               4,
385               "P21212",
386               "PG222",
387               "P 21 21 2",
388               ORTHORHOMBIC,
389               ORTHORHOMBIC_LATTICE,
390               L222,
391               new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LT},
392               new double[] {1.0, f14, 1.0},
393               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
394               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
395               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
396               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
397       case 19 -> spaceGroup =
398           new SpaceGroup(
399               19,
400               4,
401               4,
402               "P212121",
403               "PG222",
404               "P 21 21 21",
405               ORTHORHOMBIC,
406               ORTHORHOMBIC_LATTICE,
407               L222,
408               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
409               new double[] {1.0, 1.0, f14},
410               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
411               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
412               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
413               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
414       case 20 -> spaceGroup =
415           new SpaceGroup(
416               20,
417               8,
418               4,
419               "C2221",
420               "PG222",
421               "C 2 2 21",
422               ORTHORHOMBIC,
423               ORTHORHOMBIC_LATTICE,
424               L222,
425               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
426               new double[] {f12, f14, 1.0},
427               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
428               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
429               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
430               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
431               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
432               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
433               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
434               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
435       case 21 -> spaceGroup =
436           new SpaceGroup(
437               21,
438               8,
439               4,
440               "C222",
441               "PG222",
442               "C 2 2 2",
443               ORTHORHOMBIC,
444               ORTHORHOMBIC_LATTICE,
445               L222,
446               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
447               new double[] {f12, f14, 1.0},
448               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
449               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
450               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
451               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
452               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
453               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
454               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
455               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
456       case 22 -> spaceGroup =
457           new SpaceGroup(
458               22,
459               16,
460               4,
461               "F222",
462               "PG222",
463               "F 2 2 2",
464               ORTHORHOMBIC,
465               ORTHORHOMBIC_LATTICE,
466               L222,
467               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
468               new double[] {f14, f14, 1.0},
469               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
470               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
471               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
472               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
473               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
474               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
475               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
476               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
477               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
478               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
479               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
480               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
481               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
482               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
483               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
484               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
485       case 23 -> spaceGroup =
486           new SpaceGroup(
487               23,
488               8,
489               4,
490               "I222",
491               "PG222",
492               "I 2 2 2",
493               ORTHORHOMBIC,
494               ORTHORHOMBIC_LATTICE,
495               L222,
496               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
497               new double[] {f12, f14, 1.0},
498               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
499               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
500               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
501               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
502               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
503               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
504               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
505               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12));
506       case 24 -> spaceGroup =
507           new SpaceGroup(
508               24,
509               8,
510               4,
511               "I212121",
512               "PG222",
513               "I 21 21 21",
514               ORTHORHOMBIC,
515               ORTHORHOMBIC_LATTICE,
516               L222,
517               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
518               new double[] {f12, f12, f12},
519               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
520               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
521               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
522               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
523               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
524               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
525               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
526               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12));
527       case 25 -> spaceGroup =
528           new SpaceGroup(
529               25,
530               4,
531               4,
532               "Pmm2",
533               "PGmm2",
534               "P m m 2",
535               ORTHORHOMBIC,
536               ORTHORHOMBIC_LATTICE,
537               L222,
538               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
539               new double[] {-1.0, -1.0, -1.0},
540               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
541               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
542               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
543               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
544       case 26 -> spaceGroup =
545           new SpaceGroup(
546               26,
547               4,
548               4,
549               "Pmc21",
550               "PGmm2",
551               "P m c 21",
552               ORTHORHOMBIC,
553               ORTHORHOMBIC_LATTICE,
554               L222,
555               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
556               new double[] {-1.0, -1.0, -1.0},
557               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
558               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
559               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
560               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
561       case 27 -> spaceGroup =
562           new SpaceGroup(
563               27,
564               4,
565               4,
566               "Pcc2",
567               "PGmm2",
568               "P c c 2",
569               ORTHORHOMBIC,
570               ORTHORHOMBIC_LATTICE,
571               L222,
572               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
573               new double[] {-1.0, -1.0, -1.0},
574               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
575               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
576               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
577               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
578       case 28 -> spaceGroup =
579           new SpaceGroup(
580               28,
581               4,
582               4,
583               "Pma2",
584               "PGmm2",
585               "P m a 2",
586               ORTHORHOMBIC,
587               ORTHORHOMBIC_LATTICE,
588               L222,
589               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
590               new double[] {-1.0, -1.0, -1.0},
591               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
592               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
593               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
594               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0));
595       case 29 -> spaceGroup =
596           new SpaceGroup(
597               29,
598               4,
599               4,
600               "Pca21",
601               "PGmm2",
602               "P c a 21",
603               ORTHORHOMBIC,
604               ORTHORHOMBIC_LATTICE,
605               L222,
606               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
607               new double[] {-1.0, -1.0, -1.0},
608               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
609               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
610               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
611               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
612       case 30 -> spaceGroup =
613           new SpaceGroup(
614               30,
615               4,
616               4,
617               "Pnc2",
618               "PGmm2",
619               "P n c 2",
620               ORTHORHOMBIC,
621               ORTHORHOMBIC_LATTICE,
622               L222,
623               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
624               new double[] {-1.0, -1.0, -1.0},
625               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
626               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
627               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
628               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
629       case 31 -> spaceGroup =
630           new SpaceGroup(
631               31,
632               4,
633               4,
634               "Pmn21",
635               "PGmm2",
636               "P m n 21",
637               ORTHORHOMBIC,
638               ORTHORHOMBIC_LATTICE,
639               L222,
640               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
641               new double[] {-1.0, -1.0, -1.0},
642               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
643               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
644               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
645               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
646       case 32 -> spaceGroup =
647           new SpaceGroup(
648               32,
649               4,
650               4,
651               "Pba2",
652               "PGmm2",
653               "P b a 2",
654               ORTHORHOMBIC,
655               ORTHORHOMBIC_LATTICE,
656               L222,
657               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
658               new double[] {-1.0, -1.0, -1.0},
659               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
660               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
661               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
662               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
663       case 33 -> spaceGroup =
664           new SpaceGroup(
665               33,
666               4,
667               4,
668               "Pna21",
669               "PGmm2",
670               "P n a 21",
671               ORTHORHOMBIC,
672               ORTHORHOMBIC_LATTICE,
673               L222,
674               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
675               new double[] {-1.0, -1.0, -1.0},
676               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
677               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
678               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
679               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
680       case 34 -> spaceGroup =
681           new SpaceGroup(
682               34,
683               4,
684               4,
685               "Pnn2",
686               "PGmm2",
687               "P n n 2",
688               ORTHORHOMBIC,
689               ORTHORHOMBIC_LATTICE,
690               L222,
691               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
692               new double[] {-1.0, -1.0, -1.0},
693               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
694               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
695               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
696               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
697       case 35 -> spaceGroup =
698           new SpaceGroup(
699               35,
700               8,
701               4,
702               "Cmm2",
703               "PGmm2",
704               "C m m 2",
705               ORTHORHOMBIC,
706               ORTHORHOMBIC_LATTICE,
707               L222,
708               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
709               new double[] {-1.0, -1.0, -1.0},
710               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
711               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
712               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
713               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
714               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
715               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
716               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
717               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
718       case 36 -> spaceGroup =
719           new SpaceGroup(
720               36,
721               8,
722               4,
723               "Cmc21",
724               "PGmm2",
725               "C m c 21",
726               ORTHORHOMBIC,
727               ORTHORHOMBIC_LATTICE,
728               L222,
729               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
730               new double[] {-1.0, -1.0, -1.0},
731               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
732               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
733               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
734               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
735               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
736               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
737               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
738               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
739       case 37 -> spaceGroup =
740           new SpaceGroup(
741               37,
742               8,
743               4,
744               "Ccc2",
745               "PGmm2",
746               "C c c 2",
747               ORTHORHOMBIC,
748               ORTHORHOMBIC_LATTICE,
749               L222,
750               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
751               new double[] {-1.0, -1.0, -1.0},
752               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
753               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
754               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
755               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
756               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
757               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
758               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
759               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
760       case 38 -> spaceGroup =
761           new SpaceGroup(
762               38,
763               8,
764               4,
765               "Amm2",
766               "PGmm2",
767               "A m m 2",
768               ORTHORHOMBIC,
769               ORTHORHOMBIC_LATTICE,
770               L222,
771               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
772               new double[] {-1.0, -1.0, -1.0},
773               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
774               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
775               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
776               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
777               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
778               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
779               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
780               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
781       case 39 -> spaceGroup =
782           new SpaceGroup(
783               39,
784               8,
785               4,
786               "Abm2",
787               "PGmm2",
788               "A b m 2",
789               ORTHORHOMBIC,
790               ORTHORHOMBIC_LATTICE,
791               L222,
792               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
793               new double[] {-1.0, -1.0, -1.0},
794               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
795               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
796               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
797               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_0),
798               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
799               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
800               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
801               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
802       case 40 -> spaceGroup =
803           new SpaceGroup(
804               40,
805               8,
806               4,
807               "Ama2",
808               "PGmm2",
809               "A m a 2",
810               ORTHORHOMBIC,
811               ORTHORHOMBIC_LATTICE,
812               L222,
813               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
814               new double[] {-1.0, -1.0, -1.0},
815               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
816               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
817               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
818               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0),
819               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
820               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
821               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
822               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
823       case 41 -> spaceGroup =
824           new SpaceGroup(
825               41,
826               8,
827               4,
828               "Aba2",
829               "PGmm2",
830               "A b a 2",
831               ORTHORHOMBIC,
832               ORTHORHOMBIC_LATTICE,
833               L222,
834               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
835               new double[] {-1.0, -1.0, -1.0},
836               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
837               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
838               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
839               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
840               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
841               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
842               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
843               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
844       case 42 -> spaceGroup =
845           new SpaceGroup(
846               42,
847               16,
848               4,
849               "Fmm2",
850               "PGmm2",
851               "F m m 2",
852               ORTHORHOMBIC,
853               ORTHORHOMBIC_LATTICE,
854               L222,
855               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
856               new double[] {-1.0, -1.0, -1.0},
857               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
858               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
859               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
860               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
861               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
862               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
863               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
864               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
865               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
866               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
867               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
868               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
869               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
870               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
871               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
872               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
873       case 43 -> spaceGroup =
874           new SpaceGroup(
875               43,
876               16,
877               4,
878               "Fdd2",
879               "PGmm2",
880               "F d d 2",
881               ORTHORHOMBIC,
882               ORTHORHOMBIC_LATTICE,
883               L222,
884               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
885               new double[] {-1.0, -1.0, -1.0},
886               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
887               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
888               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
889               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
890               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
891               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
892               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
893               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
894               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
895               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
896               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
897               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
898               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
899               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
900               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
901               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14));
902       case 44 -> spaceGroup =
903           new SpaceGroup(
904               44,
905               8,
906               4,
907               "Imm2",
908               "PGmm2",
909               "I m m 2",
910               ORTHORHOMBIC,
911               ORTHORHOMBIC_LATTICE,
912               L222,
913               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
914               new double[] {-1.0, -1.0, -1.0},
915               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
916               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
917               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
918               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
919               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
920               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
921               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
922               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
923       case 45 -> spaceGroup =
924           new SpaceGroup(
925               45,
926               8,
927               4,
928               "Iba2",
929               "PGmm2",
930               "I b a 2",
931               ORTHORHOMBIC,
932               ORTHORHOMBIC_LATTICE,
933               L222,
934               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
935               new double[] {-1.0, -1.0, -1.0},
936               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
937               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
938               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
939               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
940               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
941               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
942               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
943               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
944       case 46 -> spaceGroup =
945           new SpaceGroup(
946               46,
947               8,
948               4,
949               "Ima2",
950               "PGmm2",
951               "I m a 2",
952               ORTHORHOMBIC,
953               ORTHORHOMBIC_LATTICE,
954               L222,
955               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
956               new double[] {-1.0, -1.0, -1.0},
957               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
958               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
959               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
960               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0),
961               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
962               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
963               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
964               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
965       case 47 -> spaceGroup =
966           new SpaceGroup(
967               47,
968               8,
969               8,
970               "Pmmm",
971               "PGmmm",
972               "P 2/m 2/m 2/m",
973               ORTHORHOMBIC,
974               ORTHORHOMBIC_LATTICE,
975               L222,
976               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
977               new double[] {f12, f12, f12},
978               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
979               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
980               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
981               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
982               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
983               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
984               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
985               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
986       case 48 -> spaceGroup =
987           new SpaceGroup(
988               48,
989               8,
990               8,
991               "Pnnn",
992               "PGmmm",
993               "P 2/n 2/n 2/n",
994               ORTHORHOMBIC,
995               ORTHORHOMBIC_LATTICE,
996               L222,
997               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
998               new double[] {-1.0, -1.0, -1.0},
999               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1000               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1001               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1002               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1003               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1004               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1005               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1006               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1007       case 49 -> spaceGroup =
1008           new SpaceGroup(
1009               49,
1010               8,
1011               8,
1012               "Pccm",
1013               "PGmmm",
1014               "P 2/c 2/c 2/m",
1015               ORTHORHOMBIC,
1016               ORTHORHOMBIC_LATTICE,
1017               L222,
1018               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1019               new double[] {-1.0, -1.0, -1.0},
1020               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1021               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1022               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1023               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1024               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1025               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1026               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1027               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1028       case 50 -> spaceGroup =
1029           new SpaceGroup(
1030               50,
1031               8,
1032               8,
1033               "Pban",
1034               "PGmmm",
1035               "P 2/b 2/a 2/n",
1036               ORTHORHOMBIC,
1037               ORTHORHOMBIC_LATTICE,
1038               L222,
1039               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1040               new double[] {-1.0, -1.0, -1.0},
1041               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1042               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1043               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1044               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1045               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1046               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1047               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1048               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1049       default -> {
1050       }
1051     }
1052     return spaceGroup;
1053   }
1054 
1055   /**
1056    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
1057    * specification limit on method size is exceeded.
1058    *
1059    * @param num input parameter (between 51 and 100)
1060    * @return the selected SpaceGroup
1061    */
1062   static SpaceGroup getSpaceGroup2(int num) {
1063     SpaceGroup spaceGroup = null;
1064     switch (num) {
1065       case 51 -> spaceGroup =
1066           new SpaceGroup(
1067               51,
1068               8,
1069               8,
1070               "Pmma",
1071               "PGmmm",
1072               "P 21/m 2/m 2/a",
1073               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1074               L222,
1075               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1076               new double[] {-1.0, -1.0, -1.0},
1077               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1078               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1079               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1080               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_0),
1081               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1082               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1083               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1084               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0));
1085       case 52 -> spaceGroup =
1086           new SpaceGroup(
1087               52,
1088               8,
1089               8,
1090               "Pnna",
1091               "PGmmm",
1092               "P 2/n 21/n 2/a",
1093               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1094               L222,
1095               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1096               new double[] {-1.0, -1.0, -1.0},
1097               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1098               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1099               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1100               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
1101               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1102               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1103               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1104               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
1105       case 53 -> spaceGroup =
1106           new SpaceGroup(
1107               53,
1108               8,
1109               8,
1110               "Pmna",
1111               "PGmmm",
1112               "P 2/m 2/n 21/a",
1113               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1114               L222,
1115               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1116               new double[] {-1.0, -1.0, -1.0},
1117               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1118               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1119               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1120               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1121               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1122               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1123               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1124               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
1125       case 54 -> spaceGroup =
1126           new SpaceGroup(
1127               54,
1128               8,
1129               8,
1130               "Pcca",
1131               "PGmmm",
1132               "P 21/c 2/c 2/a",
1133               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1134               L222,
1135               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1136               new double[] {-1.0, -1.0, -1.0},
1137               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1138               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1139               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1140               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1141               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1142               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1143               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1144               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
1145       case 55 -> spaceGroup =
1146           new SpaceGroup(
1147               55,
1148               8,
1149               8,
1150               "Pbam",
1151               "PGmmm",
1152               "P 21/b 21/a 2/m",
1153               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1154               L222,
1155               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1156               new double[] {-1.0, -1.0, -1.0},
1157               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1158               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1159               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1160               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1161               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1162               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1163               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1164               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1165       case 56 -> spaceGroup =
1166           new SpaceGroup(
1167               56,
1168               8,
1169               8,
1170               "Pccn",
1171               "PGmmm",
1172               "P 21/c 21/c 2/n",
1173               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1174               L222,
1175               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1176               new double[] {-1.0, -1.0, -1.0},
1177               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1178               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1179               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1180               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1181               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1182               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1183               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1184               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
1185       case 57 -> spaceGroup =
1186           new SpaceGroup(
1187               57,
1188               8,
1189               8,
1190               "Pbcm",
1191               "PGmmm",
1192               "P 2/b 21/c 21/m",
1193               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1194               L222,
1195               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1196               new double[] {-1.0, -1.0, -1.0},
1197               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1198               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1199               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1200               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_0),
1201               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1202               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
1203               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1204               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_0));
1205       case 58 -> spaceGroup =
1206           new SpaceGroup(
1207               58,
1208               8,
1209               8,
1210               "Pnnm",
1211               "PGmmm",
1212               "P 21/n 21/n 2/m",
1213               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1214               L222,
1215               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1216               new double[] {-1.0, -1.0, -1.0},
1217               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1218               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1219               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1220               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1221               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1222               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1223               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1224               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1225       case 59 -> spaceGroup =
1226           new SpaceGroup(
1227               59,
1228               8,
1229               8,
1230               "Pmmn",
1231               "PGmmm",
1232               "P 21/m 21/m 2/n",
1233               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1234               L222,
1235               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1236               new double[] {-1.0, -1.0, -1.0},
1237               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1238               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1239               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1240               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1241               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1242               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1243               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1244               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
1245       case 60 -> spaceGroup =
1246           new SpaceGroup(
1247               60,
1248               8,
1249               8,
1250               "Pbcn",
1251               "PGmmm",
1252               "P 21/b 2/c 21/n",
1253               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1254               L222,
1255               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1256               new double[] {-1.0, -1.0, -1.0},
1257               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1258               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1259               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1260               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1261               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1262               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1263               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1264               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1265       case 61 -> spaceGroup =
1266           new SpaceGroup(
1267               61,
1268               8,
1269               8,
1270               "Pbca",
1271               "PGmmm",
1272               "P 21/b 21/c 21/a",
1273               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1274               L222,
1275               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1276               new double[] {-1.0, -1.0, -1.0},
1277               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1278               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1279               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1280               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1281               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1282               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1283               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1284               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1285       case 62 -> spaceGroup =
1286           new SpaceGroup(
1287               62,
1288               8,
1289               8,
1290               "Pnma",
1291               "PGmmm",
1292               "P 21/n 21/m 21/a",
1293               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1294               L222,
1295               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1296               new double[] {-1.0, -1.0, -1.0},
1297               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1298               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1299               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
1300               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1301               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1302               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1303               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
1304               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1305       case 63 -> spaceGroup =
1306           new SpaceGroup(
1307               63,
1308               16,
1309               8,
1310               "Cmcm",
1311               "PGmmm",
1312               "C 2/m 2/c 21/m",
1313               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1314               L222,
1315               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1316               new double[] {-1.0, -1.0, -1.0},
1317               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1318               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1319               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1320               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1321               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1322               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
1323               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1324               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1325               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1326               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1327               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1328               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1329               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1330               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1331               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1332               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1333       case 64 -> spaceGroup =
1334           new SpaceGroup(
1335               64,
1336               16,
1337               8,
1338               "Cmca",
1339               "PGmmm",
1340               "C 2/m 2/c 21/a",
1341               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1342               L222,
1343               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1344               new double[] {-1.0, -1.0, -1.0},
1345               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1346               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
1347               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1348               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1349               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1350               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
1351               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1352               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1353               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1354               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1355               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1356               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1357               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1358               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1359               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1360               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1361       case 65 -> spaceGroup =
1362           new SpaceGroup(
1363               65,
1364               16,
1365               8,
1366               "Cmmm",
1367               "PGmmm",
1368               "C 2/m 2/m 2/m",
1369               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1370               L222,
1371               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1372               new double[] {f12, f14, f12},
1373               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1374               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1375               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1376               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1377               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1378               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1379               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1380               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1381               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1382               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1383               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1384               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1385               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1386               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1387               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1388               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1389       case 66 -> spaceGroup =
1390           new SpaceGroup(
1391               66,
1392               16,
1393               8,
1394               "Cccm",
1395               "PGmmm",
1396               "C 2/c 2/c 2/m",
1397               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1398               L222,
1399               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1400               new double[] {-1.0, -1.0, -1.0},
1401               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1402               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1403               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1404               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1405               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1406               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1407               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1408               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
1409               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1410               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1411               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1412               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1413               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1414               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1415               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1416               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1417       case 67 -> spaceGroup =
1418           new SpaceGroup(
1419               67,
1420               16,
1421               8,
1422               "Cmma",
1423               "PGmmm",
1424               "C 2/m 2/m 2/a",
1425               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1426               L222,
1427               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1428               new double[] {-1.0, -1.0, -1.0},
1429               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1430               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
1431               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
1432               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1433               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1434               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
1435               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
1436               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1437               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1438               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1439               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
1440               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1441               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1442               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1443               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
1444               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1445       case 68 -> spaceGroup =
1446           new SpaceGroup(
1447               68,
1448               16,
1449               8,
1450               "Ccca",
1451               "PGmmm",
1452               "C 2/c 2/c 2/a",
1453               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1454               L222,
1455               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1456               new double[] {-1.0, -1.0, -1.0},
1457               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1458               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1459               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1460               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1461               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
1462               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1463               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1464               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
1465               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1466               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1467               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1468               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1469               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
1470               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
1471               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1472               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
1473       case 69 -> spaceGroup =
1474           new SpaceGroup(
1475               69,
1476               32,
1477               8,
1478               "Fmmm",
1479               "PGmmm",
1480               "F 2/m 2/m 2/m",
1481               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1482               L222,
1483               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1484               new double[] {f14, f14, f12},
1485               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1486               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1487               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1488               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1489               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1490               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1491               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1492               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1493               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
1494               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
1495               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1496               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
1497               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
1498               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
1499               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1500               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
1501               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
1502               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1503               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1504               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1505               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
1506               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1507               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1508               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
1509               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1510               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1511               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1512               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1513               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1514               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1515               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1516               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1517       case 70 -> spaceGroup =
1518           new SpaceGroup(
1519               70,
1520               32,
1521               8,
1522               "Fddd",
1523               "PGmmm",
1524               "F 2/d 2/d 2/d",
1525               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1526               L222,
1527               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1528               new double[] {-1.0, -1.0, -1.0},
1529               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1530               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1531               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1532               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1533               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_14_14),
1534               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_14_14),
1535               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
1536               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
1537               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
1538               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
1539               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1540               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
1541               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_34_34),
1542               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_34_34),
1543               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
1544               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
1545               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
1546               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1547               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1548               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1549               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_14_34),
1550               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_14_34),
1551               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
1552               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
1553               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1554               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1555               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1556               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1557               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_34_14),
1558               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_34_14),
1559               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
1560               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14));
1561       case 71 -> spaceGroup =
1562           new SpaceGroup(
1563               71,
1564               16,
1565               8,
1566               "Immm",
1567               "PGmmm",
1568               "I 2/m 2/m 2/m",
1569               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1570               L222,
1571               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1572               new double[] {f12, f14, f12},
1573               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1574               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1575               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1576               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1577               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1578               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1579               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1580               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1581               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1582               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1583               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1584               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1585               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1586               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1587               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1588               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1589       case 72 -> spaceGroup =
1590           new SpaceGroup(
1591               72,
1592               16,
1593               8,
1594               "Ibam",
1595               "PGmmm",
1596               "I 2/b 2/a 2/m",
1597               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1598               L222,
1599               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1600               new double[] {-1.0, -1.0, -1.0},
1601               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1602               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1603               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1604               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1605               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1606               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1607               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1608               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
1609               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1610               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1611               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1612               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1613               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1614               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1615               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1616               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1617       case 73 -> spaceGroup =
1618           new SpaceGroup(
1619               73,
1620               16,
1621               8,
1622               "Ibca",
1623               "PGmmm",
1624               "I 21/b 21/c 21/a",
1625               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1626               L222,
1627               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1628               new double[] {-1.0, -1.0, -1.0},
1629               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1630               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1631               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1632               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1633               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1634               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1635               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1636               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
1637               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1638               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
1639               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
1640               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1641               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1642               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
1643               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
1644               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1645       case 74 -> spaceGroup =
1646           new SpaceGroup(
1647               74,
1648               16,
1649               8,
1650               "Imma",
1651               "PGmmm",
1652               "I 21/m 21/m 21/a",
1653               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1654               L222,
1655               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1656               new double[] {-1.0, -1.0, -1.0},
1657               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1658               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
1659               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
1660               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1661               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1662               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
1663               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
1664               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1665               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1666               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1667               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1668               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1669               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1670               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1671               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1672               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1673       case 75 -> spaceGroup =
1674           new SpaceGroup(
1675               75,
1676               4,
1677               4,
1678               "P4",
1679               "PG4",
1680               "P 4",
1681               TETRAGONAL, TETRAGONAL_LATTICE,
1682               L114,
1683               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
1684               new double[] {f12, f12, 1.0},
1685               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1686               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1687               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1688               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0));
1689       case 76 -> spaceGroup =
1690           new SpaceGroup(
1691               76,
1692               4,
1693               4,
1694               "P41",
1695               "PG4",
1696               "P 41",
1697               TETRAGONAL, TETRAGONAL_LATTICE,
1698               L114,
1699               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1700               new double[] {1.0, 1.0, f14},
1701               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1702               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1703               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_14),
1704               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_34));
1705       case 77 -> spaceGroup =
1706           new SpaceGroup(
1707               77,
1708               4,
1709               4,
1710               "P42",
1711               "PG4",
1712               "P 42",
1713               TETRAGONAL, TETRAGONAL_LATTICE,
1714               L114,
1715               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
1716               new double[] {f12, 1.0, f12},
1717               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1718               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1719               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
1720               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12));
1721       case 78 -> spaceGroup =
1722           new SpaceGroup(
1723               78,
1724               4,
1725               4,
1726               "P43",
1727               "PG4",
1728               "P 43",
1729               TETRAGONAL, TETRAGONAL_LATTICE,
1730               L114,
1731               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1732               new double[] {1.0, 1.0, f14},
1733               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1734               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1735               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_34),
1736               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_14));
1737       case 79 -> spaceGroup =
1738           new SpaceGroup(
1739               79,
1740               8,
1741               4,
1742               "I4",
1743               "PG4",
1744               "I 4",
1745               TETRAGONAL, TETRAGONAL_LATTICE,
1746               L114,
1747               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1748               new double[] {f12, f12, f12},
1749               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1750               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1751               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1752               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
1753               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1754               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1755               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
1756               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12));
1757       case 80 -> spaceGroup =
1758           new SpaceGroup(
1759               80,
1760               8,
1761               4,
1762               "I41",
1763               "PG4",
1764               "I 41",
1765               TETRAGONAL, TETRAGONAL_LATTICE,
1766               L114,
1767               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
1768               new double[] {f12, 1.0, f14},
1769               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1770               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1771               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
1772               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
1773               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1774               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1775               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
1776               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14));
1777       case 81 -> spaceGroup =
1778           new SpaceGroup(
1779               81,
1780               4,
1781               4,
1782               "P-4",
1783               "PG4bar",
1784               "P -4",
1785               TETRAGONAL, TETRAGONAL_LATTICE,
1786               L114,
1787               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1788               new double[] {-1.0, -1.0, -1.0},
1789               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1790               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1791               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1792               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1793       case 82 -> spaceGroup =
1794           new SpaceGroup(
1795               82,
1796               8,
1797               4,
1798               "I-4",
1799               "PG4bar",
1800               "I -4",
1801               TETRAGONAL, TETRAGONAL_LATTICE,
1802               L114,
1803               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1804               new double[] {-1.0, -1.0, -1.0},
1805               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1806               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1807               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1808               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
1809               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1810               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1811               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
1812               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12));
1813       case 83 -> spaceGroup =
1814           new SpaceGroup(
1815               83,
1816               8,
1817               8,
1818               "P4/m",
1819               "PG4/m",
1820               "P 4/m",
1821               TETRAGONAL, TETRAGONAL_LATTICE,
1822               L114,
1823               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1824               new double[] {f12, f12, f12},
1825               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1826               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1827               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1828               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
1829               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1830               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1831               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1832               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1833       case 84 -> spaceGroup =
1834           new SpaceGroup(
1835               84,
1836               8,
1837               8,
1838               "P42/m",
1839               "PG4/m",
1840               "P 42/m",
1841               TETRAGONAL, TETRAGONAL_LATTICE,
1842               L114,
1843               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1844               new double[] {-1.0, -1.0, -1.0},
1845               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1846               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1847               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
1848               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
1849               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1850               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1851               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
1852               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12));
1853       case 85 -> spaceGroup =
1854           new SpaceGroup(
1855               85,
1856               8,
1857               8,
1858               "P4/n",
1859               "PG4/m",
1860               "P 4/n",
1861               TETRAGONAL, TETRAGONAL_LATTICE,
1862               L114,
1863               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1864               new double[] {-1.0, -1.0, -1.0},
1865               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1866               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1867               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
1868               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
1869               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1870               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1871               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1872               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1873       case 86 -> spaceGroup =
1874           new SpaceGroup(
1875               86,
1876               8,
1877               8,
1878               "P42/n",
1879               "PG4/m",
1880               "P 42/n",
1881               TETRAGONAL, TETRAGONAL_LATTICE,
1882               L114,
1883               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1884               new double[] {-1.0, -1.0, -1.0},
1885               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1886               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1887               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
1888               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
1889               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1890               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1891               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1892               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1893       case 87 -> spaceGroup =
1894           new SpaceGroup(
1895               87,
1896               16,
1897               8,
1898               "I4/m",
1899               "PG4/m",
1900               "I 4/m",
1901               TETRAGONAL, TETRAGONAL_LATTICE,
1902               L114,
1903               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1904               new double[] {f12, f12, f14},
1905               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1906               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1907               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1908               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
1909               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1910               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1911               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1912               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
1913               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1914               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1915               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
1916               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
1917               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1918               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1919               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
1920               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12));
1921       case 88 -> spaceGroup =
1922           new SpaceGroup(
1923               88,
1924               16,
1925               8,
1926               "I41/a",
1927               "PG4/m",
1928               "I 41/a",
1929               TETRAGONAL, TETRAGONAL_LATTICE,
1930               L114,
1931               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1932               new double[] {-1.0, -1.0, -1.0},
1933               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1934               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1935               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
1936               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
1937               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_14),
1938               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_34),
1939               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1940               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
1941               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1942               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1943               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
1944               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
1945               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_34),
1946               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_14),
1947               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
1948               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1949       case 89 -> spaceGroup =
1950           new SpaceGroup(
1951               89,
1952               8,
1953               8,
1954               "P422",
1955               "PG422",
1956               "P 4 2 2",
1957               TETRAGONAL, TETRAGONAL_LATTICE,
1958               L224,
1959               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1960               new double[] {f12, f12, f12},
1961               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1962               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1963               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1964               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
1965               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1966               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1967               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
1968               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
1969       case 90 -> spaceGroup =
1970           new SpaceGroup(
1971               90,
1972               8,
1973               8,
1974               "P4212",
1975               "PG422",
1976               "P 4 21 2",
1977               TETRAGONAL, TETRAGONAL_LATTICE,
1978               L224,
1979               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1980               new double[] {f12, f12, f12},
1981               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1982               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1983               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
1984               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
1985               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1986               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1987               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
1988               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
1989       case 91 -> spaceGroup =
1990           new SpaceGroup(
1991               91,
1992               8,
1993               8,
1994               "P4122",
1995               "PG422",
1996               "P 41 2 2",
1997               TETRAGONAL, TETRAGONAL_LATTICE,
1998               L224,
1999               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2000               new double[] {1.0, 1.0, f18},
2001               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2002               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2003               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_14),
2004               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_34),
2005               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2006               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2007               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_34),
2008               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_14));
2009       case 92 -> spaceGroup =
2010           new SpaceGroup(
2011               92,
2012               8,
2013               8,
2014               "P41212",
2015               "PG422",
2016               "P 41 21 2",
2017               TETRAGONAL, TETRAGONAL_LATTICE,
2018               L224,
2019               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2020               new double[] {1.0, 1.0, f18},
2021               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2022               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2023               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_14),
2024               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_34),
2025               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_14),
2026               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_34),
2027               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2028               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2029       case 93 -> spaceGroup =
2030           new SpaceGroup(
2031               93,
2032               8,
2033               8,
2034               "P4222",
2035               "PG422",
2036               "P 42 2 2",
2037               TETRAGONAL, TETRAGONAL_LATTICE,
2038               L224,
2039               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
2040               new double[] {f12, 1.0, f14},
2041               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2042               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2043               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2044               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2045               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2046               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2047               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2048               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2049       case 94 -> spaceGroup =
2050           new SpaceGroup(
2051               94,
2052               8,
2053               8,
2054               "P42212",
2055               "PG422",
2056               "P 42 21 2",
2057               TETRAGONAL, TETRAGONAL_LATTICE,
2058               L224,
2059               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2060               new double[] {f12, f12, f12},
2061               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2062               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2063               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2064               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2065               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2066               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2067               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2068               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
2069       case 95 -> spaceGroup =
2070           new SpaceGroup(
2071               95,
2072               8,
2073               8,
2074               "P4322",
2075               "PG422",
2076               "P 43 2 2",
2077               TETRAGONAL, TETRAGONAL_LATTICE,
2078               L224,
2079               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2080               new double[] {1.0, 1.0, f18},
2081               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2082               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2083               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_34),
2084               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_14),
2085               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2086               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2087               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_14),
2088               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_34));
2089       case 96 -> spaceGroup =
2090           new SpaceGroup(
2091               96,
2092               8,
2093               8,
2094               "P43212",
2095               "PG422",
2096               "P 43 21 2",
2097               TETRAGONAL, TETRAGONAL_LATTICE,
2098               L224,
2099               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2100               new double[] {1.0, 1.0, f18},
2101               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2102               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2103               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_34),
2104               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_14),
2105               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_34),
2106               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_14),
2107               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2108               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2109       case 97 -> spaceGroup =
2110           new SpaceGroup(
2111               97,
2112               16,
2113               8,
2114               "I422",
2115               "PG422",
2116               "I 4 2 2",
2117               TETRAGONAL, TETRAGONAL_LATTICE,
2118               L224,
2119               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2120               new double[] {f12, f12, f14},
2121               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2122               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2123               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2124               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2125               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2126               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2127               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2128               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2129               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2130               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2131               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2132               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2133               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2134               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2135               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2136               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2137       case 98 -> spaceGroup =
2138           new SpaceGroup(
2139               98,
2140               16,
2141               8,
2142               "I4122",
2143               "PG422",
2144               "I 41 2 2",
2145               TETRAGONAL, TETRAGONAL_LATTICE,
2146               L224,
2147               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
2148               new double[] {f12, 1.0, f18},
2149               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2150               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2151               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2152               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2153               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_34),
2154               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_14),
2155               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2156               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2157               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2158               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2159               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2160               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2161               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_14),
2162               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_34),
2163               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2164               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2165       case 99 -> spaceGroup =
2166           new SpaceGroup(
2167               99,
2168               8,
2169               8,
2170               "P4mm",
2171               "PG4mm",
2172               "P 4 m m",
2173               TETRAGONAL, TETRAGONAL_LATTICE,
2174               L224,
2175               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2176               new double[] {-1.0, -1.0, -1.0},
2177               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2178               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2179               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2180               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2181               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2182               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2183               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2184               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2185       case 100 -> spaceGroup =
2186           new SpaceGroup(
2187               100,
2188               8,
2189               8,
2190               "P4bm",
2191               "PG4mm",
2192               "P 4 b m",
2193               TETRAGONAL, TETRAGONAL_LATTICE,
2194               L224,
2195               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2196               new double[] {-1.0, -1.0, -1.0},
2197               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2198               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2199               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2200               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2201               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2202               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2203               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2204               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2205       default -> {
2206       }
2207     }
2208     return spaceGroup;
2209   }
2210 
2211   /**
2212    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
2213    * specification limit on method size is exceeded.
2214    *
2215    * @param num input parameter (between 101 and 150)
2216    * @return the selected SpaceGroup
2217    */
2218   static SpaceGroup getSpaceGroup3(int num) {
2219     SpaceGroup spaceGroup = null;
2220     switch (num) {
2221       case 101 -> spaceGroup =
2222           new SpaceGroup(
2223               101,
2224               8,
2225               8,
2226               "P42cm",
2227               "PG4mm",
2228               "P 42 c m",
2229               TETRAGONAL, TETRAGONAL_LATTICE,
2230               L224,
2231               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2232               new double[] {-1.0, -1.0, -1.0},
2233               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2234               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2235               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2236               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2237               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2238               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2239               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2240               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2241       case 102 -> spaceGroup =
2242           new SpaceGroup(
2243               102,
2244               8,
2245               8,
2246               "P42nm",
2247               "PG4mm",
2248               "P 42 n m",
2249               TETRAGONAL, TETRAGONAL_LATTICE,
2250               L224,
2251               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2252               new double[] {-1.0, -1.0, -1.0},
2253               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2254               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2255               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2256               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2257               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2258               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2259               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2260               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2261       case 103 -> spaceGroup =
2262           new SpaceGroup(
2263               103,
2264               8,
2265               8,
2266               "P4cc",
2267               "PG4mm",
2268               "P 4 c c",
2269               TETRAGONAL, TETRAGONAL_LATTICE,
2270               L224,
2271               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2272               new double[] {-1.0, -1.0, -1.0},
2273               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2274               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2275               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2276               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2277               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2278               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2279               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2280               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2281       case 104 -> spaceGroup =
2282           new SpaceGroup(
2283               104,
2284               8,
2285               8,
2286               "P4nc",
2287               "PG4mm",
2288               "P 4 n c",
2289               TETRAGONAL, TETRAGONAL_LATTICE,
2290               L224,
2291               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2292               new double[] {-1.0, -1.0, -1.0},
2293               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2294               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2295               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2296               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2297               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2298               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2299               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2300               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2301       case 105 -> spaceGroup =
2302           new SpaceGroup(
2303               105,
2304               8,
2305               8,
2306               "P42mc",
2307               "PG4mm",
2308               "P 42 m c",
2309               TETRAGONAL, TETRAGONAL_LATTICE,
2310               L224,
2311               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2312               new double[] {-1.0, -1.0, -1.0},
2313               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2314               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2315               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2316               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2317               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2318               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2319               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2320               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2321       case 106 -> spaceGroup =
2322           new SpaceGroup(
2323               106,
2324               8,
2325               8,
2326               "P42bc",
2327               "PG4mm",
2328               "P 42 b c",
2329               TETRAGONAL, TETRAGONAL_LATTICE,
2330               L224,
2331               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2332               new double[] {-1.0, -1.0, -1.0},
2333               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2334               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2335               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2336               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2337               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2338               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2339               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2340               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2341       case 107 -> spaceGroup =
2342           new SpaceGroup(
2343               107,
2344               16,
2345               8,
2346               "I4mm",
2347               "PG4mm",
2348               "I 4 m m",
2349               TETRAGONAL, TETRAGONAL_LATTICE,
2350               L224,
2351               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2352               new double[] {-1.0, -1.0, -1.0},
2353               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2354               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2355               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2356               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2357               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2358               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2359               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2360               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
2361               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2362               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2363               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2364               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2365               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2366               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2367               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2368               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2369       case 108 -> spaceGroup =
2370           new SpaceGroup(
2371               108,
2372               16,
2373               8,
2374               "I4cm",
2375               "PG4mm",
2376               "I 4 c m",
2377               TETRAGONAL, TETRAGONAL_LATTICE,
2378               L224,
2379               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2380               new double[] {-1.0, -1.0, -1.0},
2381               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2382               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2383               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2384               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2385               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2386               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2387               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2388               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
2389               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2390               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2391               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2392               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2393               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2394               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2395               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2396               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2397       case 109 -> spaceGroup =
2398           new SpaceGroup(
2399               109,
2400               16,
2401               8,
2402               "I41md",
2403               "PG4mm",
2404               "I 41 m d",
2405               TETRAGONAL, TETRAGONAL_LATTICE,
2406               L224,
2407               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2408               new double[] {-1.0, -1.0, -1.0},
2409               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2410               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2411               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2412               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2413               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2414               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2415               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_14),
2416               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_34),
2417               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2418               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2419               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2420               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2421               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2422               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2423               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_34),
2424               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_14));
2425       case 110 -> spaceGroup =
2426           new SpaceGroup(
2427               110,
2428               16,
2429               8,
2430               "I41cd",
2431               "PG4mm",
2432               "I 41 c d",
2433               TETRAGONAL, TETRAGONAL_LATTICE,
2434               L224,
2435               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2436               new double[] {-1.0, -1.0, -1.0},
2437               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2438               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2439               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2440               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2441               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2442               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2443               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_34),
2444               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_14),
2445               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2446               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2447               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2448               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2449               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2450               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2451               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_14),
2452               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_34));
2453       case 111 -> spaceGroup =
2454           new SpaceGroup(
2455               111,
2456               8,
2457               8,
2458               "P-42m",
2459               "PG4bar2m",
2460               "P -4 2 m",
2461               TETRAGONAL, TETRAGONAL_LATTICE,
2462               L224,
2463               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2464               new double[] {-1.0, -1.0, -1.0},
2465               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2466               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2467               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2468               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2469               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2470               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2471               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2472               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2473       case 112 -> spaceGroup =
2474           new SpaceGroup(
2475               112,
2476               8,
2477               8,
2478               "P-42c",
2479               "PG4bar2m",
2480               "P -4 2 c",
2481               TETRAGONAL, TETRAGONAL_LATTICE,
2482               L224,
2483               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2484               new double[] {-1.0, -1.0, -1.0},
2485               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2486               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2487               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2488               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2489               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
2490               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2491               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2492               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2493       case 113 -> spaceGroup =
2494           new SpaceGroup(
2495               113,
2496               8,
2497               8,
2498               "P-421m",
2499               "PG4bar2m",
2500               "P -4 21 m",
2501               TETRAGONAL, TETRAGONAL_LATTICE,
2502               L224,
2503               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2504               new double[] {-1.0, -1.0, -1.0},
2505               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2506               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2507               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2508               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2509               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
2510               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
2511               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2512               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2513       case 114 -> spaceGroup =
2514           new SpaceGroup(
2515               114,
2516               8,
2517               8,
2518               "P-421c",
2519               "PG4bar2m",
2520               "P -4 21 c",
2521               TETRAGONAL, TETRAGONAL_LATTICE,
2522               L224,
2523               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2524               new double[] {-1.0, -1.0, -1.0},
2525               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2526               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2527               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2528               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2529               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2530               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2531               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2532               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2533       case 115 -> spaceGroup =
2534           new SpaceGroup(
2535               115,
2536               8,
2537               8,
2538               "P-4m2",
2539               "PG4barm2",
2540               "P -4 m 2",
2541               TETRAGONAL, TETRAGONAL_LATTICE,
2542               L224,
2543               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2544               new double[] {-1.0, -1.0, -1.0},
2545               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2546               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2547               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2548               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2549               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2550               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2551               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2552               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
2553       case 116 -> spaceGroup =
2554           new SpaceGroup(
2555               116,
2556               8,
2557               8,
2558               "P-4c2",
2559               "PG4barm2",
2560               "P -4 c 2",
2561               TETRAGONAL, TETRAGONAL_LATTICE,
2562               L224,
2563               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2564               new double[] {-1.0, -1.0, -1.0},
2565               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2566               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2567               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2568               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2569               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2570               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2571               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2572               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2573       case 117 -> spaceGroup =
2574           new SpaceGroup(
2575               117,
2576               8,
2577               8,
2578               "P-4b2",
2579               "PG4barm2",
2580               "P -4 b 2",
2581               TETRAGONAL, TETRAGONAL_LATTICE,
2582               L224,
2583               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2584               new double[] {-1.0, -1.0, -1.0},
2585               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2586               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2587               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2588               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2589               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2590               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2591               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
2592               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0));
2593       case 118 -> spaceGroup =
2594           new SpaceGroup(
2595               118,
2596               8,
2597               8,
2598               "P-4n2",
2599               "PG4barm2",
2600               "P -4 n 2",
2601               TETRAGONAL, TETRAGONAL_LATTICE,
2602               L224,
2603               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2604               new double[] {-1.0, -1.0, -1.0},
2605               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2606               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2607               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2608               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2609               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2610               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2611               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2612               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2613       case 119 -> spaceGroup =
2614           new SpaceGroup(
2615               119,
2616               16,
2617               8,
2618               "I-4m2",
2619               "PG4barm2",
2620               "I -4 m 2",
2621               TETRAGONAL, TETRAGONAL_LATTICE,
2622               L224,
2623               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2624               new double[] {-1.0, -1.0, -1.0},
2625               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2626               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2627               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2628               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2629               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2630               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2631               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2632               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2633               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2634               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2635               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2636               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2637               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2638               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2639               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2640               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2641       case 120 -> spaceGroup =
2642           new SpaceGroup(
2643               120,
2644               16,
2645               8,
2646               "I-4c2",
2647               "PG4barm2",
2648               "I -4 c 2",
2649               TETRAGONAL, TETRAGONAL_LATTICE,
2650               L224,
2651               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2652               new double[] {-1.0, -1.0, -1.0},
2653               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2654               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2655               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2656               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2657               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2658               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2659               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2660               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
2661               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2662               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2663               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2664               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2665               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2666               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2667               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
2668               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0));
2669       case 121 -> spaceGroup =
2670           new SpaceGroup(
2671               121,
2672               16,
2673               8,
2674               "I-42m",
2675               "PG4bar2m",
2676               "I -4 2 m",
2677               TETRAGONAL, TETRAGONAL_LATTICE,
2678               L224,
2679               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2680               new double[] {-1.0, -1.0, -1.0},
2681               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2682               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2683               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2684               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2685               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2686               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2687               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2688               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
2689               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2690               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2691               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2692               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2693               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2694               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2695               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2696               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2697       case 122 -> spaceGroup =
2698           new SpaceGroup(
2699               122,
2700               16,
2701               8,
2702               "I-42d",
2703               "PG4bar2m",
2704               "I -4 2 d",
2705               TETRAGONAL, TETRAGONAL_LATTICE,
2706               L224,
2707               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2708               new double[] {-1.0, -1.0, -1.0},
2709               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2710               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2711               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2712               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2713               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_34),
2714               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_34),
2715               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_34),
2716               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_34),
2717               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2718               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2719               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2720               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2721               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_14),
2722               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_14),
2723               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_14),
2724               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_14));
2725       case 123 -> spaceGroup =
2726           new SpaceGroup(
2727               123,
2728               16,
2729               16,
2730               "P4/mmm",
2731               "PG4/mmm",
2732               "P 4/m 2/m 2/m",
2733               TETRAGONAL, TETRAGONAL_LATTICE,
2734               L224,
2735               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2736               new double[] {f12, f12, f12},
2737               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2738               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2739               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2740               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2741               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2742               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2743               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2744               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2745               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2746               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2747               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2748               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2749               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2750               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2751               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2752               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2753       case 124 -> spaceGroup =
2754           new SpaceGroup(
2755               124,
2756               16,
2757               16,
2758               "P4/mcc",
2759               "PG4/mmm",
2760               "P 4/m 2/c 2/c",
2761               TETRAGONAL, TETRAGONAL_LATTICE,
2762               L224,
2763               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2764               new double[] {-1.0, -1.0, -1.0},
2765               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2766               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2767               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2768               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2769               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
2770               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2771               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2772               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
2773               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2774               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2775               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2776               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2777               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2778               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2779               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2780               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2781       case 125 -> spaceGroup =
2782           new SpaceGroup(
2783               125,
2784               16,
2785               16,
2786               "P4/nbm",
2787               "PG4/mmm",
2788               "P 4/n 2/b 2/m",
2789               TETRAGONAL, TETRAGONAL_LATTICE,
2790               L224,
2791               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2792               new double[] {-1.0, -1.0, -1.0},
2793               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2794               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2795               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2796               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2797               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2798               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2799               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2800               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2801               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
2802               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
2803               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_0),
2804               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_0),
2805               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2806               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2807               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2808               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2809       case 126 -> spaceGroup =
2810           new SpaceGroup(
2811               126,
2812               16,
2813               16,
2814               "P4/nnc",
2815               "PG4/mmm",
2816               "P 4/n 2/n 2/c",
2817               TETRAGONAL, TETRAGONAL_LATTICE,
2818               L224,
2819               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2820               new double[] {-1.0, -1.0, -1.0},
2821               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2822               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2823               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2824               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2825               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2826               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2827               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2828               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2829               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
2830               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
2831               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2832               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2833               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2834               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2835               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2836               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2837       case 127 -> spaceGroup =
2838           new SpaceGroup(
2839               127,
2840               16,
2841               16,
2842               "P4/mbm",
2843               "PG4/mmm",
2844               "P 4/m 21/b 2/m",
2845               TETRAGONAL, TETRAGONAL_LATTICE,
2846               L224,
2847               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2848               new double[] {-1.0, -1.0, -1.0},
2849               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2850               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2851               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2852               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2853               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
2854               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
2855               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
2856               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
2857               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2858               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2859               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2860               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2861               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2862               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2863               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2864               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2865       case 128 -> spaceGroup =
2866           new SpaceGroup(
2867               128,
2868               16,
2869               16,
2870               "P4/mnc",
2871               "PG4/mmm",
2872               "P 4/m 21/n 2/c",
2873               TETRAGONAL, TETRAGONAL_LATTICE,
2874               L224,
2875               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2876               new double[] {-1.0, -1.0, -1.0},
2877               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2878               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2879               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2880               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2881               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2882               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2883               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2884               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
2885               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2886               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2887               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2888               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2889               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2890               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2891               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2892               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2893       case 129 -> spaceGroup =
2894           new SpaceGroup(
2895               129,
2896               16,
2897               16,
2898               "P4/nmm",
2899               "PG4/mmm",
2900               "P 4/n 21/m 2/m",
2901               TETRAGONAL, TETRAGONAL_LATTICE,
2902               L224,
2903               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2904               new double[] {-1.0, -1.0, -1.0},
2905               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2906               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2907               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
2908               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
2909               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
2910               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
2911               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2912               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2913               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
2914               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
2915               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2916               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2917               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2918               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2919               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2920               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2921       case 130 -> spaceGroup =
2922           new SpaceGroup(
2923               130,
2924               16,
2925               16,
2926               "P4/ncc",
2927               "PG4/mmm",
2928               "P 4/n 2/c 2/c",
2929               TETRAGONAL, TETRAGONAL_LATTICE,
2930               L224,
2931               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2932               new double[] {-1.0, -1.0, -1.0},
2933               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2934               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2935               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
2936               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
2937               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2938               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2939               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2940               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
2941               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
2942               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
2943               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2944               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2945               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2946               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2947               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2948               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2949       case 131 -> spaceGroup =
2950           new SpaceGroup(
2951               131,
2952               16,
2953               16,
2954               "P42/mmc",
2955               "PG4/mmm",
2956               "P 42/m 2/m 2/c",
2957               TETRAGONAL, TETRAGONAL_LATTICE,
2958               L224,
2959               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2960               new double[] {-1.0, -1.0, -1.0},
2961               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2962               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2963               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2964               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2965               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2966               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2967               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2968               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
2969               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2970               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2971               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
2972               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
2973               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2974               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2975               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2976               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2977       case 132 -> spaceGroup =
2978           new SpaceGroup(
2979               132,
2980               16,
2981               16,
2982               "P42/mcm",
2983               "PG4/mmm",
2984               "P 42/m 2/c 2/m",
2985               TETRAGONAL, TETRAGONAL_LATTICE,
2986               L224,
2987               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2988               new double[] {-1.0, -1.0, -1.0},
2989               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2990               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2991               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2992               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2993               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
2994               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2995               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2996               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2997               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2998               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2999               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
3000               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
3001               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3002               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3003               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3004               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
3005       case 133 -> spaceGroup =
3006           new SpaceGroup(
3007               133,
3008               16,
3009               16,
3010               "P42/nbc",
3011               "PG4/mmm",
3012               "P 42/n 2/b 2/c",
3013               TETRAGONAL, TETRAGONAL_LATTICE,
3014               L224,
3015               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3016               new double[] {-1.0, -1.0, -1.0},
3017               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3018               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3019               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3020               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3021               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
3022               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
3023               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3024               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3025               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3026               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3027               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3028               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3029               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3030               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3031               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3032               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
3033       case 134 -> spaceGroup =
3034           new SpaceGroup(
3035               134,
3036               16,
3037               16,
3038               "P42/nnm",
3039               "PG4/mmm",
3040               "P 42/n 2/n 2/m",
3041               TETRAGONAL, TETRAGONAL_LATTICE,
3042               L224,
3043               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3044               new double[] {-1.0, -1.0, -1.0},
3045               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3046               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3047               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3048               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3049               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3050               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3051               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3052               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3053               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3054               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3055               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3056               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3057               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3058               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3059               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3060               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
3061       case 135 -> spaceGroup =
3062           new SpaceGroup(
3063               135,
3064               16,
3065               16,
3066               "P42/mbc",
3067               "PG4/mmm",
3068               "P 42/m 21/b 2/c",
3069               TETRAGONAL, TETRAGONAL_LATTICE,
3070               L224,
3071               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3072               new double[] {-1.0, -1.0, -1.0},
3073               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3074               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3075               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
3076               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
3077               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3078               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3079               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3080               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3081               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3082               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3083               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
3084               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
3085               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3086               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3087               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3088               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3089       case 136 -> spaceGroup =
3090           new SpaceGroup(
3091               136,
3092               16,
3093               16,
3094               "P42/mnm",
3095               "PG4/mmm",
3096               "P 42/m 21/n 2/m",
3097               TETRAGONAL, TETRAGONAL_LATTICE,
3098               L224,
3099               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3100               new double[] {-1.0, -1.0, -1.0},
3101               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3102               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3103               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3104               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3105               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3106               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3107               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3108               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3109               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3110               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3111               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3112               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3113               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3114               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3115               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3116               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
3117       case 137 -> spaceGroup =
3118           new SpaceGroup(
3119               137,
3120               16,
3121               16,
3122               "P42/nmc",
3123               "PG4/mmm",
3124               "P 42/n 21/m 2/c",
3125               TETRAGONAL, TETRAGONAL_LATTICE,
3126               L224,
3127               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3128               new double[] {-1.0, -1.0, -1.0},
3129               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3130               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3131               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3132               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3133               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3134               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3135               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3136               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3137               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3138               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3139               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3140               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3141               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3142               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3143               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3144               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3145       case 138 -> spaceGroup =
3146           new SpaceGroup(
3147               138,
3148               16,
3149               16,
3150               "P42/ncm",
3151               "PG4/mmm",
3152               "P 42/n 21/c 2/m",
3153               TETRAGONAL, TETRAGONAL_LATTICE,
3154               L224,
3155               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3156               new double[] {-1.0, -1.0, -1.0},
3157               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3158               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3159               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3160               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3161               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3162               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3163               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3164               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3165               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3166               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3167               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3168               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3169               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3170               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3171               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3172               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3173       case 139 -> spaceGroup =
3174           new SpaceGroup(
3175               139,
3176               32,
3177               16,
3178               "I4/mmm",
3179               "PG4/mmm",
3180               "I 4/m 2/m 2/m",
3181               TETRAGONAL, TETRAGONAL_LATTICE,
3182               L224,
3183               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3184               new double[] {f12, f12, f14},
3185               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3186               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3187               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3188               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3189               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3190               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3191               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3192               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3193               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3194               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3195               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3196               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3197               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3198               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3199               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3200               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
3201               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3202               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3203               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3204               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3205               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3206               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3207               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3208               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3209               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3210               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3211               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3212               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3213               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3214               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3215               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3216               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3217       case 140 -> spaceGroup =
3218           new SpaceGroup(
3219               140,
3220               32,
3221               16,
3222               "I4/mcm",
3223               "PG4/mmm",
3224               "I 4/m 2/c 2/m",
3225               TETRAGONAL, TETRAGONAL_LATTICE,
3226               L224,
3227               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3228               new double[] {-1.0, -1.0, -1.0},
3229               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3230               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3231               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3232               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3233               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
3234               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
3235               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3236               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3237               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3238               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3239               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3240               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3241               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3242               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3243               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3244               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
3245               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3246               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3247               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3248               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3249               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3250               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3251               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3252               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3253               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3254               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3255               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3256               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3257               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3258               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3259               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3260               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3261       case 141 -> spaceGroup =
3262           new SpaceGroup(
3263               141,
3264               32,
3265               16,
3266               "I41/amd",
3267               "PG4/mmm",
3268               "I 41/a 2/m 2/d",
3269               TETRAGONAL, TETRAGONAL_LATTICE,
3270               L224,
3271               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3272               new double[] {-1.0, -1.0, -1.0},
3273               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3274               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3275               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
3276               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
3277               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_34),
3278               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_14),
3279               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3280               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3281               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_14),
3282               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_34),
3283               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3284               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3285               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3286               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3287               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_34),
3288               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_14),
3289               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3290               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3291               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
3292               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
3293               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_14),
3294               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_34),
3295               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3296               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3297               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_34),
3298               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_14),
3299               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3300               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3301               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3302               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3303               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_14),
3304               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_34));
3305       case 142 -> spaceGroup =
3306           new SpaceGroup(
3307               142,
3308               32,
3309               16,
3310               "I41/acd",
3311               "PG4/mmm",
3312               "I 41/a 2/c 2/d",
3313               TETRAGONAL, TETRAGONAL_LATTICE,
3314               L224,
3315               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3316               new double[] {-1.0, -1.0, -1.0},
3317               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3318               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3319               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
3320               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
3321               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_14),
3322               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_34),
3323               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3324               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3325               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_14),
3326               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_34),
3327               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3328               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3329               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3330               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3331               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_14),
3332               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_34),
3333               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3334               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3335               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
3336               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
3337               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_34),
3338               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_14),
3339               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3340               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3341               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_34),
3342               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_14),
3343               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3344               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3345               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3346               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3347               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_34),
3348               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_14));
3349       case 143 -> spaceGroup =
3350           new SpaceGroup(
3351               143,
3352               3,
3353               3,
3354               "P3",
3355               "PG3",
3356               "P 3",
3357               TRIGONAL, HEXAGONAL_LATTICE,
3358               L113,
3359               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
3360               new double[] {f23, f23, 1.0},
3361               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3362               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3363               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0));
3364       case 144 -> spaceGroup =
3365           new SpaceGroup(
3366               144,
3367               3,
3368               3,
3369               "P31",
3370               "PG3",
3371               "P 31",
3372               TRIGONAL, HEXAGONAL_LATTICE,
3373               L113,
3374               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3375               new double[] {1.0, 1.0, f13},
3376               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3377               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3378               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23));
3379       case 145 -> spaceGroup =
3380           new SpaceGroup(
3381               145,
3382               3,
3383               3,
3384               "P32",
3385               "PG3",
3386               "P 32",
3387               TRIGONAL, HEXAGONAL_LATTICE,
3388               L113,
3389               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3390               new double[] {1.0, 1.0, f13},
3391               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3392               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3393               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13));
3394       case 146 -> spaceGroup =
3395           new SpaceGroup(
3396               146,
3397               9,
3398               3,
3399               "H3",
3400               "PG3",
3401               "H 3",
3402               TRIGONAL, HEXAGONAL_LATTICE,
3403               L113,
3404               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
3405               new double[] {f23, f23, f13},
3406               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3407               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3408               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3409               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3410               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3411               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3412               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3413               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3414               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23));
3415       case 147 -> spaceGroup =
3416           new SpaceGroup(
3417               147,
3418               6,
3419               6,
3420               "P-3",
3421               "PG3bar",
3422               "P -3",
3423               TRIGONAL, HEXAGONAL_LATTICE,
3424               L113,
3425               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3426               new double[] {f23, f23, f12},
3427               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3428               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3429               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3430               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3431               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3432               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0));
3433       case 148 -> spaceGroup =
3434           new SpaceGroup(
3435               148,
3436               18,
3437               6,
3438               "H-3",
3439               "PG3bar",
3440               "H -3",
3441               TRIGONAL, HEXAGONAL_LATTICE,
3442               L113,
3443               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3444               new double[] {f23, f23, f16},
3445               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3446               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3447               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3448               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3449               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3450               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3451               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3452               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3453               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3454               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_23_13_13),
3455               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_23_13_13),
3456               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_23_13_13),
3457               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3458               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3459               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3460               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_13_23_23),
3461               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_13_23_23),
3462               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_13_23_23));
3463       case 149 -> spaceGroup =
3464           new SpaceGroup(
3465               149,
3466               6,
3467               6,
3468               "P312",
3469               "PG312",
3470               "P 3 1 2",
3471               TRIGONAL, HEXAGONAL_LATTICE,
3472               L223,
3473               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3474               new double[] {f23, f23, f12},
3475               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3476               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3477               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3478               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3479               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
3480               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
3481       case 150 -> spaceGroup =
3482           new SpaceGroup(
3483               150,
3484               6,
3485               6,
3486               "P321",
3487               "PG321",
3488               "P 3 2 1",
3489               TRIGONAL, HEXAGONAL_LATTICE,
3490               L32U,
3491               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3492               new double[] {f23, f23, f12},
3493               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3494               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3495               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3496               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3497               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
3498               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0));
3499       default -> {
3500       }
3501     }
3502     return spaceGroup;
3503   }
3504 
3505   /**
3506    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
3507    * specification limit on method size is exceeded.
3508    *
3509    * @param num input parameter (between 151 and 200)
3510    * @return the selected SpaceGroup
3511    */
3512   static SpaceGroup getSpaceGroup4(int num) {
3513     SpaceGroup spaceGroup = null;
3514     switch (num) {
3515       case 151 -> spaceGroup =
3516           new SpaceGroup(
3517               151,
3518               6,
3519               6,
3520               "P3112",
3521               "PG312",
3522               "P 31 1 2",
3523               TRIGONAL, HEXAGONAL_LATTICE,
3524               L223,
3525               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3526               new double[] {1.0, 1.0, f16},
3527               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3528               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3529               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
3530               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_23),
3531               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_13),
3532               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
3533       case 152 -> spaceGroup =
3534           new SpaceGroup(
3535               152,
3536               6,
3537               6,
3538               "P3121",
3539               "PG321",
3540               "P 31 2 1",
3541               TRIGONAL, HEXAGONAL_LATTICE,
3542               L32U,
3543               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3544               new double[] {1.0, 1.0, f16},
3545               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3546               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3547               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
3548               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3549               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_23),
3550               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_13));
3551       case 153 -> spaceGroup =
3552           new SpaceGroup(
3553               153,
3554               6,
3555               6,
3556               "P3212",
3557               "PG312",
3558               "P 32 1 2",
3559               TRIGONAL, HEXAGONAL_LATTICE,
3560               L223,
3561               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3562               new double[] {1.0, 1.0, f16},
3563               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3564               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3565               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
3566               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_13),
3567               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_23),
3568               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
3569       case 154 -> spaceGroup =
3570           new SpaceGroup(
3571               154,
3572               6,
3573               6,
3574               "P3221",
3575               "PG321",
3576               "P 32 2 1",
3577               TRIGONAL, HEXAGONAL_LATTICE,
3578               L32U,
3579               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3580               new double[] {1.0, 1.0, f16},
3581               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3582               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3583               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
3584               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3585               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_13),
3586               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_23));
3587       case 155 -> spaceGroup =
3588           new SpaceGroup(
3589               155,
3590               18,
3591               6,
3592               "H32",
3593               "PG321",
3594               "H 3 2",
3595               TRIGONAL, HEXAGONAL_LATTICE,
3596               L32U,
3597               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3598               new double[] {f23, f23, f16},
3599               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3600               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3601               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3602               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3603               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
3604               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
3605               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3606               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3607               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3608               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_23_13_13),
3609               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_23_13_13),
3610               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_23_13_13),
3611               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3612               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3613               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3614               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_13_23_23),
3615               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_13_23_23),
3616               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_13_23_23));
3617       case 156 -> spaceGroup =
3618           new SpaceGroup(
3619               156,
3620               6,
3621               6,
3622               "P3m1",
3623               "PG3m1",
3624               "P 3 m 1",
3625               TRIGONAL, HEXAGONAL_LATTICE,
3626               L32U,
3627               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3628               new double[] {-1.0, -1.0, -1.0},
3629               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3630               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3631               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3632               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3633               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
3634               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0));
3635       case 157 -> spaceGroup =
3636           new SpaceGroup(
3637               157,
3638               6,
3639               6,
3640               "P31m",
3641               "PG31m",
3642               "P 3 1 m",
3643               TRIGONAL, HEXAGONAL_LATTICE,
3644               L223,
3645               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3646               new double[] {-1.0, -1.0, -1.0},
3647               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3648               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3649               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3650               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
3651               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
3652               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
3653       case 158 -> spaceGroup =
3654           new SpaceGroup(
3655               158,
3656               6,
3657               6,
3658               "P3c1",
3659               "PG3m1",
3660               "P 3 c 1",
3661               TRIGONAL, HEXAGONAL_LATTICE,
3662               L32U,
3663               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3664               new double[] {-1.0, -1.0, -1.0},
3665               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3666               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3667               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3668               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3669               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
3670               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12));
3671       case 159 -> spaceGroup =
3672           new SpaceGroup(
3673               159,
3674               6,
3675               6,
3676               "P31c",
3677               "PG31m",
3678               "P 3 1 c",
3679               TRIGONAL, HEXAGONAL_LATTICE,
3680               L223,
3681               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3682               new double[] {-1.0, -1.0, -1.0},
3683               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3684               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3685               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3686               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
3687               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
3688               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
3689       case 160 -> spaceGroup =
3690           new SpaceGroup(
3691               160,
3692               18,
3693               6,
3694               "H3m",
3695               "PG3m",
3696               "H 3 m",
3697               TRIGONAL, HEXAGONAL_LATTICE,
3698               L32U,
3699               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3700               new double[] {-1.0, -1.0, -1.0},
3701               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3702               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3703               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3704               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3705               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
3706               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
3707               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3708               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3709               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3710               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_13),
3711               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_13),
3712               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_13),
3713               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3714               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3715               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3716               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_23),
3717               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_23),
3718               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_23));
3719       case 161 -> spaceGroup =
3720           new SpaceGroup(
3721               161,
3722               18,
3723               6,
3724               "H3c",
3725               "PG3m",
3726               "H 3 c",
3727               TRIGONAL, HEXAGONAL_LATTICE,
3728               L32U,
3729               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3730               new double[] {-1.0, -1.0, -1.0},
3731               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3732               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3733               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3734               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3735               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
3736               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
3737               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3738               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3739               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3740               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_56),
3741               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_56),
3742               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_56),
3743               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3744               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3745               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3746               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_16),
3747               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_16),
3748               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_16));
3749       case 162 -> spaceGroup =
3750           new SpaceGroup(
3751               162,
3752               12,
3753               12,
3754               "P-31m",
3755               "PG3bar1m",
3756               "P -3 1 2/m",
3757               TRIGONAL, HEXAGONAL_LATTICE,
3758               L223,
3759               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3760               new double[] {f23, f12, f12},
3761               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3762               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3763               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3764               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3765               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
3766               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0),
3767               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3768               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3769               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3770               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
3771               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
3772               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
3773       case 163 -> spaceGroup =
3774           new SpaceGroup(
3775               163,
3776               12,
3777               12,
3778               "P-31c",
3779               "PG3bar1m",
3780               "P -3 1 2/c",
3781               TRIGONAL, HEXAGONAL_LATTICE,
3782               L223,
3783               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3784               new double[] {-1.0, -1.0, -1.0},
3785               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3786               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3787               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3788               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3789               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
3790               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12),
3791               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3792               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3793               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3794               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
3795               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
3796               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
3797       case 164 -> spaceGroup =
3798           new SpaceGroup(
3799               164,
3800               12,
3801               12,
3802               "P-3m1",
3803               "PG3barm1",
3804               "P -3 2/m 1",
3805               TRIGONAL, HEXAGONAL_LATTICE,
3806               L32U,
3807               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3808               new double[] {f23, f13, 1.0},
3809               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3810               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3811               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3812               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3813               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
3814               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
3815               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3816               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3817               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3818               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3819               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
3820               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0));
3821       case 165 -> spaceGroup =
3822           new SpaceGroup(
3823               165,
3824               12,
3825               12,
3826               "P-3c1",
3827               "PG3barm1",
3828               "P -3 2/c 1",
3829               TRIGONAL, HEXAGONAL_LATTICE,
3830               L32U,
3831               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3832               new double[] {-1.0, -1.0, -1.0},
3833               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3834               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3835               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3836               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3837               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
3838               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
3839               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3840               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3841               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3842               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3843               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
3844               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12));
3845       case 166 -> spaceGroup =
3846           new SpaceGroup(
3847               166,
3848               36,
3849               12,
3850               "H-3m",
3851               "PG3barm",
3852               "H -3 2/m",
3853               TRIGONAL, HEXAGONAL_LATTICE,
3854               L32U,
3855               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3856               new double[] {f23, f23, f16},
3857               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3858               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3859               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3860               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3861               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
3862               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
3863               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3864               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3865               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3866               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3867               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
3868               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
3869               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3870               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3871               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3872               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_23_13_13),
3873               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_23_13_13),
3874               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_23_13_13),
3875               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_23_13_13),
3876               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_23_13_13),
3877               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_23_13_13),
3878               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_13),
3879               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_13),
3880               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_13),
3881               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3882               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3883               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3884               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_13_23_23),
3885               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_13_23_23),
3886               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_13_23_23),
3887               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_13_23_23),
3888               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_13_23_23),
3889               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_13_23_23),
3890               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_23),
3891               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_23),
3892               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_23));
3893       case 167 -> spaceGroup =
3894           new SpaceGroup(
3895               167,
3896               36,
3897               12,
3898               "H-3c",
3899               "PG3barm",
3900               "H -3 2/c",
3901               TRIGONAL, HEXAGONAL_LATTICE,
3902               L32U,
3903               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3904               new double[] {-1.0, -1.0, -1.0},
3905               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3906               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3907               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3908               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3909               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
3910               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
3911               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3912               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3913               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3914               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3915               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
3916               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
3917               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3918               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3919               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3920               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_23_13_56),
3921               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_23_13_56),
3922               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_23_13_56),
3923               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_23_13_13),
3924               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_23_13_13),
3925               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_23_13_13),
3926               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_56),
3927               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_56),
3928               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_56),
3929               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3930               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3931               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3932               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_13_23_16),
3933               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_13_23_16),
3934               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_13_23_16),
3935               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_13_23_23),
3936               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_13_23_23),
3937               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_13_23_23),
3938               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_16),
3939               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_16),
3940               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_16));
3941       case 168 -> spaceGroup =
3942           new SpaceGroup(
3943               168,
3944               6,
3945               6,
3946               "P6",
3947               "PG6",
3948               "P 6",
3949               HEXAGONAL, HEXAGONAL_LATTICE,
3950               L114,
3951               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
3952               new double[] {f23, f12, 1.0},
3953               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3954               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3955               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3956               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3957               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
3958               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0));
3959       case 169 -> spaceGroup =
3960           new SpaceGroup(
3961               169,
3962               6,
3963               6,
3964               "P61",
3965               "PG6",
3966               "P 61",
3967               HEXAGONAL, HEXAGONAL_LATTICE,
3968               L114,
3969               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3970               new double[] {1.0, 1.0, f16},
3971               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3972               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3973               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
3974               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
3975               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_56),
3976               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_16));
3977       case 170 -> spaceGroup =
3978           new SpaceGroup(
3979               170,
3980               6,
3981               6,
3982               "P65",
3983               "PG6",
3984               "P 65",
3985               HEXAGONAL, HEXAGONAL_LATTICE,
3986               L114,
3987               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3988               new double[] {1.0, 1.0, f16},
3989               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3990               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3991               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
3992               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
3993               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_16),
3994               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_56));
3995       case 171 -> spaceGroup =
3996           new SpaceGroup(
3997               171,
3998               6,
3999               6,
4000               "P62",
4001               "PG6",
4002               "P 62",
4003               HEXAGONAL, HEXAGONAL_LATTICE,
4004               L114,
4005               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4006               new double[] {1.0, 1.0, f13},
4007               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4008               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4009               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4010               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4011               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_23),
4012               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_13));
4013       case 172 -> spaceGroup =
4014           new SpaceGroup(
4015               172,
4016               6,
4017               6,
4018               "P64",
4019               "PG6",
4020               "P 64",
4021               HEXAGONAL, HEXAGONAL_LATTICE,
4022               L114,
4023               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4024               new double[] {1.0, 1.0, f13},
4025               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4026               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
4027               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4028               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4029               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_13),
4030               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_23));
4031       case 173 -> spaceGroup =
4032           new SpaceGroup(
4033               173,
4034               6,
4035               6,
4036               "P63",
4037               "PG6",
4038               "P 63",
4039               HEXAGONAL, HEXAGONAL_LATTICE,
4040               L114,
4041               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
4042               new double[] {f23, f23, f12},
4043               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4044               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4045               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4046               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4047               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4048               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12));
4049       case 174 -> spaceGroup =
4050           new SpaceGroup(
4051               174,
4052               6,
4053               6,
4054               "P-6",
4055               "PG6bar",
4056               "P -6",
4057               HEXAGONAL, HEXAGONAL_LATTICE,
4058               L114,
4059               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4060               new double[] {-1.0, -1.0, -1.0},
4061               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4062               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4063               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4064               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4065               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4066               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0));
4067       case 175 -> spaceGroup =
4068           new SpaceGroup(
4069               175,
4070               12,
4071               12,
4072               "P6/m",
4073               "PG6/m",
4074               "P 6/m",
4075               HEXAGONAL, HEXAGONAL_LATTICE,
4076               L114,
4077               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4078               new double[] {f23, f23, f12},
4079               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4080               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4081               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4082               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4083               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4084               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4085               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4086               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4087               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4088               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4089               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4090               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0));
4091       case 176 -> spaceGroup =
4092           new SpaceGroup(
4093               176,
4094               12,
4095               12,
4096               "P63/m",
4097               "PG6/m",
4098               "P 63/m",
4099               HEXAGONAL, HEXAGONAL_LATTICE,
4100               L114,
4101               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4102               new double[] {-1.0, -1.0, -1.0},
4103               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4104               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4105               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4106               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4107               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4108               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4109               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4110               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4111               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4112               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4113               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4114               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12));
4115       case 177 -> spaceGroup =
4116           new SpaceGroup(
4117               177,
4118               12,
4119               12,
4120               "P622",
4121               "PG622",
4122               "P 6 2 2",
4123               HEXAGONAL, HEXAGONAL_LATTICE,
4124               L224,
4125               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4126               new double[] {f23, f12, f12},
4127               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4128               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4129               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4130               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4131               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4132               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4133               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4134               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4135               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4136               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4137               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4138               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
4139       case 178 -> spaceGroup =
4140           new SpaceGroup(
4141               178,
4142               12,
4143               12,
4144               "P6122",
4145               "PG622",
4146               "P 61 2 2",
4147               HEXAGONAL, HEXAGONAL_LATTICE,
4148               L224,
4149               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4150               new double[] {1.0, 1.0, f112},
4151               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4152               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
4153               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4154               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4155               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_56),
4156               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_16),
4157               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_13),
4158               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4159               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_23),
4160               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_56),
4161               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4162               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_16));
4163       case 179 -> spaceGroup =
4164           new SpaceGroup(
4165               179,
4166               12,
4167               12,
4168               "P6522",
4169               "PG622",
4170               "P 65 2 2",
4171               HEXAGONAL, HEXAGONAL_LATTICE,
4172               L224,
4173               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4174               new double[] {1.0, 1.0, f112},
4175               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4176               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4177               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4178               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4179               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_16),
4180               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_56),
4181               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_23),
4182               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4183               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_13),
4184               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_16),
4185               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4186               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_56));
4187       case 180 -> spaceGroup =
4188           new SpaceGroup(
4189               180,
4190               12,
4191               12,
4192               "P6222",
4193               "PG622",
4194               "P 62 2 2",
4195               HEXAGONAL, HEXAGONAL_LATTICE,
4196               L224,
4197               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4198               new double[] {1.0, 1.0, f16},
4199               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4200               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4201               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4202               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4203               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_23),
4204               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_13),
4205               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_23),
4206               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4207               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_13),
4208               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_23),
4209               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4210               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_13));
4211       case 181 -> spaceGroup =
4212           new SpaceGroup(
4213               181,
4214               12,
4215               12,
4216               "P6422",
4217               "PG622",
4218               "P 64 2 2",
4219               HEXAGONAL, HEXAGONAL_LATTICE,
4220               L224,
4221               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4222               new double[] {1.0, 1.0, f16},
4223               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4224               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
4225               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4226               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4227               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_13),
4228               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_23),
4229               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_13),
4230               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4231               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_23),
4232               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_13),
4233               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4234               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_23));
4235       case 182 -> spaceGroup =
4236           new SpaceGroup(
4237               182,
4238               12,
4239               12,
4240               "P6322",
4241               "PG622",
4242               "P 63 2 2",
4243               HEXAGONAL, HEXAGONAL_LATTICE,
4244               L224,
4245               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4246               new double[] {f23, f23, f14},
4247               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4248               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4249               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4250               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4251               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4252               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4253               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4254               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4255               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4256               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
4257               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4258               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12));
4259       case 183 -> spaceGroup =
4260           new SpaceGroup(
4261               183,
4262               12,
4263               12,
4264               "P6mm",
4265               "PG6mm",
4266               "P 6 m m",
4267               HEXAGONAL, HEXAGONAL_LATTICE,
4268               L224,
4269               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4270               new double[] {-1.0, -1.0, -1.0},
4271               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4272               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4273               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4274               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4275               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4276               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4277               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4278               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4279               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4280               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4281               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4282               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4283       case 184 -> spaceGroup =
4284           new SpaceGroup(
4285               184,
4286               12,
4287               12,
4288               "P6cc",
4289               "PG6mm",
4290               "P 6 c c",
4291               HEXAGONAL, HEXAGONAL_LATTICE,
4292               L224,
4293               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4294               new double[] {-1.0, -1.0, -1.0},
4295               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4296               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4297               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4298               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4299               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4300               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4301               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4302               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4303               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4304               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4305               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4306               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4307       case 185 -> spaceGroup =
4308           new SpaceGroup(
4309               185,
4310               12,
4311               12,
4312               "P63cm",
4313               "PG6mm",
4314               "P 63 c m",
4315               HEXAGONAL, HEXAGONAL_LATTICE,
4316               L224,
4317               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4318               new double[] {-1.0, -1.0, -1.0},
4319               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4320               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4321               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4322               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4323               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4324               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4325               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4326               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4327               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4328               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4329               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4330               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4331       case 186 -> spaceGroup =
4332           new SpaceGroup(
4333               186,
4334               12,
4335               12,
4336               "P63mc",
4337               "PG6mm",
4338               "P 63 m c",
4339               HEXAGONAL, HEXAGONAL_LATTICE,
4340               L224,
4341               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4342               new double[] {-1.0, -1.0, -1.0},
4343               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4344               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4345               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4346               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4347               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4348               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4349               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4350               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4351               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4352               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4353               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4354               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4355       case 187 -> spaceGroup =
4356           new SpaceGroup(
4357               187,
4358               12,
4359               12,
4360               "P-6m2",
4361               "PG6barm2",
4362               "P -6 m 2",
4363               HEXAGONAL, HEXAGONAL_LATTICE,
4364               L224,
4365               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4366               new double[] {-1.0, -1.0, -1.0},
4367               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4368               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4369               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4370               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4371               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4372               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4373               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4374               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4375               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4376               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4377               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4378               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
4379       case 188 -> spaceGroup =
4380           new SpaceGroup(
4381               188,
4382               12,
4383               12,
4384               "P-6c2",
4385               "PG6barm2",
4386               "P -6 c 2",
4387               HEXAGONAL, HEXAGONAL_LATTICE,
4388               L224,
4389               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4390               new double[] {-1.0, -1.0, -1.0},
4391               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4392               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4393               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4394               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4395               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4396               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4397               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4398               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4399               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4400               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4401               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4402               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
4403       case 189 -> spaceGroup =
4404           new SpaceGroup(
4405               189,
4406               12,
4407               12,
4408               "P-62m",
4409               "PG6bar2m",
4410               "P -6 2 m",
4411               HEXAGONAL, HEXAGONAL_LATTICE,
4412               L224,
4413               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4414               new double[] {-1.0, -1.0, -1.0},
4415               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4416               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4417               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4418               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4419               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4420               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4421               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4422               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4423               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4424               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4425               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4426               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4427       case 190 -> spaceGroup =
4428           new SpaceGroup(
4429               190,
4430               12,
4431               12,
4432               "P-62c",
4433               "PG6bar2m",
4434               "P -6 2 c",
4435               HEXAGONAL, HEXAGONAL_LATTICE,
4436               L224,
4437               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4438               new double[] {-1.0, -1.0, -1.0},
4439               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4440               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4441               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4442               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4443               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4444               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4445               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4446               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4447               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4448               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4449               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4450               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4451       case 191 -> spaceGroup =
4452           new SpaceGroup(
4453               191,
4454               24,
4455               24,
4456               "P6/mmm",
4457               "PG6/mmm",
4458               "P 6/m 2/m 2/m",
4459               HEXAGONAL, HEXAGONAL_LATTICE,
4460               L224,
4461               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4462               new double[] {f23, f13, f12},
4463               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4464               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4465               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4466               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4467               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4468               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4469               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4470               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4471               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4472               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4473               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4474               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0),
4475               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4476               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4477               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4478               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4479               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4480               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4481               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4482               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4483               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4484               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4485               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4486               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4487       case 192 -> spaceGroup =
4488           new SpaceGroup(
4489               192,
4490               24,
4491               24,
4492               "P6/mcc",
4493               "PG6/mmm",
4494               "P 6/m 2/c 2/c",
4495               HEXAGONAL, HEXAGONAL_LATTICE,
4496               L224,
4497               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4498               new double[] {-1.0, -1.0, -1.0},
4499               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4500               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4501               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4502               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4503               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4504               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4505               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
4506               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
4507               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
4508               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
4509               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4510               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12),
4511               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4512               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4513               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4514               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4515               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4516               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4517               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4518               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4519               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4520               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4521               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4522               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4523       case 193 -> spaceGroup =
4524           new SpaceGroup(
4525               193,
4526               24,
4527               24,
4528               "P63/mcm",
4529               "PG6/mmm",
4530               "P 63/m 2/c 2/m",
4531               HEXAGONAL, HEXAGONAL_LATTICE,
4532               L224,
4533               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4534               new double[] {-1.0, -1.0, -1.0},
4535               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4536               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4537               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4538               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4539               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4540               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4541               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
4542               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
4543               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
4544               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4545               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4546               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0),
4547               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4548               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4549               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4550               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4551               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4552               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4553               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4554               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4555               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4556               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4557               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4558               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4559       case 194 -> spaceGroup =
4560           new SpaceGroup(
4561               194,
4562               24,
4563               24,
4564               "P63/mmc",
4565               "PG6/mmm",
4566               "P 63/m 2/m 2/c",
4567               HEXAGONAL, HEXAGONAL_LATTICE,
4568               L224,
4569               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4570               new double[] {-1.0, -1.0, -1.0},
4571               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4572               new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4573               new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4574               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4575               new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4576               new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4577               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4578               new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4579               new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4580               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
4581               new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4582               new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12),
4583               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4584               new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4585               new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4586               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4587               new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4588               new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4589               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4590               new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4591               new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4592               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4593               new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4594               new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4595       case 195 -> spaceGroup =
4596           new SpaceGroup(
4597               195,
4598               12,
4599               12,
4600               "P23",
4601               "PG23",
4602               "P 2 3",
4603               CUBIC, CUBIC_LATTICE,
4604               LM3B,
4605               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4606               new double[] {1.0, 1.0, f12},
4607               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4608               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4609               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4610               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4611               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4612               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4613               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4614               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4615               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4616               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4617               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4618               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0));
4619       case 196 -> spaceGroup =
4620           new SpaceGroup(
4621               196,
4622               48,
4623               12,
4624               "F23",
4625               "PG23",
4626               "F 2 3",
4627               CUBIC, CUBIC_LATTICE,
4628               LM3B,
4629               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
4630               new double[] {f14, f14, 1.0},
4631               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4632               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4633               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4634               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4635               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4636               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4637               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4638               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4639               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4640               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4641               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4642               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
4643               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
4644               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
4645               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
4646               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
4647               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
4648               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
4649               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
4650               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
4651               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
4652               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
4653               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
4654               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
4655               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
4656               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
4657               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
4658               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
4659               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
4660               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
4661               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
4662               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
4663               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
4664               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
4665               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
4666               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
4667               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
4668               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
4669               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
4670               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
4671               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
4672               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
4673               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
4674               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
4675               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
4676               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
4677               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
4678               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0));
4679       case 197 -> spaceGroup =
4680           new SpaceGroup(
4681               197,
4682               24,
4683               12,
4684               "I23",
4685               "PG23",
4686               "I 2 3",
4687               CUBIC, CUBIC_LATTICE,
4688               LM3B,
4689               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4690               new double[] {1.0, 1.0, f12},
4691               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4692               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4693               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4694               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4695               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4696               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4697               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4698               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4699               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4700               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4701               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4702               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
4703               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
4704               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
4705               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
4706               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
4707               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
4708               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
4709               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
4710               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
4711               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
4712               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
4713               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
4714               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12));
4715       case 198 -> spaceGroup =
4716           new SpaceGroup(
4717               198,
4718               12,
4719               12,
4720               "P213",
4721               "PG23",
4722               "P 21 3",
4723               CUBIC, CUBIC_LATTICE,
4724               LM3B,
4725               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
4726               new double[] {f12, f12, 1.0},
4727               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4728               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
4729               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
4730               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
4731               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4732               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
4733               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
4734               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
4735               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4736               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
4737               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
4738               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12));
4739       case 199 -> spaceGroup =
4740           new SpaceGroup(
4741               199,
4742               24,
4743               12,
4744               "I213",
4745               "PG23",
4746               "I 21 3",
4747               CUBIC, CUBIC_LATTICE,
4748               LM3B,
4749               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4750               new double[] {f12, f12, f12},
4751               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4752               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
4753               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
4754               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
4755               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4756               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
4757               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
4758               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
4759               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4760               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
4761               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
4762               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
4763               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
4764               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
4765               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
4766               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
4767               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
4768               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
4769               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
4770               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
4771               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
4772               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
4773               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
4774               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0));
4775       case 200 -> spaceGroup =
4776           new SpaceGroup(
4777               200,
4778               24,
4779               24,
4780               "Pm-3",
4781               "PGm3bar",
4782               "P 2/m -3",
4783               CUBIC, CUBIC_LATTICE,
4784               LM3B,
4785               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4786               new double[] {f12, f12, f12},
4787               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4788               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4789               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4790               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4791               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4792               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4793               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4794               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4795               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4796               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4797               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4798               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
4799               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4800               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4801               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
4802               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
4803               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
4804               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
4805               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
4806               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
4807               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
4808               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
4809               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
4810               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0));
4811       default -> {
4812       }
4813     }
4814     return spaceGroup;
4815   }
4816 
4817   /**
4818    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
4819    * specification limit on method size is exceeded.
4820    *
4821    * @param num input parameter (between 201 and 215)
4822    * @return the selected SpaceGroup
4823    */
4824   static SpaceGroup getSpaceGroup5(int num) {
4825     SpaceGroup spaceGroup = null;
4826     switch (num) {
4827       case 201 -> spaceGroup =
4828           new SpaceGroup(
4829               201,
4830               24,
4831               24,
4832               "Pn-3",
4833               "PGm3bar",
4834               "P 2/n -3",
4835               CUBIC, CUBIC_LATTICE,
4836               LM3B,
4837               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4838               new double[] {-1.0, -1.0, -1.0},
4839               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4840               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4841               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4842               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4843               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4844               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4845               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4846               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4847               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4848               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4849               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4850               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
4851               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
4852               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
4853               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
4854               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
4855               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
4856               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
4857               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
4858               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
4859               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
4860               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
4861               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
4862               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12));
4863       case 202 -> spaceGroup =
4864           new SpaceGroup(
4865               202,
4866               96,
4867               24,
4868               "Fm-3",
4869               "PGm3bar",
4870               "F 2/m -3",
4871               CUBIC, CUBIC_LATTICE,
4872               LM3B,
4873               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4874               new double[] {f12, f12, f14},
4875               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4876               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4877               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4878               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4879               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4880               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4881               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4882               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4883               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4884               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4885               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4886               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
4887               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4888               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4889               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
4890               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
4891               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
4892               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
4893               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
4894               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
4895               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
4896               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
4897               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
4898               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
4899               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
4900               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
4901               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
4902               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
4903               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
4904               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
4905               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
4906               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
4907               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
4908               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
4909               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
4910               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
4911               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
4912               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
4913               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
4914               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
4915               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_12_12),
4916               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_12_12),
4917               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_12),
4918               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
4919               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_12_12),
4920               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
4921               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_12_12),
4922               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_12),
4923               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
4924               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
4925               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
4926               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
4927               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
4928               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
4929               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
4930               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
4931               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
4932               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
4933               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
4934               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
4935               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
4936               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
4937               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
4938               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
4939               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_0_12),
4940               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_0_12),
4941               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
4942               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_12),
4943               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_0_12),
4944               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_12),
4945               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_0_12),
4946               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
4947               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
4948               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
4949               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
4950               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
4951               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
4952               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
4953               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
4954               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
4955               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
4956               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
4957               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
4958               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
4959               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
4960               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
4961               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
4962               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
4963               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_0),
4964               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
4965               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_0),
4966               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_0),
4967               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_0),
4968               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_0),
4969               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
4970               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_0));
4971       case 203 -> spaceGroup =
4972           new SpaceGroup(
4973               203,
4974               96,
4975               24,
4976               "Fd-3",
4977               "PGm3bar",
4978               "F 2/d -3",
4979               CUBIC, CUBIC_LATTICE,
4980               LM3B,
4981               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4982               new double[] {-1.0, -1.0, -1.0},
4983               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4984               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4985               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4986               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4987               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4988               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4989               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
4990               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
4991               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
4992               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
4993               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
4994               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
4995               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_14_14),
4996               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_14_14),
4997               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
4998               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
4999               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_14_14),
5000               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_14_14),
5001               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_14_14),
5002               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_14_14),
5003               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_14_14),
5004               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_14_14),
5005               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_14_14),
5006               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_14_14),
5007               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5008               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5009               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5010               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5011               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5012               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5013               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5014               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5015               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5016               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5017               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5018               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5019               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_34_34),
5020               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_34_34),
5021               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
5022               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
5023               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_34_34),
5024               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_34_34),
5025               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_34_34),
5026               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_34_34),
5027               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_34_34),
5028               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_34_34),
5029               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_34_34),
5030               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_34_34),
5031               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5032               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5033               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5034               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5035               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5036               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5037               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5038               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5039               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5040               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5041               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5042               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5043               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_14_34),
5044               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_14_34),
5045               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
5046               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
5047               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_14_34),
5048               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_14_34),
5049               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_14_34),
5050               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_14_34),
5051               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_14_34),
5052               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_14_34),
5053               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_14_34),
5054               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_14_34),
5055               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5056               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5057               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5058               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5059               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5060               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5061               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5062               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5063               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5064               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5065               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5066               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5067               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_34_14),
5068               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_34_14),
5069               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
5070               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14),
5071               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_34_14),
5072               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_34_14),
5073               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_34_14),
5074               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_34_14),
5075               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_34_14),
5076               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_34_14),
5077               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_34_14),
5078               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_34_14));
5079       case 204 -> spaceGroup =
5080           new SpaceGroup(
5081               204,
5082               48,
5083               24,
5084               "Im-3",
5085               "PGm3bar",
5086               "I 2/m -3",
5087               CUBIC, CUBIC_LATTICE,
5088               LM3B,
5089               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5090               new double[] {f12, f12, f12},
5091               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5092               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5093               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5094               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5095               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5096               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5097               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5098               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5099               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5100               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5101               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5102               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5103               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5104               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
5105               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
5106               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
5107               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5108               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
5109               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
5110               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
5111               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5112               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
5113               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
5114               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
5115               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5116               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
5117               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
5118               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
5119               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5120               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
5121               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
5122               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
5123               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5124               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
5125               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
5126               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12),
5127               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
5128               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
5129               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
5130               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
5131               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
5132               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
5133               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
5134               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
5135               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
5136               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
5137               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
5138               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12));
5139       case 205 -> spaceGroup =
5140           new SpaceGroup(
5141               205,
5142               24,
5143               24,
5144               "Pa-3",
5145               "PGm3bar",
5146               "P 21/a -3",
5147               CUBIC, CUBIC_LATTICE,
5148               LM3B,
5149               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5150               new double[] {-1.0, -1.0, -1.0},
5151               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5152               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5153               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5154               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5155               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5156               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5157               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5158               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5159               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5160               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5161               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5162               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5163               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5164               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
5165               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
5166               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
5167               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5168               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
5169               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
5170               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
5171               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5172               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
5173               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
5174               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12));
5175       case 206 -> spaceGroup =
5176           new SpaceGroup(
5177               206,
5178               48,
5179               24,
5180               "Ia-3",
5181               "PGm3bar",
5182               "I 21/a -3",
5183               CUBIC, CUBIC_LATTICE,
5184               LM3B,
5185               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5186               new double[] {-1.0, -1.0, -1.0},
5187               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5188               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5189               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5190               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5191               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5192               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5193               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5194               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5195               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5196               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5197               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5198               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5199               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5200               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
5201               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
5202               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
5203               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5204               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
5205               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
5206               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
5207               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5208               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
5209               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
5210               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
5211               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5212               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
5213               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
5214               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
5215               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5216               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
5217               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
5218               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
5219               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5220               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
5221               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
5222               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0),
5223               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
5224               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
5225               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
5226               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
5227               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
5228               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_12),
5229               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_0),
5230               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_0),
5231               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
5232               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_0),
5233               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_12),
5234               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_0));
5235       case 207 -> spaceGroup =
5236           new SpaceGroup(
5237               207,
5238               24,
5239               24,
5240               "P432",
5241               "PG432",
5242               "P 4 3 2",
5243               CUBIC, CUBIC_LATTICE,
5244               LM3M,
5245               new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LTE},
5246               new double[] {1.0, f12, f12},
5247               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5248               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5249               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5250               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5251               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5252               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5253               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5254               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5255               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5256               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5257               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5258               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5259               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
5260               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
5261               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
5262               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
5263               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
5264               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
5265               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
5266               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
5267               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
5268               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
5269               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
5270               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0));
5271       case 208 -> spaceGroup =
5272           new SpaceGroup(
5273               208,
5274               24,
5275               24,
5276               "P4232",
5277               "PG432",
5278               "P 42 3 2",
5279               CUBIC, CUBIC_LATTICE,
5280               LM3M,
5281               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
5282               new double[] {f12, 1.0, f14},
5283               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5284               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5285               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5286               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5287               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5288               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5289               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5290               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5291               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5292               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5293               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5294               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5295               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
5296               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
5297               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
5298               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
5299               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
5300               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
5301               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
5302               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
5303               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
5304               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
5305               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
5306               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12));
5307       case 209 -> spaceGroup =
5308           new SpaceGroup(
5309               209,
5310               96,
5311               24,
5312               "F432",
5313               "PG432",
5314               "F 4 3 2",
5315               CUBIC, CUBIC_LATTICE,
5316               LM3M,
5317               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5318               new double[] {f12, f12, f12},
5319               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5320               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5321               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5322               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5323               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5324               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5325               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5326               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5327               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5328               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5329               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5330               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5331               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
5332               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
5333               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
5334               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
5335               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
5336               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
5337               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
5338               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
5339               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
5340               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
5341               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
5342               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
5343               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5344               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5345               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5346               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5347               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5348               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5349               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5350               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5351               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5352               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5353               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5354               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5355               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_12_12),
5356               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_12_12),
5357               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_12),
5358               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_12),
5359               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_12_12),
5360               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_12_12),
5361               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_12_12),
5362               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_12_12),
5363               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_12_12),
5364               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_12_12),
5365               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_12_12),
5366               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_12_12),
5367               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5368               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5369               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5370               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5371               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5372               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5373               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5374               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5375               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5376               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5377               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5378               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5379               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_0_12),
5380               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_0_12),
5381               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_12),
5382               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_12),
5383               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_0_12),
5384               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_0_12),
5385               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_0_12),
5386               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_0_12),
5387               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_0_12),
5388               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_0_12),
5389               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_0_12),
5390               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_0_12),
5391               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5392               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5393               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5394               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5395               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5396               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5397               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5398               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5399               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5400               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5401               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5402               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5403               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
5404               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
5405               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
5406               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
5407               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_0),
5408               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_0),
5409               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_0),
5410               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_0),
5411               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_0),
5412               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_0),
5413               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_0),
5414               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_0));
5415       case 210 -> spaceGroup =
5416           new SpaceGroup(
5417               210,
5418               96,
5419               24,
5420               "F4132",
5421               "PG432",
5422               "F 41 3 2",
5423               CUBIC, CUBIC_LATTICE,
5424               LM3M,
5425               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
5426               new double[] {f12, 1.0, f18},
5427               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5428               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5429               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5430               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5431               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5432               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5433               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5434               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5435               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5436               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5437               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5438               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5439               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_34),
5440               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
5441               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_34_34),
5442               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_34_14),
5443               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_34),
5444               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_34_14),
5445               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
5446               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_34_34),
5447               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_34),
5448               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_34_34),
5449               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_34_14),
5450               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14),
5451               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5452               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5453               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5454               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5455               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5456               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5457               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5458               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5459               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5460               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5461               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5462               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5463               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_34_14),
5464               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_34_34),
5465               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_14),
5466               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
5467               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_34_14),
5468               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
5469               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_34_34),
5470               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_14),
5471               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_34_14),
5472               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_14),
5473               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
5474               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_34_34),
5475               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5476               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5477               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5478               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5479               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5480               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5481               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5482               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5483               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5484               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5485               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5486               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5487               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_14_14),
5488               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_14_34),
5489               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
5490               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_34),
5491               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_14_14),
5492               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_34),
5493               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_14_34),
5494               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
5495               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_14_14),
5496               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
5497               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_34),
5498               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_14_34),
5499               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5500               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5501               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5502               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5503               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5504               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5505               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5506               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5507               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5508               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5509               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5510               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5511               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
5512               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_14),
5513               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_14_34),
5514               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_14_14),
5515               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
5516               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_14_14),
5517               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_14),
5518               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_14_34),
5519               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
5520               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_14_34),
5521               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_14_14),
5522               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_14));
5523       case 211 -> spaceGroup =
5524           new SpaceGroup(
5525               211,
5526               48,
5527               24,
5528               "I432",
5529               "PG432",
5530               "I 4 3 2",
5531               CUBIC, CUBIC_LATTICE,
5532               LM3M,
5533               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5534               new double[] {f12, f12, f14},
5535               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5536               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5537               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5538               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5539               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5540               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5541               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5542               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5543               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5544               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5545               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5546               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5547               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
5548               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
5549               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
5550               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
5551               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
5552               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
5553               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
5554               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
5555               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
5556               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
5557               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
5558               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
5559               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5560               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
5561               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
5562               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
5563               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5564               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
5565               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
5566               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
5567               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5568               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
5569               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
5570               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12),
5571               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
5572               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
5573               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
5574               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
5575               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
5576               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
5577               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
5578               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
5579               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
5580               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
5581               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
5582               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12));
5583       case 212 -> spaceGroup =
5584           new SpaceGroup(
5585               212,
5586               24,
5587               24,
5588               "P4332",
5589               "PG432",
5590               "P 43 3 2",
5591               CUBIC, CUBIC_LATTICE,
5592               LM3M,
5593               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
5594               new double[] {1.0, 1.0, f18},
5595               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5596               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5597               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5598               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5599               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5600               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5601               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5602               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5603               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5604               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5605               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5606               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5607               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
5608               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
5609               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
5610               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
5611               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
5612               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
5613               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
5614               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
5615               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
5616               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
5617               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
5618               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14));
5619       case 213 -> spaceGroup =
5620           new SpaceGroup(
5621               213,
5622               24,
5623               24,
5624               "P4132",
5625               "PG432",
5626               "P 41 3 2",
5627               CUBIC, CUBIC_LATTICE,
5628               LM3M,
5629               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
5630               new double[] {1.0, 1.0, f18},
5631               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5632               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5633               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5634               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5635               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5636               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5637               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5638               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5639               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5640               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5641               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5642               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5643               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_14),
5644               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_34),
5645               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_34),
5646               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_14),
5647               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_14),
5648               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_14),
5649               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_34),
5650               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_34),
5651               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_14),
5652               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_34),
5653               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_14),
5654               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_34));
5655       case 214 -> spaceGroup =
5656           new SpaceGroup(
5657               214,
5658               48,
5659               24,
5660               "I4132",
5661               "PG432",
5662               "I 41 3 2",
5663               CUBIC, CUBIC_LATTICE,
5664               LM3M,
5665               new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
5666               new double[] {f12, 1.0, f18},
5667               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5668               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5669               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5670               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5671               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5672               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5673               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5674               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5675               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5676               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5677               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5678               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5679               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_14),
5680               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_34),
5681               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_34),
5682               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_14),
5683               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_14),
5684               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_14),
5685               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_34),
5686               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_34),
5687               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_14),
5688               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_34),
5689               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_14),
5690               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_34),
5691               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5692               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
5693               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
5694               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
5695               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5696               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
5697               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
5698               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
5699               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5700               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
5701               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
5702               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0),
5703               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
5704               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
5705               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
5706               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
5707               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
5708               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
5709               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
5710               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
5711               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
5712               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
5713               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
5714               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14));
5715       case 215 -> spaceGroup =
5716           new SpaceGroup(
5717               215,
5718               24,
5719               24,
5720               "P-43m",
5721               "PG4bar3m",
5722               "P -4 3 m",
5723               CUBIC, CUBIC_LATTICE,
5724               LM3M,
5725               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5726               new double[] {-1.0, -1.0, -1.0},
5727               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5728               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5729               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5730               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5731               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5732               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5733               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5734               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5735               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5736               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5737               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5738               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5739               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
5740               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
5741               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
5742               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
5743               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
5744               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
5745               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
5746               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
5747               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
5748               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
5749               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
5750               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0));
5751       default -> {
5752       }
5753     }
5754     return spaceGroup;
5755   }
5756 
5757   /**
5758    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
5759    * specification limit on method size is exceeded.
5760    *
5761    * @param num input parameter (between 216 and 230)
5762    * @return the selected SpaceGroup
5763    */
5764   static SpaceGroup getSpaceGroup6(int num) {
5765     SpaceGroup spaceGroup = null;
5766     switch (num) {
5767       case 216 -> spaceGroup =
5768           new SpaceGroup(
5769               216,
5770               96,
5771               24,
5772               "F-43m",
5773               "PG4bar3m",
5774               "F -4 3 m",
5775               CUBIC, CUBIC_LATTICE,
5776               LM3M,
5777               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5778               new double[] {-1.0, -1.0, -1.0},
5779               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5780               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5781               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5782               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5783               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5784               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5785               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5786               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5787               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5788               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5789               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5790               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5791               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
5792               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
5793               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
5794               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
5795               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
5796               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
5797               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
5798               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
5799               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
5800               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
5801               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
5802               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
5803               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5804               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5805               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5806               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5807               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5808               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5809               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5810               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5811               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5812               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5813               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5814               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5815               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_12),
5816               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_12),
5817               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_12_12),
5818               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_12_12),
5819               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_12_12),
5820               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_12_12),
5821               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_12_12),
5822               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_12_12),
5823               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_12_12),
5824               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_12_12),
5825               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_12_12),
5826               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_12_12),
5827               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5828               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5829               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5830               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5831               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5832               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5833               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5834               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5835               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5836               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5837               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5838               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5839               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_12),
5840               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_12),
5841               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_0_12),
5842               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_0_12),
5843               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_0_12),
5844               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_0_12),
5845               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_0_12),
5846               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_0_12),
5847               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_0_12),
5848               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_0_12),
5849               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_0_12),
5850               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_0_12),
5851               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5852               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5853               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5854               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5855               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5856               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5857               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5858               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5859               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5860               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5861               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5862               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5863               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0),
5864               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
5865               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_0),
5866               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_0),
5867               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_0),
5868               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_0),
5869               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_0),
5870               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_0),
5871               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_0),
5872               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_0),
5873               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_0),
5874               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_0));
5875       case 217 -> spaceGroup =
5876           new SpaceGroup(
5877               217,
5878               48,
5879               24,
5880               "I-43m",
5881               "PG4bar3m",
5882               "I -4 3 m",
5883               CUBIC, CUBIC_LATTICE,
5884               LM3M,
5885               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5886               new double[] {-1.0, -1.0, -1.0},
5887               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5888               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5889               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5890               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5891               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5892               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5893               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5894               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5895               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5896               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5897               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5898               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5899               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
5900               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
5901               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
5902               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
5903               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
5904               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
5905               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
5906               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
5907               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
5908               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
5909               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
5910               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
5911               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5912               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
5913               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
5914               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
5915               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5916               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
5917               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
5918               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
5919               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5920               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
5921               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
5922               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12),
5923               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
5924               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
5925               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
5926               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
5927               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
5928               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
5929               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
5930               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
5931               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
5932               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
5933               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
5934               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12));
5935       case 218 -> spaceGroup =
5936           new SpaceGroup(
5937               218,
5938               24,
5939               24,
5940               "P-43n",
5941               "PG4bar3m",
5942               "P -4 3 n",
5943               CUBIC, CUBIC_LATTICE,
5944               LM3M,
5945               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5946               new double[] {-1.0, -1.0, -1.0},
5947               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5948               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5949               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5950               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5951               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5952               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5953               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5954               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5955               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5956               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5957               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5958               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5959               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
5960               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
5961               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
5962               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
5963               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
5964               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
5965               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
5966               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
5967               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
5968               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
5969               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
5970               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12));
5971       case 219 -> spaceGroup =
5972           new SpaceGroup(
5973               219,
5974               96,
5975               24,
5976               "F-43c",
5977               "PG4bar3m",
5978               "F -4 3 c",
5979               CUBIC, CUBIC_LATTICE,
5980               LM3M,
5981               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5982               new double[] {-1.0, -1.0, -1.0},
5983               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5984               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5985               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5986               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5987               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5988               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5989               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5990               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5991               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5992               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5993               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5994               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5995               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
5996               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
5997               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
5998               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
5999               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
6000               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
6001               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
6002               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
6003               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
6004               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
6005               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
6006               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12),
6007               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
6008               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
6009               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6010               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
6011               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
6012               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
6013               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
6014               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6015               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
6016               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6017               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
6018               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
6019               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_0),
6020               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_0),
6021               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_0_0),
6022               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_0_0),
6023               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_0_0),
6024               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_0_0),
6025               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_0_0),
6026               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_0_0),
6027               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_0_0),
6028               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_0_0),
6029               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_0_0),
6030               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_0_0),
6031               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
6032               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6033               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
6034               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
6035               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
6036               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
6037               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6038               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
6039               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
6040               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
6041               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
6042               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6043               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_0),
6044               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_0),
6045               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_12_0),
6046               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_12_0),
6047               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_12_0),
6048               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_12_0),
6049               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_12_0),
6050               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_12_0),
6051               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_12_0),
6052               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_12_0),
6053               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_12_0),
6054               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_12_0),
6055               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
6056               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
6057               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
6058               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6059               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
6060               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6061               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
6062               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
6063               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
6064               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
6065               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6066               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
6067               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
6068               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
6069               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
6070               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
6071               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_12),
6072               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_12),
6073               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_12),
6074               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_12),
6075               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_12),
6076               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_12),
6077               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_12),
6078               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_12));
6079       case 220 -> spaceGroup =
6080           new SpaceGroup(
6081               220,
6082               48,
6083               24,
6084               "I-43d",
6085               "PG4bar3m",
6086               "I -4 3 d",
6087               CUBIC, CUBIC_LATTICE,
6088               LM3M,
6089               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
6090               new double[] {-1.0, -1.0, -1.0},
6091               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6092               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6093               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6094               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6095               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6096               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6097               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6098               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6099               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6100               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6101               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6102               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6103               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_14_14_14),
6104               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_14_34_34),
6105               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_34_14_34),
6106               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_34_34_14),
6107               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_14_14_14),
6108               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_34_34_14),
6109               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_14_34_34),
6110               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_34_14_34),
6111               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_14_14_14),
6112               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_34_14_34),
6113               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_34_34_14),
6114               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_14_34_34),
6115               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
6116               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
6117               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
6118               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
6119               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
6120               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
6121               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
6122               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
6123               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
6124               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
6125               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
6126               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0),
6127               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_34_34_34),
6128               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_34_14_14),
6129               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_14_34_14),
6130               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_14_14_34),
6131               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_34_34_34),
6132               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_14_14_34),
6133               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_34_14_14),
6134               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_14_34_14),
6135               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_34_34_34),
6136               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_14_34_14),
6137               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_14_14_34),
6138               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_34_14_14));
6139       case 221 -> spaceGroup =
6140           new SpaceGroup(
6141               221,
6142               48,
6143               48,
6144               "Pm-3m",
6145               "PGm3barm",
6146               "P 4/m -3 2/m",
6147               CUBIC, CUBIC_LATTICE,
6148               LM3M,
6149               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
6150               new double[] {f12, f12, f12},
6151               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6152               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6153               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6154               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6155               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6156               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6157               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6158               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6159               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6160               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6161               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6162               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6163               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
6164               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
6165               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
6166               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
6167               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
6168               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
6169               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
6170               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
6171               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
6172               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
6173               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
6174               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
6175               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
6176               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
6177               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
6178               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
6179               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
6180               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
6181               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
6182               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
6183               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
6184               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
6185               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
6186               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
6187               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
6188               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
6189               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
6190               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
6191               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
6192               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
6193               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
6194               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
6195               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
6196               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
6197               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
6198               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0));
6199       case 222 -> spaceGroup =
6200           new SpaceGroup(
6201               222,
6202               48,
6203               48,
6204               "Pn-3n",
6205               "PGm3barm",
6206               "P 4/n -3 2/n",
6207               CUBIC, CUBIC_LATTICE,
6208               LM3M,
6209               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
6210               new double[] {-1.0, -1.0, -1.0},
6211               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6212               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6213               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6214               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6215               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6216               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6217               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6218               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6219               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6220               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6221               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6222               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6223               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
6224               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
6225               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
6226               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
6227               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
6228               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
6229               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
6230               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
6231               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
6232               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
6233               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
6234               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
6235               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
6236               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
6237               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
6238               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
6239               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
6240               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
6241               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
6242               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
6243               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
6244               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
6245               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
6246               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12),
6247               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
6248               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
6249               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
6250               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
6251               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
6252               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
6253               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
6254               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
6255               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12),
6256               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
6257               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
6258               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12));
6259       case 223 -> spaceGroup =
6260           new SpaceGroup(
6261               223,
6262               48,
6263               48,
6264               "Pm-3n",
6265               "PGm3barm",
6266               "P 42/m -3 2/n",
6267               CUBIC, CUBIC_LATTICE,
6268               LM3M,
6269               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
6270               new double[] {-1.0, -1.0, -1.0},
6271               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6272               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6273               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6274               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6275               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6276               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6277               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6278               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6279               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6280               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6281               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6282               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6283               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
6284               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
6285               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
6286               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
6287               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
6288               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
6289               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
6290               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
6291               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
6292               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
6293               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
6294               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12),
6295               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
6296               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
6297               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
6298               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
6299               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
6300               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
6301               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
6302               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
6303               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
6304               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
6305               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
6306               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
6307               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
6308               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
6309               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
6310               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
6311               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
6312               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
6313               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
6314               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
6315               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12),
6316               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
6317               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
6318               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12));
6319       case 224 -> spaceGroup =
6320           new SpaceGroup(
6321               224,
6322               48,
6323               48,
6324               "Pn-3m",
6325               "PGm3barm",
6326               "P 42/n -3 2/m",
6327               CUBIC, CUBIC_LATTICE,
6328               LM3M,
6329               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
6330               new double[] {-1.0, -1.0, -1.0},
6331               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6332               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6333               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6334               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6335               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6336               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6337               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6338               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6339               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6340               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6341               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6342               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6343               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
6344               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
6345               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
6346               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
6347               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
6348               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
6349               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
6350               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
6351               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
6352               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
6353               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
6354               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12),
6355               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
6356               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
6357               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
6358               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
6359               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
6360               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
6361               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
6362               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
6363               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
6364               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
6365               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
6366               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12),
6367               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
6368               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
6369               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
6370               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
6371               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
6372               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
6373               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
6374               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
6375               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
6376               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
6377               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
6378               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0));
6379       case 225 -> spaceGroup =
6380           new SpaceGroup(
6381               225,
6382               192,
6383               48,
6384               "Fm-3m",
6385               "PGm3barm",
6386               "F 4/m -3 2/m",
6387               CUBIC, CUBIC_LATTICE,
6388               LM3M,
6389               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
6390               new double[] {f12, f14, f14},
6391               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6392               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6393               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6394               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6395               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6396               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6397               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6398               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6399               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6400               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6401               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6402               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6403               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
6404               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
6405               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
6406               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
6407               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
6408               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
6409               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
6410               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
6411               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
6412               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
6413               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
6414               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
6415               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
6416               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
6417               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
6418               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
6419               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
6420               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
6421               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
6422               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
6423               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
6424               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
6425               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
6426               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
6427               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
6428               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
6429               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
6430               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
6431               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
6432               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
6433               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
6434               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
6435               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
6436               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
6437               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
6438               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
6439               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
6440               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
6441               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6442               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
6443               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
6444               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
6445               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
6446               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6447               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
6448               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6449               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
6450               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
6451               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_12_12),
6452               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_12_12),
6453               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_12),
6454               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_12),
6455               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_12_12),
6456               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_12_12),
6457               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_12_12),
6458               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_12_12),
6459               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_12_12),
6460               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_12_12),
6461               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_12_12),
6462               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_12_12),
6463               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
6464               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
6465               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
6466               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
6467               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_12_12),
6468               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_12_12),
6469               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_12),
6470               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
6471               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_12_12),
6472               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
6473               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_12_12),
6474               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_12),
6475               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_12),
6476               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_12),
6477               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_12_12),
6478               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_12_12),
6479               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_12_12),
6480               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_12_12),
6481               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_12_12),
6482               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_12_12),
6483               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_12_12),
6484               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_12_12),
6485               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_12_12),
6486               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_12_12),
6487               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
6488               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6489               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
6490               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
6491               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
6492               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
6493               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6494               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
6495               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
6496               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
6497               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
6498               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6499               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_0_12),
6500               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_0_12),
6501               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_12),
6502               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_12),
6503               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_0_12),
6504               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_0_12),
6505               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_0_12),
6506               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_0_12),
6507               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_0_12),
6508               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_0_12),
6509               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_0_12),
6510               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_0_12),
6511               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
6512               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
6513               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
6514               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
6515               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_0_12),
6516               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_0_12),
6517               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
6518               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_12),
6519               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_0_12),
6520               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_12),
6521               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_0_12),
6522               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
6523               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_12),
6524               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_12),
6525               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_0_12),
6526               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_0_12),
6527               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_0_12),
6528               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_0_12),
6529               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_0_12),
6530               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_0_12),
6531               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_0_12),
6532               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_0_12),
6533               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_0_12),
6534               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_0_12),
6535               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
6536               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
6537               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
6538               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6539               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
6540               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6541               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
6542               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
6543               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
6544               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
6545               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6546               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
6547               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
6548               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
6549               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
6550               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
6551               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_0),
6552               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_0),
6553               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_0),
6554               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_0),
6555               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_0),
6556               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_0),
6557               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_0),
6558               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_0),
6559               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
6560               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
6561               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
6562               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
6563               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_0),
6564               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
6565               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_0),
6566               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_0),
6567               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_0),
6568               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_0),
6569               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
6570               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_0),
6571               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
6572               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0),
6573               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_0),
6574               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_0),
6575               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_0),
6576               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_0),
6577               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_0),
6578               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_0),
6579               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_0),
6580               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_0),
6581               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_0),
6582               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_0));
6583       case 226 -> spaceGroup =
6584           new SpaceGroup(
6585               226,
6586               192,
6587               48,
6588               "Fm-3c",
6589               "PGm3barm",
6590               "F 4/m -3 2/c",
6591               CUBIC, CUBIC_LATTICE,
6592               LM3M,
6593               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
6594               new double[] {-1.0, -1.0, -1.0},
6595               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6596               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6597               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6598               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6599               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6600               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6601               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6602               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6603               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6604               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6605               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6606               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6607               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
6608               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
6609               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
6610               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
6611               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
6612               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
6613               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
6614               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
6615               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
6616               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
6617               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
6618               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12),
6619               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
6620               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
6621               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
6622               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
6623               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
6624               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
6625               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
6626               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
6627               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
6628               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
6629               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
6630               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
6631               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
6632               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
6633               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
6634               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
6635               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
6636               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
6637               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
6638               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
6639               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12),
6640               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
6641               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
6642               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
6643               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
6644               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
6645               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6646               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
6647               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
6648               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
6649               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
6650               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6651               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
6652               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6653               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
6654               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
6655               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_0_0),
6656               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_0_0),
6657               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_0),
6658               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_0),
6659               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_0_0),
6660               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_0_0),
6661               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_0_0),
6662               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_0_0),
6663               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_0_0),
6664               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_0_0),
6665               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_0_0),
6666               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_0_0),
6667               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
6668               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
6669               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
6670               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
6671               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_12_12),
6672               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_12_12),
6673               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_12),
6674               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
6675               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_12_12),
6676               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
6677               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_12_12),
6678               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_12),
6679               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_0),
6680               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_0),
6681               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_0_0),
6682               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_0_0),
6683               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_0_0),
6684               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_0_0),
6685               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_0_0),
6686               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_0_0),
6687               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_0_0),
6688               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_0_0),
6689               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_0_0),
6690               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_0_0),
6691               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
6692               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6693               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
6694               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
6695               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
6696               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
6697               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6698               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
6699               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
6700               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
6701               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
6702               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6703               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_12_0),
6704               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_12_0),
6705               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_0),
6706               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_0),
6707               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_12_0),
6708               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_12_0),
6709               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_12_0),
6710               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_12_0),
6711               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_12_0),
6712               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_12_0),
6713               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_12_0),
6714               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_12_0),
6715               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
6716               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
6717               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
6718               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
6719               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_0_12),
6720               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_0_12),
6721               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
6722               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_12),
6723               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_0_12),
6724               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_12),
6725               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_0_12),
6726               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
6727               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_0),
6728               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_0),
6729               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_12_0),
6730               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_12_0),
6731               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_12_0),
6732               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_12_0),
6733               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_12_0),
6734               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_12_0),
6735               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_12_0),
6736               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_12_0),
6737               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_12_0),
6738               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_12_0),
6739               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
6740               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
6741               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
6742               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6743               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
6744               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6745               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
6746               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
6747               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
6748               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
6749               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6750               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
6751               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
6752               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
6753               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
6754               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
6755               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_12),
6756               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_12),
6757               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_12),
6758               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_12),
6759               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_12),
6760               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_12),
6761               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_12),
6762               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_12),
6763               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
6764               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
6765               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
6766               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
6767               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_0),
6768               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
6769               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_0),
6770               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_0),
6771               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_0),
6772               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_0),
6773               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
6774               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_0),
6775               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
6776               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
6777               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
6778               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
6779               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_12),
6780               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_12),
6781               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_12),
6782               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_12),
6783               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_12),
6784               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_12),
6785               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_12),
6786               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_12));
6787       case 227 -> spaceGroup =
6788           new SpaceGroup(
6789               227,
6790               192,
6791               48,
6792               "Fd-3m",
6793               "PGm3barm",
6794               "F 41/d -3 2/m",
6795               CUBIC, CUBIC_LATTICE,
6796               LM3M,
6797               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
6798               new double[] {-1.0, -1.0, -1.0},
6799               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6800               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
6801               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
6802               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
6803               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6804               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
6805               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
6806               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
6807               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6808               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
6809               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
6810               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
6811               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_34),
6812               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
6813               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_34_34),
6814               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_34_14),
6815               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_34),
6816               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_34_14),
6817               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
6818               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_34_34),
6819               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_34),
6820               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_34_34),
6821               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_34_14),
6822               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14),
6823               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_14_14),
6824               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_34_34),
6825               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
6826               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
6827               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_14_14),
6828               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_14_34),
6829               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_34_34),
6830               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_34_14),
6831               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_14_14),
6832               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_34_14),
6833               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_14_34),
6834               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_34_34),
6835               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_12),
6836               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
6837               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_12_12),
6838               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_0),
6839               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_0_12),
6840               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_0),
6841               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
6842               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_12_12),
6843               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_0_12),
6844               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_12_12),
6845               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_0),
6846               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
6847               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
6848               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
6849               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
6850               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6851               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
6852               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6853               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
6854               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
6855               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
6856               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
6857               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6858               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
6859               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_34_14),
6860               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_34_34),
6861               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_14),
6862               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
6863               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_34_14),
6864               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
6865               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_34_34),
6866               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_14),
6867               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_34_14),
6868               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_14),
6869               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
6870               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_34_34),
6871               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_34_34),
6872               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_14_14),
6873               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
6874               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14),
6875               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_34_34),
6876               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_34_14),
6877               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_14_14),
6878               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_14_34),
6879               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_34_34),
6880               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_14_34),
6881               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_34_14),
6882               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_14_14),
6883               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
6884               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_12),
6885               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
6886               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_0_12),
6887               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_0),
6888               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_0_12),
6889               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_12_12),
6890               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
6891               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_0),
6892               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
6893               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_0_12),
6894               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_12_12),
6895               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
6896               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
6897               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6898               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
6899               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
6900               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
6901               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
6902               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6903               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
6904               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6905               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
6906               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
6907               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_14_14),
6908               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_14_34),
6909               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
6910               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_34),
6911               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_14_14),
6912               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_34),
6913               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_14_34),
6914               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
6915               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_14_14),
6916               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
6917               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_34),
6918               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_14_34),
6919               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_14_34),
6920               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_34_14),
6921               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
6922               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
6923               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_14_34),
6924               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_14_14),
6925               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_34_14),
6926               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_34_34),
6927               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_14_34),
6928               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_34_34),
6929               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_14_14),
6930               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_34_14),
6931               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
6932               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_12),
6933               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_0),
6934               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_12_12),
6935               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
6936               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_12_12),
6937               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_0_12),
6938               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_0),
6939               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
6940               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_0),
6941               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_12_12),
6942               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_0_12),
6943               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
6944               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6945               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
6946               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
6947               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
6948               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
6949               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6950               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
6951               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
6952               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
6953               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
6954               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6955               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
6956               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_14),
6957               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_14_34),
6958               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_14_14),
6959               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
6960               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_14_14),
6961               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_14),
6962               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_14_34),
6963               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
6964               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_14_34),
6965               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_14_14),
6966               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_14),
6967               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_34_14),
6968               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_14_34),
6969               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
6970               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
6971               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_34_14),
6972               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_34_34),
6973               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_14_34),
6974               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_14_14),
6975               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_34_14),
6976               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_14_14),
6977               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_34_34),
6978               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_14_34),
6979               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_12),
6980               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0),
6981               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_0_12),
6982               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
6983               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_12_12),
6984               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
6985               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_0),
6986               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_0_12),
6987               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_12_12),
6988               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_0_12),
6989               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
6990               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_0));
6991       case 228 -> spaceGroup =
6992           new SpaceGroup(
6993               228,
6994               192,
6995               48,
6996               "Fd-3c",
6997               "PGm3barm",
6998               "F 41/d -3 2/c",
6999               CUBIC, CUBIC_LATTICE,
7000               LM3M,
7001               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7002               new double[] {-1.0, -1.0, -1.0},
7003               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7004               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
7005               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
7006               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
7007               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7008               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
7009               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
7010               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
7011               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7012               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
7013               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
7014               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
7015               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_34),
7016               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
7017               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_34_34),
7018               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_34_14),
7019               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_34),
7020               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_34_14),
7021               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
7022               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_34_34),
7023               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_34),
7024               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_34_34),
7025               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_34_14),
7026               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14),
7027               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_34_34),
7028               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_14_14),
7029               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_34),
7030               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_14),
7031               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_34_34),
7032               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_34_14),
7033               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_14_14),
7034               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_14_34),
7035               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_34_34),
7036               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_14_34),
7037               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_34_14),
7038               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_14_14),
7039               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_0),
7040               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
7041               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_0_0),
7042               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
7043               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_12_0),
7044               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_12),
7045               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
7046               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_0_0),
7047               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_12_0),
7048               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_0_0),
7049               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_12),
7050               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
7051               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
7052               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
7053               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
7054               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
7055               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
7056               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
7057               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
7058               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
7059               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
7060               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
7061               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
7062               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
7063               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_34_14),
7064               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_34_34),
7065               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_14),
7066               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
7067               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_34_14),
7068               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
7069               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_34_34),
7070               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_14),
7071               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_34_14),
7072               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_14),
7073               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
7074               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_34_34),
7075               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_14_14),
7076               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_34_34),
7077               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_14),
7078               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_34),
7079               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_14_14),
7080               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_14_34),
7081               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_34_34),
7082               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_34_14),
7083               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_14_14),
7084               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_34_14),
7085               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_14_34),
7086               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_34_34),
7087               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
7088               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_0),
7089               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
7090               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_12_0),
7091               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_12),
7092               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_12_0),
7093               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_0_0),
7094               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
7095               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_12),
7096               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
7097               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_12_0),
7098               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_0_0),
7099               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
7100               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
7101               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
7102               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
7103               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
7104               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
7105               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
7106               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
7107               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
7108               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
7109               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
7110               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
7111               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_14_14),
7112               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_14_34),
7113               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
7114               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_34),
7115               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_14_14),
7116               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_34),
7117               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_14_34),
7118               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
7119               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_14_14),
7120               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
7121               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_34),
7122               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_14_34),
7123               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_34_14),
7124               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_14_34),
7125               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_14),
7126               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_34),
7127               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_34_14),
7128               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_34_34),
7129               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_14_34),
7130               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_14_14),
7131               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_34_14),
7132               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_14_14),
7133               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_34_34),
7134               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_14_34),
7135               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
7136               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_0),
7137               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
7138               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_0_0),
7139               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
7140               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_0_0),
7141               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_12_0),
7142               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_12),
7143               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12),
7144               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_12),
7145               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_0_0),
7146               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_12_0),
7147               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
7148               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
7149               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
7150               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
7151               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
7152               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
7153               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
7154               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
7155               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
7156               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
7157               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
7158               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
7159               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
7160               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_14),
7161               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_14_34),
7162               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_14_14),
7163               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
7164               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_14_14),
7165               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_14),
7166               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_14_34),
7167               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
7168               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_14_34),
7169               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_14_14),
7170               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_14),
7171               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_14_34),
7172               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_34_14),
7173               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_34),
7174               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_14),
7175               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_14_34),
7176               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_14_14),
7177               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_34_14),
7178               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_34_34),
7179               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_14_34),
7180               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_34_34),
7181               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_14_14),
7182               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_34_14),
7183               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_0),
7184               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
7185               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_12_0),
7186               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
7187               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_0_0),
7188               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
7189               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_12),
7190               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_12_0),
7191               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_0_0),
7192               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_12_0),
7193               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
7194               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_12));
7195       case 229 -> spaceGroup =
7196           new SpaceGroup(
7197               229,
7198               96,
7199               48,
7200               "Im-3m",
7201               "PGm3barm",
7202               "I 4/m -3 2/m",
7203               CUBIC, CUBIC_LATTICE,
7204               LM3M,
7205               new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
7206               new double[] {f12, f12, f14},
7207               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7208               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
7209               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
7210               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
7211               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7212               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
7213               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
7214               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
7215               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7216               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
7217               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
7218               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
7219               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
7220               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
7221               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
7222               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
7223               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
7224               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
7225               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
7226               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
7227               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
7228               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
7229               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
7230               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
7231               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7232               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
7233               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
7234               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
7235               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
7236               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
7237               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
7238               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
7239               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
7240               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
7241               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
7242               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
7243               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
7244               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
7245               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
7246               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
7247               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_0_0_0),
7248               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_0_0_0),
7249               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0),
7250               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_0_0_0),
7251               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_0_0_0),
7252               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_0_0_0),
7253               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_0_0_0),
7254               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
7255               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
7256               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
7257               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
7258               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
7259               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
7260               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
7261               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
7262               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
7263               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
7264               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
7265               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
7266               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12),
7267               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
7268               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
7269               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
7270               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
7271               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
7272               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
7273               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
7274               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
7275               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
7276               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
7277               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
7278               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12),
7279               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
7280               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
7281               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
7282               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
7283               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
7284               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
7285               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
7286               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
7287               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
7288               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
7289               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
7290               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12),
7291               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
7292               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
7293               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
7294               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
7295               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_12_12_12),
7296               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_12_12_12),
7297               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12),
7298               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_12_12_12),
7299               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_12_12_12),
7300               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_12_12_12),
7301               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_12_12_12),
7302               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12));
7303       case 230 -> spaceGroup =
7304           new SpaceGroup(
7305               230,
7306               96,
7307               48,
7308               "Ia-3d",
7309               "PGm3barm",
7310               "I 41/a -3 2/d",
7311               CUBIC, CUBIC_LATTICE,
7312               LM3M,
7313               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7314               new double[] {-1.0, -1.0, -1.0},
7315               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7316               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
7317               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
7318               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
7319               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7320               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
7321               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
7322               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
7323               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7324               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
7325               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
7326               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
7327               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_14),
7328               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_34),
7329               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_34),
7330               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_14),
7331               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_14),
7332               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_14),
7333               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_34),
7334               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_34),
7335               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_14),
7336               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_34),
7337               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_14),
7338               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_34),
7339               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7340               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
7341               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
7342               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
7343               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
7344               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
7345               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
7346               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
7347               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
7348               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
7349               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
7350               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
7351               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_14_34_34),
7352               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_14_14_14),
7353               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_34_34_14),
7354               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_34_14_34),
7355               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_14_34_34),
7356               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_34_14_34),
7357               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_14_14_14),
7358               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_34_34_14),
7359               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_14_34_34),
7360               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_34_34_14),
7361               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_34_14_34),
7362               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_14_14_14),
7363               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
7364               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
7365               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
7366               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
7367               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
7368               new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
7369               new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
7370               new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
7371               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
7372               new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
7373               new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
7374               new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0),
7375               new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
7376               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
7377               new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
7378               new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
7379               new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
7380               new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
7381               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
7382               new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
7383               new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
7384               new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
7385               new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
7386               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14),
7387               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
7388               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
7389               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
7390               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
7391               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
7392               new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_12),
7393               new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_0),
7394               new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_0),
7395               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
7396               new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_0),
7397               new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_12),
7398               new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_0),
7399               new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_34_14_14),
7400               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_34_34_34),
7401               new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_14_14_34),
7402               new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_14_34_14),
7403               new SymOp(SymOp.Rot_mX_mZ_Y, SymOp.Tr_34_14_14),
7404               new SymOp(SymOp.Rot_X_mZ_mY, SymOp.Tr_14_34_14),
7405               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_34_34_34),
7406               new SymOp(SymOp.Rot_mX_Z_mY, SymOp.Tr_14_14_34),
7407               new SymOp(SymOp.Rot_mZ_mY_X, SymOp.Tr_34_14_14),
7408               new SymOp(SymOp.Rot_mZ_Y_mX, SymOp.Tr_14_14_34),
7409               new SymOp(SymOp.Rot_Z_mY_mX, SymOp.Tr_14_34_14),
7410               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_34_34_34));
7411       default -> {
7412       }
7413     }
7414     return spaceGroup;
7415   }
7416 
7417   /**
7418    * Alternative space group definitions have the same space group numbers as other space groups, but
7419    * contain a different axis of symmetry (e.g. P21/a vs P21/c) or are described using different
7420    * lattice systems (e.g. H3 vs R3).
7421    *
7422    * @param name Space group name.
7423    * @return Return the created SpaceGroup instance.
7424    */
7425   static SpaceGroup getAlternativeSpaceGroup(String name) {
7426     SpaceGroup spaceGroup = null;
7427     name = name.replaceAll(" +", "");
7428     if (name.equalsIgnoreCase("P21/a") || name.equalsIgnoreCase("P121/a1")) {
7429       spaceGroup =
7430           new SpaceGroup(
7431               14,
7432               4,
7433               4,
7434               "P21/a",
7435               "PG2/m",
7436               "P 1 21/a 1",
7437               MONOCLINIC,
7438               MONOCLINIC_LATTICE,
7439               L121,
7440               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7441               new double[] {-1.0, -1.0, -1.0},
7442               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7443               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
7444               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7445               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0));
7446     } else if (name.equalsIgnoreCase("P21/n") || name.equalsIgnoreCase("P121/n1")) {
7447       spaceGroup =
7448           new SpaceGroup(
7449               14,
7450               4,
7451               4,
7452               "P21/n",
7453               "PG2/m",
7454               "P 1 21/n 1",
7455               MONOCLINIC,
7456               MONOCLINIC_LATTICE,
7457               L121,
7458               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7459               new double[] {-1.0, -1.0, -1.0},
7460               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7461               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
7462               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7463               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12));
7464     } else if (name.equalsIgnoreCase("Pn") || name.equalsIgnoreCase("P1n1")) {
7465       spaceGroup =
7466           new SpaceGroup(
7467               7,
7468               2,
7469               2,
7470               "Pn",
7471               "PGm",
7472               "P 1 n 1",
7473               MONOCLINIC,
7474               MONOCLINIC_LATTICE,
7475               L121,
7476               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7477               new double[] {-1.0, -1.0, -1.0},
7478               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7479               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12));
7480     } else if (name.equalsIgnoreCase("Pa") || name.equalsIgnoreCase("P1a1")) {
7481       spaceGroup =
7482           new SpaceGroup(
7483               7,
7484               2,
7485               2,
7486               "Pa",
7487               "PGm",
7488               "P 1 a 1",
7489               MONOCLINIC,
7490               MONOCLINIC_LATTICE,
7491               L121,
7492               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7493               new double[] {-1.0, -1.0, -1.0},
7494               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7495               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0));
7496     } else if (name.equalsIgnoreCase("Pcab") || name.equalsIgnoreCase("P21/c21/a21/b")) {
7497       spaceGroup =
7498           new SpaceGroup(
7499               61,
7500               8,
7501               8,
7502               "Pcab",
7503               "PGmmm",
7504               "P 21/c 21/a 21/b",
7505               ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
7506               L222,
7507               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7508               new double[] {-1.0, -1.0, -1.0},
7509               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7510               new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
7511               new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
7512               new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
7513               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7514               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
7515               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
7516               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12));
7517     } else if (name.equalsIgnoreCase("P21212A")) {
7518       spaceGroup =
7519           new SpaceGroup(
7520               18,
7521               4,
7522               4,
7523               "P21212A",
7524               "PG222",
7525               "P 21 21 2 A",
7526               ORTHORHOMBIC,
7527               ORTHORHOMBIC_LATTICE,
7528               L222,
7529               new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LT},
7530               new double[] {1.0, f14, 1.0},
7531               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7532               new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
7533               new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
7534               new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_0));
7535     } else if (name.equalsIgnoreCase("R3")) {
7536       spaceGroup =
7537           new SpaceGroup(
7538               146,
7539               4,
7540               4,
7541               "R3",
7542               "PG3",
7543               "R 3",
7544               TRIGONAL,
7545               RHOMBOHEDRAL_LATTICE,
7546               L32U,
7547               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7548               new double[] {-1.0, -1.0, -1.0},
7549               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7550               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7551               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0));
7552     } else if (name.equalsIgnoreCase("R-3")) {
7553       spaceGroup =
7554           new SpaceGroup(
7555               148,
7556               6,
7557               6,
7558               "R-3",
7559               "PG3bar",
7560               "R -3",
7561               TRIGONAL,
7562               RHOMBOHEDRAL_LATTICE,
7563               L113,
7564               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7565               new double[] {-1.0, -1.0, -1.0},
7566               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7567               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7568               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7569               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7570               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
7571               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0));
7572     } else if (name.equalsIgnoreCase("R32")) {
7573       spaceGroup =
7574           new SpaceGroup(
7575               155,
7576               6,
7577               6,
7578               "R32",
7579               "PG321",
7580               "R 3 2",
7581               TRIGONAL,
7582               RHOMBOHEDRAL_LATTICE,
7583               L32U,
7584               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7585               new double[] {-1.0, -1.0, -1.0},
7586               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7587               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7588               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7589               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
7590               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
7591               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0));
7592     } else if (name.equalsIgnoreCase("R3m")) {
7593       spaceGroup =
7594           new SpaceGroup(
7595               160,
7596               6,
7597               6,
7598               "R3m",
7599               "PG3m",
7600               "R 3 m",
7601               TRIGONAL,
7602               RHOMBOHEDRAL_LATTICE,
7603               L32U,
7604               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7605               new double[] {-1.0, -1.0, -1.0},
7606               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7607               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7608               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7609               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
7610               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
7611               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0));
7612     } else if (name.equalsIgnoreCase("R3c")) {
7613       spaceGroup =
7614           new SpaceGroup(
7615               161,
7616               6,
7617               6,
7618               "R3c",
7619               "PG3m",
7620               "R 3 c",
7621               TRIGONAL,
7622               RHOMBOHEDRAL_LATTICE,
7623               L32U,
7624               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7625               new double[] {-1.0, -1.0, -1.0},
7626               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7627               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7628               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7629               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
7630               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
7631               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12));
7632     } else if (name.equalsIgnoreCase("R-3m") || name.equalsIgnoreCase("R-32/m")) {
7633       spaceGroup =
7634           new SpaceGroup(
7635               166,
7636               12,
7637               12,
7638               "R-3m",
7639               "PG3barm",
7640               "R -3 2/m",
7641               TRIGONAL,
7642               RHOMBOHEDRAL_LATTICE,
7643               L32U,
7644               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7645               new double[] {-1.0, -1.0, -1.0},
7646               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7647               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7648               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7649               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
7650               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
7651               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
7652               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7653               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
7654               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
7655               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
7656               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_0_0_0),
7657               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_0_0_0));
7658     } else if (name.equalsIgnoreCase("R-3c") || name.equalsIgnoreCase("R-32/c")) {
7659       spaceGroup =
7660           new SpaceGroup(
7661               167,
7662               12,
7663               12,
7664               "R-3c",
7665               "PG3barm",
7666               "R -3 2/c",
7667               TRIGONAL,
7668               RHOMBOHEDRAL_LATTICE,
7669               L32U,
7670               new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
7671               new double[] {-1.0, -1.0, -1.0},
7672               new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
7673               new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
7674               new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
7675               new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
7676               new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12),
7677               new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
7678               new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
7679               new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
7680               new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
7681               new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12),
7682               new SymOp(SymOp.Rot_Z_Y_X, SymOp.Tr_12_12_12),
7683               new SymOp(SymOp.Rot_X_Z_Y, SymOp.Tr_12_12_12));
7684     }
7685 
7686     return spaceGroup;
7687   }
7688 
7689   /**
7690    * Returns a SpaceGroup instance corresponding to the number parameter. If number is not between
7691    * 1-230 inclusive then null is returned.
7692    *
7693    * @param number All 230 3D spacegroups are available.
7694    * @return The space group corresponding to the given number.
7695    * @since 1.0
7696    */
7697   public static SpaceGroup spaceGroupFactory(int number) {
7698     if (number > 0 && number <= 50) {
7699       return getSpaceGroup1(number);
7700     } else if (number > 50 && number <= 100) {
7701       return getSpaceGroup2(number);
7702     } else if (number > 100 && number <= 150) {
7703       return getSpaceGroup3(number);
7704     } else if (number > 150 && number <= 200) {
7705       return getSpaceGroup4(number);
7706     } else if (number > 200 && number <= 215) {
7707       return getSpaceGroup5(number);
7708     } else if (number > 215 && number <= 230) {
7709       return getSpaceGroup6(number);
7710     }
7711     return null;
7712   }
7713 
7714   /**
7715    * Return a SpaceGroup based on its name.
7716    *
7717    * @param name Available SpaceGroup names are given in the "spaceGroupName" array.
7718    * @return The space group corresponding to the given number.
7719    * @since 1.0
7720    */
7721   public static SpaceGroup spaceGroupFactory(String name) {
7722     String n = name.trim();
7723     // Many CIF files have extraneous parenthesis not found in PDB or FFX SG formats (e.g. "P2(1)/c").
7724     n = n.replaceAll("[()]", "");
7725     SpaceGroup spaceGroup = spaceGroupFactory(spaceGroupNumber(n));
7726     if (spaceGroup == null) {
7727       spaceGroup = getAlternativeSpaceGroup(n);
7728     }
7729     return spaceGroup;
7730   }
7731 
7732   /**
7733    * Returns the space group number for a given space group name.
7734    *
7735    * @param name The space group name.
7736    * @return The space group number.
7737    * @since 1.0
7738    */
7739   public static int spaceGroupNumber(String name) {
7740     if (name == null) {
7741       return -1;
7742     }
7743     String n = name.trim();
7744     int num = SpaceGroupInfo.spaceGroupNames.length;
7745     for (int i = 0; i < num; i++) {
7746       String s1 = SpaceGroupInfo.spaceGroupNames[i];
7747       String s2 = SpaceGroupInfo.pdbSpaceGroupNames[i];
7748       if (s1.equalsIgnoreCase(n.replaceAll(" +", "")) || s2.equalsIgnoreCase(n)) {
7749         return i + 1;
7750       }
7751     }
7752     return -1;
7753   }
7754 }