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