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-2021.
6   //
7   // This file is part of Force Field X.
8   //
9   // Force Field X is free software; you can redistribute it and/or modify it
10  // under the terms of the GNU General Public License version 3 as published by
11  // the Free Software Foundation.
12  //
13  // Force Field X is distributed in the hope that it will be useful, but WITHOUT
14  // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
16  // details.
17  //
18  // You should have received a copy of the GNU General Public License along with
19  // Force Field X; if not, write to the Free Software Foundation, Inc., 59 Temple
20  // Place, Suite 330, Boston, MA 02111-1307 USA
21  //
22  // Linking this library statically or dynamically with other modules is making a
23  // combined work based on this library. Thus, the terms and conditions of the
24  // GNU General Public License cover the whole combination.
25  //
26  // As a special exception, the copyright holders of this library give you
27  // permission to link this library with independent modules to produce an
28  // executable, regardless of the license terms of these independent modules, and
29  // to copy and distribute the resulting executable under terms of your choice,
30  // provided that you also meet, for each linked independent module, the terms
31  // and conditions of the license of that module. An independent module is a
32  // module which is not derived from or based on this library. If you modify this
33  // library, you may extend this exception to your version of the library, but
34  // you are not obligated to do so. If you do not wish to do so, delete this
35  // exception statement from your version.
36  //
37  // ******************************************************************************
38  package ffx.crystal;
39  
40  import static ffx.crystal.CrystalSystem.CUBIC;
41  import static ffx.crystal.CrystalSystem.HEXAGONAL;
42  import static ffx.crystal.CrystalSystem.MONOCLINIC;
43  import static ffx.crystal.CrystalSystem.ORTHORHOMBIC;
44  import static ffx.crystal.CrystalSystem.TETRAGONAL;
45  import static ffx.crystal.CrystalSystem.TRICLINIC;
46  import static ffx.crystal.CrystalSystem.TRIGONAL;
47  import static ffx.crystal.LatticeSystem.CUBIC_LATTICE;
48  import static ffx.crystal.LatticeSystem.HEXAGONAL_LATTICE;
49  import static ffx.crystal.LatticeSystem.MONOCLINIC_LATTICE;
50  import static ffx.crystal.LatticeSystem.ORTHORHOMBIC_LATTICE;
51  import static ffx.crystal.LatticeSystem.RHOMBOHEDRAL_LATTICE;
52  import static ffx.crystal.LatticeSystem.TETRAGONAL_LATTICE;
53  import static ffx.crystal.LatticeSystem.TRICLINIC_LATTICE;
54  import static ffx.crystal.LaueSystem.L111;
55  import static ffx.crystal.LaueSystem.L113;
56  import static ffx.crystal.LaueSystem.L114;
57  import static ffx.crystal.LaueSystem.L121;
58  import static ffx.crystal.LaueSystem.L222;
59  import static ffx.crystal.LaueSystem.L223;
60  import static ffx.crystal.LaueSystem.L224;
61  import static ffx.crystal.LaueSystem.L32U;
62  import static ffx.crystal.LaueSystem.LM3B;
63  import static ffx.crystal.LaueSystem.LM3M;
64  
65  /**
66   * The SpaceGroupDefinitions class defines the 230 distinct space groups in three dimensions.
67   *
68   * @author Michael J. Schnieders
69   * @see <ul>
70   *     <li><a href="http://it.iucr.org/Ab/" target="_blank"> International Tables for
71   *     Crystallography Volume A: Space-group symmetry </a>
72   *     <li><a href="http://www.ccp4.ac.uk/html/symlib.html" target="_blank"> CCP4 Symlib </a>
73   *     </ul>
74   * @since 1.0
75   */
76  public class SpaceGroupDefinitions {
77  
78    private static final double f12 = 1.0 / 2.0;
79    private static final double f13 = 1.0 / 3.0;
80    private static final double f23 = 2.0 / 3.0;
81    private static final double f14 = 1.0 / 4.0;
82    private static final double f16 = 1.0 / 6.0;
83    private static final double f18 = 1.0 / 8.0;
84    private static final double f112 = 1.0 / 12.0;
85  
86    /**
87     * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
88     * specification limit on method size is exceeded.
89     *
90     * @param num input parameter (between 1 and 50)
91     * @return the selected SpaceGroup
92     */
93    static SpaceGroup getSpaceGroup1(int num) {
94      SpaceGroup spaceGroup = null;
95      switch (num) {
96        case 1:
97          spaceGroup =
98              new SpaceGroup(
99                  1,
100                 1,
101                 1,
102                 "P1",
103                 "PG1",
104                 "P 1",
105                 TRICLINIC,
106                 TRICLINIC_LATTICE,
107                 L111,
108                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
109                 new double[] {1.0, 1.0, 1.0},
110                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0));
111         break;
112       case 2:
113         spaceGroup =
114             new SpaceGroup(
115                 2,
116                 2,
117                 2,
118                 "P-1",
119                 "PG1bar",
120                 "P -1",
121                 TRICLINIC,
122                 TRICLINIC_LATTICE,
123                 L111,
124                 new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LT},
125                 new double[] {1.0, f12, 1.0},
126                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
127                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0));
128         break;
129       case 3:
130         spaceGroup =
131             new SpaceGroup(
132                 3,
133                 2,
134                 2,
135                 "P2",
136                 "PG2",
137                 "P 1 2 1",
138                 MONOCLINIC,
139                 MONOCLINIC_LATTICE,
140                 L121,
141                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
142                 new double[] {f12, 1.0, 1.0},
143                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
144                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0));
145         break;
146       case 4:
147         spaceGroup =
148             new SpaceGroup(
149                 4,
150                 2,
151                 2,
152                 "P21",
153                 "PG2",
154                 "P 1 21 1",
155                 MONOCLINIC,
156                 MONOCLINIC_LATTICE,
157                 L121,
158                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
159                 new double[] {1.0, f12, 1.0},
160                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
161                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0));
162         break;
163       case 5:
164         spaceGroup =
165             new SpaceGroup(
166                 5,
167                 4,
168                 2,
169                 "C2",
170                 "PG2",
171                 "C 1 2 1",
172                 MONOCLINIC,
173                 MONOCLINIC_LATTICE,
174                 L121,
175                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
176                 new double[] {f12, f12, 1.0},
177                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
178                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
179                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
180                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0));
181         break;
182       case 6:
183         spaceGroup =
184             new SpaceGroup(
185                 6,
186                 2,
187                 2,
188                 "Pm",
189                 "PGm",
190                 "P 1 m 1",
191                 MONOCLINIC,
192                 MONOCLINIC_LATTICE,
193                 L121,
194                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
195                 new double[] {-1.0, -1.0, -1.0},
196                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
197                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0));
198         break;
199       case 7:
200         spaceGroup =
201             new SpaceGroup(
202                 7,
203                 2,
204                 2,
205                 "Pc",
206                 "PGm",
207                 "P 1 c 1",
208                 MONOCLINIC,
209                 MONOCLINIC_LATTICE,
210                 L121,
211                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
212                 new double[] {-1.0, -1.0, -1.0},
213                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
214                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12));
215         break;
216       case 8:
217         spaceGroup =
218             new SpaceGroup(
219                 8,
220                 4,
221                 2,
222                 "Cm",
223                 "PGm",
224                 "C 1 m 1",
225                 MONOCLINIC,
226                 MONOCLINIC_LATTICE,
227                 L121,
228                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
229                 new double[] {-1.0, -1.0, -1.0},
230                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
231                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
232                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
233                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0));
234         break;
235       case 9:
236         spaceGroup =
237             new SpaceGroup(
238                 9,
239                 4,
240                 2,
241                 "Cc",
242                 "PGm",
243                 "C 1 c 1",
244                 MONOCLINIC,
245                 MONOCLINIC_LATTICE,
246                 L121,
247                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
248                 new double[] {-1.0, -1.0, -1.0},
249                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
250                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
251                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
252                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12));
253         break;
254       case 10:
255         spaceGroup =
256             new SpaceGroup(
257                 10,
258                 4,
259                 4,
260                 "P2/m",
261                 "PG2/m",
262                 "P 1 2/m 1",
263                 MONOCLINIC,
264                 MONOCLINIC_LATTICE,
265                 L121,
266                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
267                 new double[] {f12, f12, 1.0},
268                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
269                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
270                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
271                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0));
272         break;
273       case 11:
274         spaceGroup =
275             new SpaceGroup(
276                 11,
277                 4,
278                 4,
279                 "P21/m",
280                 "PG2/m",
281                 "P 1 21/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_mX_Y_mZ, SymOp.Tr_0_12_0),
289                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
290                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0));
291         break;
292       case 12:
293         spaceGroup =
294             new SpaceGroup(
295                 12,
296                 8,
297                 4,
298                 "C2/m",
299                 "PG2/m",
300                 "C 1 2/m 1",
301                 MONOCLINIC,
302                 MONOCLINIC_LATTICE,
303                 L121,
304                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
305                 new double[] {-1.0, -1.0, -1.0},
306                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
307                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
308                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
309                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
310                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
311                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
312                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
313                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0));
314         break;
315       case 13:
316         spaceGroup =
317             new SpaceGroup(
318                 13,
319                 4,
320                 4,
321                 "P2/c",
322                 "PG2/m",
323                 "P 1 2/c 1",
324                 MONOCLINIC,
325                 MONOCLINIC_LATTICE,
326                 L121,
327                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
328                 new double[] {-1.0, -1.0, -1.0},
329                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
330                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
331                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
332                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12));
333         break;
334       case 14:
335         spaceGroup =
336             new SpaceGroup(
337                 14,
338                 4,
339                 4,
340                 "P21/c",
341                 "PG2/m",
342                 "P 1 21/c 1",
343                 MONOCLINIC,
344                 MONOCLINIC_LATTICE,
345                 L121,
346                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
347                 new double[] {-1.0, -1.0, -1.0},
348                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
349                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
350                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
351                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12));
352         break;
353       case 15:
354         spaceGroup =
355             new SpaceGroup(
356                 15,
357                 8,
358                 4,
359                 "C2/c",
360                 "PG2/m",
361                 "C 1 2/c 1",
362                 MONOCLINIC,
363                 MONOCLINIC_LATTICE,
364                 L121,
365                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
366                 new double[] {-1.0, -1.0, -1.0},
367                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
368                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
369                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
370                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
371                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
372                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
373                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
374                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12));
375         break;
376       case 16:
377         spaceGroup =
378             new SpaceGroup(
379                 16,
380                 4,
381                 4,
382                 "P222",
383                 "PG222",
384                 "P 2 2 2",
385                 ORTHORHOMBIC,
386                 ORTHORHOMBIC_LATTICE,
387                 L222,
388                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
389                 new double[] {f12, f12, 1.0},
390                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
391                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
392                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
393                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0));
394         break;
395       case 17:
396         spaceGroup =
397             new SpaceGroup(
398                 17,
399                 4,
400                 4,
401                 "P2221",
402                 "PG222",
403                 "P 2 2 21",
404                 ORTHORHOMBIC,
405                 ORTHORHOMBIC_LATTICE,
406                 L222,
407                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
408                 new double[] {f12, f12, 1.0},
409                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
410                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
411                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
412                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0));
413         break;
414       case 18:
415         spaceGroup =
416             new SpaceGroup(
417                 18,
418                 4,
419                 4,
420                 "P21212",
421                 "PG222",
422                 "P 21 21 2",
423                 ORTHORHOMBIC,
424                 ORTHORHOMBIC_LATTICE,
425                 L222,
426                 new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LT},
427                 new double[] {1.0, f14, 1.0},
428                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
429                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
430                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
431                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
432         break;
433       case 19:
434         spaceGroup =
435             new SpaceGroup(
436                 19,
437                 4,
438                 4,
439                 "P212121",
440                 "PG222",
441                 "P 21 21 21",
442                 ORTHORHOMBIC,
443                 ORTHORHOMBIC_LATTICE,
444                 L222,
445                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
446                 new double[] {1.0, 1.0, f14},
447                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
448                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
449                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
450                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
451         break;
452       case 20:
453         spaceGroup =
454             new SpaceGroup(
455                 20,
456                 8,
457                 4,
458                 "C2221",
459                 "PG222",
460                 "C 2 2 21",
461                 ORTHORHOMBIC,
462                 ORTHORHOMBIC_LATTICE,
463                 L222,
464                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
465                 new double[] {f12, f14, 1.0},
466                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
467                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
468                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
469                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
470                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
471                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
472                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
473                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
474         break;
475       case 21:
476         spaceGroup =
477             new SpaceGroup(
478                 21,
479                 8,
480                 4,
481                 "C222",
482                 "PG222",
483                 "C 2 2 2",
484                 ORTHORHOMBIC,
485                 ORTHORHOMBIC_LATTICE,
486                 L222,
487                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
488                 new double[] {f12, f14, 1.0},
489                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
490                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
491                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
492                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
493                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
494                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
495                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
496                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
497         break;
498       case 22:
499         spaceGroup =
500             new SpaceGroup(
501                 22,
502                 16,
503                 4,
504                 "F222",
505                 "PG222",
506                 "F 2 2 2",
507                 ORTHORHOMBIC,
508                 ORTHORHOMBIC_LATTICE,
509                 L222,
510                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
511                 new double[] {f14, f14, 1.0},
512                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
513                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
514                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
515                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
516                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
517                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
518                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
519                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
520                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
521                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
522                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
523                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
524                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
525                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
526                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
527                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0));
528         break;
529       case 23:
530         spaceGroup =
531             new SpaceGroup(
532                 23,
533                 8,
534                 4,
535                 "I222",
536                 "PG222",
537                 "I 2 2 2",
538                 ORTHORHOMBIC,
539                 ORTHORHOMBIC_LATTICE,
540                 L222,
541                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
542                 new double[] {f12, f14, 1.0},
543                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
544                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
545                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
546                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
547                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
548                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
549                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
550                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12));
551         break;
552       case 24:
553         spaceGroup =
554             new SpaceGroup(
555                 24,
556                 8,
557                 4,
558                 "I212121",
559                 "PG222",
560                 "I 21 21 21",
561                 ORTHORHOMBIC,
562                 ORTHORHOMBIC_LATTICE,
563                 L222,
564                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
565                 new double[] {f12, f12, f12},
566                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
567                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
568                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
569                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
570                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
571                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
572                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
573                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12));
574         break;
575       case 25:
576         spaceGroup =
577             new SpaceGroup(
578                 25,
579                 4,
580                 4,
581                 "Pmm2",
582                 "PGmm2",
583                 "P m m 2",
584                 ORTHORHOMBIC,
585                 ORTHORHOMBIC_LATTICE,
586                 L222,
587                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
588                 new double[] {-1.0, -1.0, -1.0},
589                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
590                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
591                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
592                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
593         break;
594       case 26:
595         spaceGroup =
596             new SpaceGroup(
597                 26,
598                 4,
599                 4,
600                 "Pmc21",
601                 "PGmm2",
602                 "P m c 21",
603                 ORTHORHOMBIC,
604                 ORTHORHOMBIC_LATTICE,
605                 L222,
606                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
607                 new double[] {-1.0, -1.0, -1.0},
608                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
609                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
610                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
611                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
612         break;
613       case 27:
614         spaceGroup =
615             new SpaceGroup(
616                 27,
617                 4,
618                 4,
619                 "Pcc2",
620                 "PGmm2",
621                 "P c c 2",
622                 ORTHORHOMBIC,
623                 ORTHORHOMBIC_LATTICE,
624                 L222,
625                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
626                 new double[] {-1.0, -1.0, -1.0},
627                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
628                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
629                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
630                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
631         break;
632       case 28:
633         spaceGroup =
634             new SpaceGroup(
635                 28,
636                 4,
637                 4,
638                 "Pma2",
639                 "PGmm2",
640                 "P m a 2",
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_0_0_0),
648                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
649                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0));
650         break;
651       case 29:
652         spaceGroup =
653             new SpaceGroup(
654                 29,
655                 4,
656                 4,
657                 "Pca21",
658                 "PGmm2",
659                 "P c a 21",
660                 ORTHORHOMBIC,
661                 ORTHORHOMBIC_LATTICE,
662                 L222,
663                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
664                 new double[] {-1.0, -1.0, -1.0},
665                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
666                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
667                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
668                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
669         break;
670       case 30:
671         spaceGroup =
672             new SpaceGroup(
673                 30,
674                 4,
675                 4,
676                 "Pnc2",
677                 "PGmm2",
678                 "P n c 2",
679                 ORTHORHOMBIC,
680                 ORTHORHOMBIC_LATTICE,
681                 L222,
682                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
683                 new double[] {-1.0, -1.0, -1.0},
684                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
685                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
686                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
687                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
688         break;
689       case 31:
690         spaceGroup =
691             new SpaceGroup(
692                 31,
693                 4,
694                 4,
695                 "Pmn21",
696                 "PGmm2",
697                 "P m n 21",
698                 ORTHORHOMBIC,
699                 ORTHORHOMBIC_LATTICE,
700                 L222,
701                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
702                 new double[] {-1.0, -1.0, -1.0},
703                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
704                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
705                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
706                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
707         break;
708       case 32:
709         spaceGroup =
710             new SpaceGroup(
711                 32,
712                 4,
713                 4,
714                 "Pba2",
715                 "PGmm2",
716                 "P b a 2",
717                 ORTHORHOMBIC,
718                 ORTHORHOMBIC_LATTICE,
719                 L222,
720                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
721                 new double[] {-1.0, -1.0, -1.0},
722                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
723                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
724                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
725                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
726         break;
727       case 33:
728         spaceGroup =
729             new SpaceGroup(
730                 33,
731                 4,
732                 4,
733                 "Pna21",
734                 "PGmm2",
735                 "P n a 21",
736                 ORTHORHOMBIC,
737                 ORTHORHOMBIC_LATTICE,
738                 L222,
739                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
740                 new double[] {-1.0, -1.0, -1.0},
741                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
742                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
743                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
744                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
745         break;
746       case 34:
747         spaceGroup =
748             new SpaceGroup(
749                 34,
750                 4,
751                 4,
752                 "Pnn2",
753                 "PGmm2",
754                 "P n n 2",
755                 ORTHORHOMBIC,
756                 ORTHORHOMBIC_LATTICE,
757                 L222,
758                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
759                 new double[] {-1.0, -1.0, -1.0},
760                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
761                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_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         break;
765       case 35:
766         spaceGroup =
767             new SpaceGroup(
768                 35,
769                 8,
770                 4,
771                 "Cmm2",
772                 "PGmm2",
773                 "C m m 2",
774                 ORTHORHOMBIC,
775                 ORTHORHOMBIC_LATTICE,
776                 L222,
777                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
778                 new double[] {-1.0, -1.0, -1.0},
779                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
780                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
781                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
782                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
783                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
784                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
785                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
786                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
787         break;
788       case 36:
789         spaceGroup =
790             new SpaceGroup(
791                 36,
792                 8,
793                 4,
794                 "Cmc21",
795                 "PGmm2",
796                 "C m c 21",
797                 ORTHORHOMBIC,
798                 ORTHORHOMBIC_LATTICE,
799                 L222,
800                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
801                 new double[] {-1.0, -1.0, -1.0},
802                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
803                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_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_0),
806                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
807                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
808                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
809                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
810         break;
811       case 37:
812         spaceGroup =
813             new SpaceGroup(
814                 37,
815                 8,
816                 4,
817                 "Ccc2",
818                 "PGmm2",
819                 "C c c 2",
820                 ORTHORHOMBIC,
821                 ORTHORHOMBIC_LATTICE,
822                 L222,
823                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
824                 new double[] {-1.0, -1.0, -1.0},
825                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
826                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
827                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
828                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
829                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
830                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
831                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
832                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
833         break;
834       case 38:
835         spaceGroup =
836             new SpaceGroup(
837                 38,
838                 8,
839                 4,
840                 "Amm2",
841                 "PGmm2",
842                 "A m m 2",
843                 ORTHORHOMBIC,
844                 ORTHORHOMBIC_LATTICE,
845                 L222,
846                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
847                 new double[] {-1.0, -1.0, -1.0},
848                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
849                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
850                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
851                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
852                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
853                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
854                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
855                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
856         break;
857       case 39:
858         spaceGroup =
859             new SpaceGroup(
860                 39,
861                 8,
862                 4,
863                 "Abm2",
864                 "PGmm2",
865                 "A b m 2",
866                 ORTHORHOMBIC,
867                 ORTHORHOMBIC_LATTICE,
868                 L222,
869                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
870                 new double[] {-1.0, -1.0, -1.0},
871                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
872                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
873                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
874                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_0),
875                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
876                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
877                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
878                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
879         break;
880       case 40:
881         spaceGroup =
882             new SpaceGroup(
883                 40,
884                 8,
885                 4,
886                 "Ama2",
887                 "PGmm2",
888                 "A m a 2",
889                 ORTHORHOMBIC,
890                 ORTHORHOMBIC_LATTICE,
891                 L222,
892                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
893                 new double[] {-1.0, -1.0, -1.0},
894                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
895                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
896                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
897                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0),
898                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
899                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
900                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
901                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
902         break;
903       case 41:
904         spaceGroup =
905             new SpaceGroup(
906                 41,
907                 8,
908                 4,
909                 "Aba2",
910                 "PGmm2",
911                 "A b a 2",
912                 ORTHORHOMBIC,
913                 ORTHORHOMBIC_LATTICE,
914                 L222,
915                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
916                 new double[] {-1.0, -1.0, -1.0},
917                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
918                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
919                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
920                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
921                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
922                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
923                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
924                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
925         break;
926       case 42:
927         spaceGroup =
928             new SpaceGroup(
929                 42,
930                 16,
931                 4,
932                 "Fmm2",
933                 "PGmm2",
934                 "F m m 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_0_0_0),
943                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
944                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
945                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
946                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
947                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
948                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
949                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
950                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
951                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
952                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
953                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
954                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
955                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
956         break;
957       case 43:
958         spaceGroup =
959             new SpaceGroup(
960                 43,
961                 16,
962                 4,
963                 "Fdd2",
964                 "PGmm2",
965                 "F d d 2",
966                 ORTHORHOMBIC,
967                 ORTHORHOMBIC_LATTICE,
968                 L222,
969                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
970                 new double[] {-1.0, -1.0, -1.0},
971                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
972                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
973                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
974                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
975                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
976                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
977                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
978                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
979                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
980                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
981                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
982                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
983                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
984                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
985                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
986                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14));
987         break;
988       case 44:
989         spaceGroup =
990             new SpaceGroup(
991                 44,
992                 8,
993                 4,
994                 "Imm2",
995                 "PGmm2",
996                 "I m m 2",
997                 ORTHORHOMBIC,
998                 ORTHORHOMBIC_LATTICE,
999                 L222,
1000                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1001                 new double[] {-1.0, -1.0, -1.0},
1002                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1003                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1004                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1005                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1006                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1007                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1008                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1009                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1010         break;
1011       case 45:
1012         spaceGroup =
1013             new SpaceGroup(
1014                 45,
1015                 8,
1016                 4,
1017                 "Iba2",
1018                 "PGmm2",
1019                 "I b a 2",
1020                 ORTHORHOMBIC,
1021                 ORTHORHOMBIC_LATTICE,
1022                 L222,
1023                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1024                 new double[] {-1.0, -1.0, -1.0},
1025                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1026                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1027                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1028                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
1029                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1030                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1031                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1032                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1033         break;
1034       case 46:
1035         spaceGroup =
1036             new SpaceGroup(
1037                 46,
1038                 8,
1039                 4,
1040                 "Ima2",
1041                 "PGmm2",
1042                 "I m a 2",
1043                 ORTHORHOMBIC,
1044                 ORTHORHOMBIC_LATTICE,
1045                 L222,
1046                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1047                 new double[] {-1.0, -1.0, -1.0},
1048                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1049                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1050                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
1051                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0),
1052                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1053                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1054                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1055                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
1056         break;
1057       case 47:
1058         spaceGroup =
1059             new SpaceGroup(
1060                 47,
1061                 8,
1062                 8,
1063                 "Pmmm",
1064                 "PGmmm",
1065                 "P 2/m 2/m 2/m",
1066                 ORTHORHOMBIC,
1067                 ORTHORHOMBIC_LATTICE,
1068                 L222,
1069                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1070                 new double[] {f12, f12, f12},
1071                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1072                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1073                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1074                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1075                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1076                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1077                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1078                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
1079         break;
1080       case 48:
1081         spaceGroup =
1082             new SpaceGroup(
1083                 48,
1084                 8,
1085                 8,
1086                 "Pnnn",
1087                 "PGmmm",
1088                 "P 2/n 2/n 2/n",
1089                 ORTHORHOMBIC,
1090                 ORTHORHOMBIC_LATTICE,
1091                 L222,
1092                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1093                 new double[] {-1.0, -1.0, -1.0},
1094                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1095                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1096                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1097                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1098                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1099                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1100                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1101                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1102         break;
1103       case 49:
1104         spaceGroup =
1105             new SpaceGroup(
1106                 49,
1107                 8,
1108                 8,
1109                 "Pccm",
1110                 "PGmmm",
1111                 "P 2/c 2/c 2/m",
1112                 ORTHORHOMBIC,
1113                 ORTHORHOMBIC_LATTICE,
1114                 L222,
1115                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1116                 new double[] {-1.0, -1.0, -1.0},
1117                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1118                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1119                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1120                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1121                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1122                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1123                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1124                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1125         break;
1126       case 50:
1127         spaceGroup =
1128             new SpaceGroup(
1129                 50,
1130                 8,
1131                 8,
1132                 "Pban",
1133                 "PGmmm",
1134                 "P 2/b 2/a 2/n",
1135                 ORTHORHOMBIC,
1136                 ORTHORHOMBIC_LATTICE,
1137                 L222,
1138                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1139                 new double[] {-1.0, -1.0, -1.0},
1140                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1141                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1142                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1143                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1144                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1145                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1146                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1147                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1148         break;
1149       default:
1150     }
1151     return spaceGroup;
1152   }
1153 
1154   /**
1155    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
1156    * specification limit on method size is exceeded.
1157    *
1158    * @param num input parameter (between 51 and 100)
1159    * @return the selected SpaceGroup
1160    */
1161   static SpaceGroup getSpaceGroup2(int num) {
1162     SpaceGroup spaceGroup = null;
1163     switch (num) {
1164       case 51:
1165         spaceGroup =
1166             new SpaceGroup(
1167                 51,
1168                 8,
1169                 8,
1170                 "Pmma",
1171                 "PGmmm",
1172                 "P 21/m 2/m 2/a",
1173                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1174                 L222,
1175                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1176                 new double[] {-1.0, -1.0, -1.0},
1177                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1178                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1179                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1180                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_0),
1181                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1182                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1183                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1184                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_0));
1185         break;
1186       case 52:
1187         spaceGroup =
1188             new SpaceGroup(
1189                 52,
1190                 8,
1191                 8,
1192                 "Pnna",
1193                 "PGmmm",
1194                 "P 2/n 21/n 2/a",
1195                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1196                 L222,
1197                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1198                 new double[] {-1.0, -1.0, -1.0},
1199                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1200                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1201                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1202                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
1203                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1204                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1205                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1206                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
1207         break;
1208       case 53:
1209         spaceGroup =
1210             new SpaceGroup(
1211                 53,
1212                 8,
1213                 8,
1214                 "Pmna",
1215                 "PGmmm",
1216                 "P 2/m 2/n 21/a",
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_12_0_12),
1223                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1224                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1225                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1226                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1227                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1228                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
1229         break;
1230       case 54:
1231         spaceGroup =
1232             new SpaceGroup(
1233                 54,
1234                 8,
1235                 8,
1236                 "Pcca",
1237                 "PGmmm",
1238                 "P 21/c 2/c 2/a",
1239                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1240                 L222,
1241                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1242                 new double[] {-1.0, -1.0, -1.0},
1243                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1244                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1245                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1246                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1247                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1248                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1249                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1250                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
1251         break;
1252       case 55:
1253         spaceGroup =
1254             new SpaceGroup(
1255                 55,
1256                 8,
1257                 8,
1258                 "Pbam",
1259                 "PGmmm",
1260                 "P 21/b 21/a 2/m",
1261                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1262                 L222,
1263                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1264                 new double[] {-1.0, -1.0, -1.0},
1265                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1266                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1267                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1268                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1269                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1270                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1271                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1272                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1273         break;
1274       case 56:
1275         spaceGroup =
1276             new SpaceGroup(
1277                 56,
1278                 8,
1279                 8,
1280                 "Pccn",
1281                 "PGmmm",
1282                 "P 21/c 21/c 2/n",
1283                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1284                 L222,
1285                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1286                 new double[] {-1.0, -1.0, -1.0},
1287                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1288                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1289                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1290                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1291                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1292                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1293                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1294                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12));
1295         break;
1296       case 57:
1297         spaceGroup =
1298             new SpaceGroup(
1299                 57,
1300                 8,
1301                 8,
1302                 "Pbcm",
1303                 "PGmmm",
1304                 "P 2/b 21/c 21/m",
1305                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1306                 L222,
1307                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1308                 new double[] {-1.0, -1.0, -1.0},
1309                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1310                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1311                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1312                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_0),
1313                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1314                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
1315                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1316                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_0));
1317         break;
1318       case 58:
1319         spaceGroup =
1320             new SpaceGroup(
1321                 58,
1322                 8,
1323                 8,
1324                 "Pnnm",
1325                 "PGmmm",
1326                 "P 21/n 21/n 2/m",
1327                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1328                 L222,
1329                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1330                 new double[] {-1.0, -1.0, -1.0},
1331                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1332                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1333                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1334                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1335                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1336                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1337                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1338                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1339         break;
1340       case 59:
1341         spaceGroup =
1342             new SpaceGroup(
1343                 59,
1344                 8,
1345                 8,
1346                 "Pmmn",
1347                 "PGmmm",
1348                 "P 21/m 21/m 2/n",
1349                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1350                 L222,
1351                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1352                 new double[] {-1.0, -1.0, -1.0},
1353                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1354                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1355                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1356                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1357                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1358                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1359                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1360                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0));
1361         break;
1362       case 60:
1363         spaceGroup =
1364             new SpaceGroup(
1365                 60,
1366                 8,
1367                 8,
1368                 "Pbcn",
1369                 "PGmmm",
1370                 "P 21/b 2/c 21/n",
1371                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1372                 L222,
1373                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1374                 new double[] {-1.0, -1.0, -1.0},
1375                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1376                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1377                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1378                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1379                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1380                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1381                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1382                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1383         break;
1384       case 61:
1385         spaceGroup =
1386             new SpaceGroup(
1387                 61,
1388                 8,
1389                 8,
1390                 "Pbca",
1391                 "PGmmm",
1392                 "P 21/b 21/c 21/a",
1393                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1394                 L222,
1395                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1396                 new double[] {-1.0, -1.0, -1.0},
1397                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1398                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1399                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1400                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1401                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1402                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1403                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1404                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1405         break;
1406       case 62:
1407         spaceGroup =
1408             new SpaceGroup(
1409                 62,
1410                 8,
1411                 8,
1412                 "Pnma",
1413                 "PGmmm",
1414                 "P 21/n 21/m 21/a",
1415                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1416                 L222,
1417                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1418                 new double[] {-1.0, -1.0, -1.0},
1419                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1420                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1421                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
1422                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1423                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1424                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1425                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
1426                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1427         break;
1428       case 63:
1429         spaceGroup =
1430             new SpaceGroup(
1431                 63,
1432                 16,
1433                 8,
1434                 "Cmcm",
1435                 "PGmmm",
1436                 "C 2/m 2/c 21/m",
1437                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1438                 L222,
1439                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1440                 new double[] {-1.0, -1.0, -1.0},
1441                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1442                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1443                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1444                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1445                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1446                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
1447                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1448                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1449                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1450                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1451                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1452                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1453                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1454                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1455                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1456                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1457         break;
1458       case 64:
1459         spaceGroup =
1460             new SpaceGroup(
1461                 64,
1462                 16,
1463                 8,
1464                 "Cmca",
1465                 "PGmmm",
1466                 "C 2/m 2/c 21/a",
1467                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1468                 L222,
1469                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1470                 new double[] {-1.0, -1.0, -1.0},
1471                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1472                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
1473                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1474                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1475                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1476                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
1477                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1478                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1479                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1480                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1481                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1482                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1483                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1484                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1485                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1486                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1487         break;
1488       case 65:
1489         spaceGroup =
1490             new SpaceGroup(
1491                 65,
1492                 16,
1493                 8,
1494                 "Cmmm",
1495                 "PGmmm",
1496                 "C 2/m 2/m 2/m",
1497                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1498                 L222,
1499                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1500                 new double[] {f12, f14, f12},
1501                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1502                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1503                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1504                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1505                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1506                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1507                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1508                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1509                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1510                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1511                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1512                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1513                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1514                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1515                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1516                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1517         break;
1518       case 66:
1519         spaceGroup =
1520             new SpaceGroup(
1521                 66,
1522                 16,
1523                 8,
1524                 "Cccm",
1525                 "PGmmm",
1526                 "C 2/c 2/c 2/m",
1527                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1528                 L222,
1529                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1530                 new double[] {-1.0, -1.0, -1.0},
1531                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1532                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1533                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1534                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1535                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1536                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1537                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1538                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
1539                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1540                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1541                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1542                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1543                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1544                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1545                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1546                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1547         break;
1548       case 67:
1549         spaceGroup =
1550             new SpaceGroup(
1551                 67,
1552                 16,
1553                 8,
1554                 "Cmma",
1555                 "PGmmm",
1556                 "C 2/m 2/m 2/a",
1557                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1558                 L222,
1559                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1560                 new double[] {-1.0, -1.0, -1.0},
1561                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1562                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
1563                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
1564                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1565                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1566                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
1567                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
1568                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1569                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1570                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_0),
1571                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
1572                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1573                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1574                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_0),
1575                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
1576                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1577         break;
1578       case 68:
1579         spaceGroup =
1580             new SpaceGroup(
1581                 68,
1582                 16,
1583                 8,
1584                 "Ccca",
1585                 "PGmmm",
1586                 "C 2/c 2/c 2/a",
1587                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1588                 L222,
1589                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1590                 new double[] {-1.0, -1.0, -1.0},
1591                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1592                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1593                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1594                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1595                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
1596                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1597                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1598                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
1599                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1600                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1601                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1602                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1603                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
1604                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
1605                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1606                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12));
1607         break;
1608       case 69:
1609         spaceGroup =
1610             new SpaceGroup(
1611                 69,
1612                 32,
1613                 8,
1614                 "Fmmm",
1615                 "PGmmm",
1616                 "F 2/m 2/m 2/m",
1617                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1618                 L222,
1619                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1620                 new double[] {f14, f14, f12},
1621                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1622                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1623                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1624                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1625                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1626                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1627                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1628                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1629                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
1630                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
1631                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1632                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
1633                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
1634                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
1635                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1636                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
1637                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
1638                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1639                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1640                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1641                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
1642                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1643                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1644                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
1645                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1646                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1647                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1648                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1649                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
1650                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
1651                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1652                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0));
1653         break;
1654       case 70:
1655         spaceGroup =
1656             new SpaceGroup(
1657                 70,
1658                 32,
1659                 8,
1660                 "Fddd",
1661                 "PGmmm",
1662                 "F 2/d 2/d 2/d",
1663                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1664                 L222,
1665                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1666                 new double[] {-1.0, -1.0, -1.0},
1667                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1668                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1669                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1670                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1671                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_14_14),
1672                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_14_14),
1673                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
1674                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
1675                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
1676                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
1677                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1678                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
1679                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_34_34),
1680                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_34_34),
1681                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
1682                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
1683                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
1684                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1685                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1686                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
1687                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_14_34),
1688                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_14_34),
1689                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
1690                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
1691                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
1692                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
1693                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1694                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1695                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_34_14),
1696                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_34_14),
1697                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
1698                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14));
1699         break;
1700       case 71:
1701         spaceGroup =
1702             new SpaceGroup(
1703                 71,
1704                 16,
1705                 8,
1706                 "Immm",
1707                 "PGmmm",
1708                 "I 2/m 2/m 2/m",
1709                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1710                 L222,
1711                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1712                 new double[] {f12, f14, f12},
1713                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1714                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1715                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
1716                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1717                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1718                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1719                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
1720                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1721                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1722                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1723                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
1724                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1725                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1726                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1727                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
1728                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1729         break;
1730       case 72:
1731         spaceGroup =
1732             new SpaceGroup(
1733                 72,
1734                 16,
1735                 8,
1736                 "Ibam",
1737                 "PGmmm",
1738                 "I 2/b 2/a 2/m",
1739                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1740                 L222,
1741                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1742                 new double[] {-1.0, -1.0, -1.0},
1743                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1744                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1745                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
1746                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1747                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1748                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1749                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
1750                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
1751                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1752                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1753                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
1754                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1755                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1756                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
1757                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
1758                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1759         break;
1760       case 73:
1761         spaceGroup =
1762             new SpaceGroup(
1763                 73,
1764                 16,
1765                 8,
1766                 "Ibca",
1767                 "PGmmm",
1768                 "I 21/b 21/c 21/a",
1769                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1770                 L222,
1771                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1772                 new double[] {-1.0, -1.0, -1.0},
1773                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1774                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1775                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
1776                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
1777                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1778                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1779                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
1780                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
1781                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1782                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
1783                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
1784                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
1785                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1786                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
1787                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
1788                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12));
1789         break;
1790       case 74:
1791         spaceGroup =
1792             new SpaceGroup(
1793                 74,
1794                 16,
1795                 8,
1796                 "Imma",
1797                 "PGmmm",
1798                 "I 21/m 21/m 21/a",
1799                 ORTHORHOMBIC, ORTHORHOMBIC_LATTICE,
1800                 L222,
1801                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1802                 new double[] {-1.0, -1.0, -1.0},
1803                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1804                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
1805                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_0),
1806                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
1807                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1808                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
1809                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_0),
1810                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
1811                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1812                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
1813                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
1814                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
1815                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
1816                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
1817                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
1818                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12));
1819         break;
1820       case 75:
1821         spaceGroup =
1822             new SpaceGroup(
1823                 75,
1824                 4,
1825                 4,
1826                 "P4",
1827                 "PG4",
1828                 "P 4",
1829                 TETRAGONAL, TETRAGONAL_LATTICE,
1830                 L114,
1831                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
1832                 new double[] {f12, f12, 1.0},
1833                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1834                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1835                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1836                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0));
1837         break;
1838       case 76:
1839         spaceGroup =
1840             new SpaceGroup(
1841                 76,
1842                 4,
1843                 4,
1844                 "P41",
1845                 "PG4",
1846                 "P 41",
1847                 TETRAGONAL, TETRAGONAL_LATTICE,
1848                 L114,
1849                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1850                 new double[] {1.0, 1.0, f14},
1851                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1852                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1853                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_14),
1854                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_34));
1855         break;
1856       case 77:
1857         spaceGroup =
1858             new SpaceGroup(
1859                 77,
1860                 4,
1861                 4,
1862                 "P42",
1863                 "PG4",
1864                 "P 42",
1865                 TETRAGONAL, TETRAGONAL_LATTICE,
1866                 L114,
1867                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
1868                 new double[] {f12, 1.0, f12},
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_0_0_12),
1872                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12));
1873         break;
1874       case 78:
1875         spaceGroup =
1876             new SpaceGroup(
1877                 78,
1878                 4,
1879                 4,
1880                 "P43",
1881                 "PG4",
1882                 "P 43",
1883                 TETRAGONAL, TETRAGONAL_LATTICE,
1884                 L114,
1885                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1886                 new double[] {1.0, 1.0, f14},
1887                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1888                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
1889                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_34),
1890                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_14));
1891         break;
1892       case 79:
1893         spaceGroup =
1894             new SpaceGroup(
1895                 79,
1896                 8,
1897                 4,
1898                 "I4",
1899                 "PG4",
1900                 "I 4",
1901                 TETRAGONAL, TETRAGONAL_LATTICE,
1902                 L114,
1903                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1904                 new double[] {f12, f12, f12},
1905                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1906                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1907                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1908                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
1909                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1910                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1911                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
1912                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12));
1913         break;
1914       case 80:
1915         spaceGroup =
1916             new SpaceGroup(
1917                 80,
1918                 8,
1919                 4,
1920                 "I41",
1921                 "PG4",
1922                 "I 41",
1923                 TETRAGONAL, TETRAGONAL_LATTICE,
1924                 L114,
1925                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LT},
1926                 new double[] {f12, 1.0, f14},
1927                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1928                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1929                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
1930                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
1931                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1932                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1933                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
1934                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14));
1935         break;
1936       case 81:
1937         spaceGroup =
1938             new SpaceGroup(
1939                 81,
1940                 4,
1941                 4,
1942                 "P-4",
1943                 "PG4bar",
1944                 "P -4",
1945                 TETRAGONAL, TETRAGONAL_LATTICE,
1946                 L114,
1947                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1948                 new double[] {-1.0, -1.0, -1.0},
1949                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1950                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1951                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1952                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1953         break;
1954       case 82:
1955         spaceGroup =
1956             new SpaceGroup(
1957                 82,
1958                 8,
1959                 4,
1960                 "I-4",
1961                 "PG4bar",
1962                 "I -4",
1963                 TETRAGONAL, TETRAGONAL_LATTICE,
1964                 L114,
1965                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
1966                 new double[] {-1.0, -1.0, -1.0},
1967                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1968                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1969                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1970                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
1971                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
1972                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
1973                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
1974                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12));
1975         break;
1976       case 83:
1977         spaceGroup =
1978             new SpaceGroup(
1979                 83,
1980                 8,
1981                 8,
1982                 "P4/m",
1983                 "PG4/m",
1984                 "P 4/m",
1985                 TETRAGONAL, TETRAGONAL_LATTICE,
1986                 L114,
1987                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
1988                 new double[] {f12, f12, f12},
1989                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
1990                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
1991                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
1992                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
1993                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
1994                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
1995                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
1996                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
1997         break;
1998       case 84:
1999         spaceGroup =
2000             new SpaceGroup(
2001                 84,
2002                 8,
2003                 8,
2004                 "P42/m",
2005                 "PG4/m",
2006                 "P 42/m",
2007                 TETRAGONAL, TETRAGONAL_LATTICE,
2008                 L114,
2009                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2010                 new double[] {-1.0, -1.0, -1.0},
2011                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2012                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2013                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2014                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2015                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2016                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2017                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
2018                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12));
2019         break;
2020       case 85:
2021         spaceGroup =
2022             new SpaceGroup(
2023                 85,
2024                 8,
2025                 8,
2026                 "P4/n",
2027                 "PG4/m",
2028                 "P 4/n",
2029                 TETRAGONAL, TETRAGONAL_LATTICE,
2030                 L114,
2031                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2032                 new double[] {-1.0, -1.0, -1.0},
2033                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2034                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2035                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
2036                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
2037                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
2038                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
2039                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2040                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
2041         break;
2042       case 86:
2043         spaceGroup =
2044             new SpaceGroup(
2045                 86,
2046                 8,
2047                 8,
2048                 "P42/n",
2049                 "PG4/m",
2050                 "P 42/n",
2051                 TETRAGONAL, TETRAGONAL_LATTICE,
2052                 L114,
2053                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2054                 new double[] {-1.0, -1.0, -1.0},
2055                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2056                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2057                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2058                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2059                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
2060                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
2061                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2062                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
2063         break;
2064       case 87:
2065         spaceGroup =
2066             new SpaceGroup(
2067                 87,
2068                 16,
2069                 8,
2070                 "I4/m",
2071                 "PG4/m",
2072                 "I 4/m",
2073                 TETRAGONAL, TETRAGONAL_LATTICE,
2074                 L114,
2075                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2076                 new double[] {f12, f12, f14},
2077                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2078                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2079                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2080                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2081                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2082                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2083                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2084                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2085                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2086                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2087                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2088                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2089                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
2090                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
2091                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2092                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12));
2093         break;
2094       case 88:
2095         spaceGroup =
2096             new SpaceGroup(
2097                 88,
2098                 16,
2099                 8,
2100                 "I41/a",
2101                 "PG4/m",
2102                 "I 41/a",
2103                 TETRAGONAL, TETRAGONAL_LATTICE,
2104                 L114,
2105                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2106                 new double[] {-1.0, -1.0, -1.0},
2107                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2108                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2109                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2110                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2111                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_14),
2112                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_34),
2113                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2114                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2115                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2116                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2117                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2118                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2119                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_34),
2120                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_14),
2121                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2122                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0));
2123         break;
2124       case 89:
2125         spaceGroup =
2126             new SpaceGroup(
2127                 89,
2128                 8,
2129                 8,
2130                 "P422",
2131                 "PG422",
2132                 "P 4 2 2",
2133                 TETRAGONAL, TETRAGONAL_LATTICE,
2134                 L224,
2135                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2136                 new double[] {f12, f12, f12},
2137                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2138                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2139                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2140                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2141                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2142                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2143                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2144                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
2145         break;
2146       case 90:
2147         spaceGroup =
2148             new SpaceGroup(
2149                 90,
2150                 8,
2151                 8,
2152                 "P4212",
2153                 "PG422",
2154                 "P 4 21 2",
2155                 TETRAGONAL, TETRAGONAL_LATTICE,
2156                 L224,
2157                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2158                 new double[] {f12, f12, f12},
2159                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2160                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2161                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
2162                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
2163                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
2164                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
2165                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2166                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
2167         break;
2168       case 91:
2169         spaceGroup =
2170             new SpaceGroup(
2171                 91,
2172                 8,
2173                 8,
2174                 "P4122",
2175                 "PG422",
2176                 "P 41 2 2",
2177                 TETRAGONAL, TETRAGONAL_LATTICE,
2178                 L224,
2179                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2180                 new double[] {1.0, 1.0, f18},
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_12),
2183                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_14),
2184                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_34),
2185                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2186                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2187                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_34),
2188                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_14));
2189         break;
2190       case 92:
2191         spaceGroup =
2192             new SpaceGroup(
2193                 92,
2194                 8,
2195                 8,
2196                 "P41212",
2197                 "PG422",
2198                 "P 41 21 2",
2199                 TETRAGONAL, TETRAGONAL_LATTICE,
2200                 L224,
2201                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2202                 new double[] {1.0, 1.0, f18},
2203                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2204                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2205                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_14),
2206                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_34),
2207                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_14),
2208                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_34),
2209                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2210                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2211         break;
2212       case 93:
2213         spaceGroup =
2214             new SpaceGroup(
2215                 93,
2216                 8,
2217                 8,
2218                 "P4222",
2219                 "PG422",
2220                 "P 42 2 2",
2221                 TETRAGONAL, TETRAGONAL_LATTICE,
2222                 L224,
2223                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
2224                 new double[] {f12, 1.0, f14},
2225                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2226                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2227                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2228                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2229                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2230                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2231                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2232                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2233         break;
2234       case 94:
2235         spaceGroup =
2236             new SpaceGroup(
2237                 94,
2238                 8,
2239                 8,
2240                 "P42212",
2241                 "PG422",
2242                 "P 42 21 2",
2243                 TETRAGONAL, TETRAGONAL_LATTICE,
2244                 L224,
2245                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2246                 new double[] {f12, f12, f12},
2247                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2248                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2249                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2250                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2251                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2252                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2253                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2254                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
2255         break;
2256       case 95:
2257         spaceGroup =
2258             new SpaceGroup(
2259                 95,
2260                 8,
2261                 8,
2262                 "P4322",
2263                 "PG422",
2264                 "P 43 2 2",
2265                 TETRAGONAL, TETRAGONAL_LATTICE,
2266                 L224,
2267                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2268                 new double[] {1.0, 1.0, f18},
2269                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2270                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2271                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_34),
2272                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_14),
2273                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2274                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2275                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_14),
2276                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_34));
2277         break;
2278       case 96:
2279         spaceGroup =
2280             new SpaceGroup(
2281                 96,
2282                 8,
2283                 8,
2284                 "P43212",
2285                 "PG422",
2286                 "P 43 21 2",
2287                 TETRAGONAL, TETRAGONAL_LATTICE,
2288                 L224,
2289                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
2290                 new double[] {1.0, 1.0, f18},
2291                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2292                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
2293                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_34),
2294                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_14),
2295                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_34),
2296                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_14),
2297                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2298                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2299         break;
2300       case 97:
2301         spaceGroup =
2302             new SpaceGroup(
2303                 97,
2304                 16,
2305                 8,
2306                 "I422",
2307                 "PG422",
2308                 "I 4 2 2",
2309                 TETRAGONAL, TETRAGONAL_LATTICE,
2310                 L224,
2311                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2312                 new double[] {f12, f12, f14},
2313                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2314                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2315                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2316                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2317                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2318                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2319                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2320                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2321                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2322                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2323                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2324                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2325                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2326                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2327                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2328                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2329         break;
2330       case 98:
2331         spaceGroup =
2332             new SpaceGroup(
2333                 98,
2334                 16,
2335                 8,
2336                 "I4122",
2337                 "PG422",
2338                 "I 41 2 2",
2339                 TETRAGONAL, TETRAGONAL_LATTICE,
2340                 L224,
2341                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
2342                 new double[] {f12, 1.0, f18},
2343                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2344                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2345                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2346                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2347                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_34),
2348                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_14),
2349                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2350                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2351                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2352                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2353                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2354                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2355                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_14),
2356                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_34),
2357                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2358                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2359         break;
2360       case 99:
2361         spaceGroup =
2362             new SpaceGroup(
2363                 99,
2364                 8,
2365                 8,
2366                 "P4mm",
2367                 "PG4mm",
2368                 "P 4 m m",
2369                 TETRAGONAL, TETRAGONAL_LATTICE,
2370                 L224,
2371                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2372                 new double[] {-1.0, -1.0, -1.0},
2373                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2374                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2375                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2376                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2377                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2378                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2379                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2380                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2381         break;
2382       case 100:
2383         spaceGroup =
2384             new SpaceGroup(
2385                 100,
2386                 8,
2387                 8,
2388                 "P4bm",
2389                 "PG4mm",
2390                 "P 4 b m",
2391                 TETRAGONAL, TETRAGONAL_LATTICE,
2392                 L224,
2393                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2394                 new double[] {-1.0, -1.0, -1.0},
2395                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2396                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2397                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2398                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2399                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2400                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2401                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2402                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2403         break;
2404       default:
2405     }
2406     return spaceGroup;
2407   }
2408 
2409   /**
2410    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
2411    * specification limit on method size is exceeded.
2412    *
2413    * @param num input parameter (between 101 and 150)
2414    * @return the selected SpaceGroup
2415    */
2416   static SpaceGroup getSpaceGroup3(int num) {
2417     SpaceGroup spaceGroup = null;
2418     switch (num) {
2419       case 101:
2420         spaceGroup =
2421             new SpaceGroup(
2422                 101,
2423                 8,
2424                 8,
2425                 "P42cm",
2426                 "PG4mm",
2427                 "P 42 c m",
2428                 TETRAGONAL, TETRAGONAL_LATTICE,
2429                 L224,
2430                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2431                 new double[] {-1.0, -1.0, -1.0},
2432                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2433                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2434                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2435                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2436                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2437                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2438                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2439                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2440         break;
2441       case 102:
2442         spaceGroup =
2443             new SpaceGroup(
2444                 102,
2445                 8,
2446                 8,
2447                 "P42nm",
2448                 "PG4mm",
2449                 "P 42 n m",
2450                 TETRAGONAL, TETRAGONAL_LATTICE,
2451                 L224,
2452                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2453                 new double[] {-1.0, -1.0, -1.0},
2454                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2455                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2456                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2457                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2458                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2459                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2460                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2461                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2462         break;
2463       case 103:
2464         spaceGroup =
2465             new SpaceGroup(
2466                 103,
2467                 8,
2468                 8,
2469                 "P4cc",
2470                 "PG4mm",
2471                 "P 4 c c",
2472                 TETRAGONAL, TETRAGONAL_LATTICE,
2473                 L224,
2474                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2475                 new double[] {-1.0, -1.0, -1.0},
2476                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2477                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2478                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2479                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2480                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2481                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2482                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2483                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2484         break;
2485       case 104:
2486         spaceGroup =
2487             new SpaceGroup(
2488                 104,
2489                 8,
2490                 8,
2491                 "P4nc",
2492                 "PG4mm",
2493                 "P 4 n c",
2494                 TETRAGONAL, TETRAGONAL_LATTICE,
2495                 L224,
2496                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2497                 new double[] {-1.0, -1.0, -1.0},
2498                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2499                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2500                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2501                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2502                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2503                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2504                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2505                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2506         break;
2507       case 105:
2508         spaceGroup =
2509             new SpaceGroup(
2510                 105,
2511                 8,
2512                 8,
2513                 "P42mc",
2514                 "PG4mm",
2515                 "P 42 m c",
2516                 TETRAGONAL, TETRAGONAL_LATTICE,
2517                 L224,
2518                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2519                 new double[] {-1.0, -1.0, -1.0},
2520                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2521                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2522                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2523                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2524                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2525                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2526                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2527                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2528         break;
2529       case 106:
2530         spaceGroup =
2531             new SpaceGroup(
2532                 106,
2533                 8,
2534                 8,
2535                 "P42bc",
2536                 "PG4mm",
2537                 "P 42 b c",
2538                 TETRAGONAL, TETRAGONAL_LATTICE,
2539                 L224,
2540                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2541                 new double[] {-1.0, -1.0, -1.0},
2542                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2543                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2544                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
2545                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
2546                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2547                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2548                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2549                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2550         break;
2551       case 107:
2552         spaceGroup =
2553             new SpaceGroup(
2554                 107,
2555                 16,
2556                 8,
2557                 "I4mm",
2558                 "PG4mm",
2559                 "I 4 m m",
2560                 TETRAGONAL, TETRAGONAL_LATTICE,
2561                 L224,
2562                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2563                 new double[] {-1.0, -1.0, -1.0},
2564                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2565                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2566                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2567                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2568                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2569                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2570                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2571                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
2572                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2573                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2574                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2575                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2576                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2577                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2578                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2579                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2580         break;
2581       case 108:
2582         spaceGroup =
2583             new SpaceGroup(
2584                 108,
2585                 16,
2586                 8,
2587                 "I4cm",
2588                 "PG4mm",
2589                 "I 4 c m",
2590                 TETRAGONAL, TETRAGONAL_LATTICE,
2591                 L224,
2592                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2593                 new double[] {-1.0, -1.0, -1.0},
2594                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2595                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2596                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2597                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2598                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2599                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2600                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2601                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
2602                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2603                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2604                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
2605                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
2606                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2607                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2608                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2609                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2610         break;
2611       case 109:
2612         spaceGroup =
2613             new SpaceGroup(
2614                 109,
2615                 16,
2616                 8,
2617                 "I41md",
2618                 "PG4mm",
2619                 "I 41 m d",
2620                 TETRAGONAL, TETRAGONAL_LATTICE,
2621                 L224,
2622                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2623                 new double[] {-1.0, -1.0, -1.0},
2624                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2625                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2626                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2627                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2628                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2629                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2630                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_14),
2631                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_34),
2632                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2633                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2634                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2635                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2636                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2637                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2638                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_34),
2639                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_14));
2640         break;
2641       case 110:
2642         spaceGroup =
2643             new SpaceGroup(
2644                 110,
2645                 16,
2646                 8,
2647                 "I41cd",
2648                 "PG4mm",
2649                 "I 41 c d",
2650                 TETRAGONAL, TETRAGONAL_LATTICE,
2651                 L224,
2652                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2653                 new double[] {-1.0, -1.0, -1.0},
2654                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2655                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2656                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
2657                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
2658                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2659                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2660                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_34),
2661                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_14),
2662                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2663                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2664                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
2665                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
2666                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2667                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2668                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_14),
2669                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_34));
2670         break;
2671       case 111:
2672         spaceGroup =
2673             new SpaceGroup(
2674                 111,
2675                 8,
2676                 8,
2677                 "P-42m",
2678                 "PG4bar2m",
2679                 "P -4 2 m",
2680                 TETRAGONAL, TETRAGONAL_LATTICE,
2681                 L224,
2682                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2683                 new double[] {-1.0, -1.0, -1.0},
2684                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2685                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2686                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2687                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2688                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2689                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2690                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2691                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2692         break;
2693       case 112:
2694         spaceGroup =
2695             new SpaceGroup(
2696                 112,
2697                 8,
2698                 8,
2699                 "P-42c",
2700                 "PG4bar2m",
2701                 "P -4 2 c",
2702                 TETRAGONAL, TETRAGONAL_LATTICE,
2703                 L224,
2704                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2705                 new double[] {-1.0, -1.0, -1.0},
2706                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2707                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2708                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2709                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2710                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
2711                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
2712                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
2713                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
2714         break;
2715       case 113:
2716         spaceGroup =
2717             new SpaceGroup(
2718                 113,
2719                 8,
2720                 8,
2721                 "P-421m",
2722                 "PG4bar2m",
2723                 "P -4 21 m",
2724                 TETRAGONAL, TETRAGONAL_LATTICE,
2725                 L224,
2726                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2727                 new double[] {-1.0, -1.0, -1.0},
2728                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2729                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2730                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2731                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2732                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
2733                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
2734                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
2735                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
2736         break;
2737       case 114:
2738         spaceGroup =
2739             new SpaceGroup(
2740                 114,
2741                 8,
2742                 8,
2743                 "P-421c",
2744                 "PG4bar2m",
2745                 "P -4 21 c",
2746                 TETRAGONAL, TETRAGONAL_LATTICE,
2747                 L224,
2748                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2749                 new double[] {-1.0, -1.0, -1.0},
2750                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2751                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2752                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2753                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2754                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2755                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2756                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2757                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2758         break;
2759       case 115:
2760         spaceGroup =
2761             new SpaceGroup(
2762                 115,
2763                 8,
2764                 8,
2765                 "P-4m2",
2766                 "PG4barm2",
2767                 "P -4 m 2",
2768                 TETRAGONAL, TETRAGONAL_LATTICE,
2769                 L224,
2770                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2771                 new double[] {-1.0, -1.0, -1.0},
2772                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2773                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2774                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2775                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2776                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2777                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2778                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2779                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0));
2780         break;
2781       case 116:
2782         spaceGroup =
2783             new SpaceGroup(
2784                 116,
2785                 8,
2786                 8,
2787                 "P-4c2",
2788                 "PG4barm2",
2789                 "P -4 c 2",
2790                 TETRAGONAL, TETRAGONAL_LATTICE,
2791                 L224,
2792                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2793                 new double[] {-1.0, -1.0, -1.0},
2794                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2795                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2796                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2797                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2798                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2799                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2800                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2801                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12));
2802         break;
2803       case 117:
2804         spaceGroup =
2805             new SpaceGroup(
2806                 117,
2807                 8,
2808                 8,
2809                 "P-4b2",
2810                 "PG4barm2",
2811                 "P -4 b 2",
2812                 TETRAGONAL, TETRAGONAL_LATTICE,
2813                 L224,
2814                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2815                 new double[] {-1.0, -1.0, -1.0},
2816                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2817                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2818                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2819                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2820                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2821                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2822                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
2823                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0));
2824         break;
2825       case 118:
2826         spaceGroup =
2827             new SpaceGroup(
2828                 118,
2829                 8,
2830                 8,
2831                 "P-4n2",
2832                 "PG4barm2",
2833                 "P -4 n 2",
2834                 TETRAGONAL, TETRAGONAL_LATTICE,
2835                 L224,
2836                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2837                 new double[] {-1.0, -1.0, -1.0},
2838                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2839                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2840                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2841                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2842                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2843                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2844                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2845                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2846         break;
2847       case 119:
2848         spaceGroup =
2849             new SpaceGroup(
2850                 119,
2851                 16,
2852                 8,
2853                 "I-4m2",
2854                 "PG4barm2",
2855                 "I -4 m 2",
2856                 TETRAGONAL, TETRAGONAL_LATTICE,
2857                 L224,
2858                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2859                 new double[] {-1.0, -1.0, -1.0},
2860                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2861                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2862                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2863                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2864                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2865                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2866                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2867                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2868                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2869                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2870                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2871                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2872                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
2873                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
2874                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
2875                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12));
2876         break;
2877       case 120:
2878         spaceGroup =
2879             new SpaceGroup(
2880                 120,
2881                 16,
2882                 8,
2883                 "I-4c2",
2884                 "PG4barm2",
2885                 "I -4 c 2",
2886                 TETRAGONAL, TETRAGONAL_LATTICE,
2887                 L224,
2888                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2889                 new double[] {-1.0, -1.0, -1.0},
2890                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2891                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2892                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2893                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2894                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
2895                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
2896                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
2897                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
2898                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2899                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2900                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2901                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2902                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
2903                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
2904                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
2905                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0));
2906         break;
2907       case 121:
2908         spaceGroup =
2909             new SpaceGroup(
2910                 121,
2911                 16,
2912                 8,
2913                 "I-42m",
2914                 "PG4bar2m",
2915                 "I -4 2 m",
2916                 TETRAGONAL, TETRAGONAL_LATTICE,
2917                 L224,
2918                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2919                 new double[] {-1.0, -1.0, -1.0},
2920                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2921                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2922                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2923                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2924                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2925                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2926                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2927                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
2928                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2929                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2930                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2931                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2932                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
2933                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
2934                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
2935                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
2936         break;
2937       case 122:
2938         spaceGroup =
2939             new SpaceGroup(
2940                 122,
2941                 16,
2942                 8,
2943                 "I-42d",
2944                 "PG4bar2m",
2945                 "I -4 2 d",
2946                 TETRAGONAL, TETRAGONAL_LATTICE,
2947                 L224,
2948                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
2949                 new double[] {-1.0, -1.0, -1.0},
2950                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2951                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2952                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2953                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2954                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_34),
2955                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_34),
2956                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_34),
2957                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_34),
2958                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
2959                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
2960                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
2961                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
2962                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_14),
2963                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_14),
2964                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_14),
2965                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_14));
2966         break;
2967       case 123:
2968         spaceGroup =
2969             new SpaceGroup(
2970                 123,
2971                 16,
2972                 16,
2973                 "P4/mmm",
2974                 "PG4/mmm",
2975                 "P 4/m 2/m 2/m",
2976                 TETRAGONAL, TETRAGONAL_LATTICE,
2977                 L224,
2978                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
2979                 new double[] {f12, f12, f12},
2980                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
2981                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
2982                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
2983                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
2984                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
2985                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
2986                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
2987                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
2988                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
2989                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
2990                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
2991                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
2992                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
2993                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
2994                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
2995                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
2996         break;
2997       case 124:
2998         spaceGroup =
2999             new SpaceGroup(
3000                 124,
3001                 16,
3002                 16,
3003                 "P4/mcc",
3004                 "PG4/mmm",
3005                 "P 4/m 2/c 2/c",
3006                 TETRAGONAL, TETRAGONAL_LATTICE,
3007                 L224,
3008                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3009                 new double[] {-1.0, -1.0, -1.0},
3010                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3011                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3012                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3013                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3014                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
3015                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
3016                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3017                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3018                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3019                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3020                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3021                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3022                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3023                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3024                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3025                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
3026         break;
3027       case 125:
3028         spaceGroup =
3029             new SpaceGroup(
3030                 125,
3031                 16,
3032                 16,
3033                 "P4/nbm",
3034                 "PG4/mmm",
3035                 "P 4/n 2/b 2/m",
3036                 TETRAGONAL, TETRAGONAL_LATTICE,
3037                 L224,
3038                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3039                 new double[] {-1.0, -1.0, -1.0},
3040                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3041                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3042                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3043                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3044                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3045                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3046                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3047                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3048                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
3049                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
3050                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_0),
3051                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_0),
3052                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3053                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3054                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3055                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3056         break;
3057       case 126:
3058         spaceGroup =
3059             new SpaceGroup(
3060                 126,
3061                 16,
3062                 16,
3063                 "P4/nnc",
3064                 "PG4/mmm",
3065                 "P 4/n 2/n 2/c",
3066                 TETRAGONAL, TETRAGONAL_LATTICE,
3067                 L224,
3068                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3069                 new double[] {-1.0, -1.0, -1.0},
3070                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3071                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3072                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3073                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3074                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3075                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3076                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3077                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3078                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3079                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3080                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3081                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3082                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3083                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3084                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3085                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3086         break;
3087       case 127:
3088         spaceGroup =
3089             new SpaceGroup(
3090                 127,
3091                 16,
3092                 16,
3093                 "P4/mbm",
3094                 "PG4/mmm",
3095                 "P 4/m 21/b 2/m",
3096                 TETRAGONAL, TETRAGONAL_LATTICE,
3097                 L224,
3098                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3099                 new double[] {-1.0, -1.0, -1.0},
3100                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3101                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3102                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3103                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3104                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3105                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3106                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3107                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3108                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3109                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3110                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3111                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3112                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3113                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3114                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3115                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3116         break;
3117       case 128:
3118         spaceGroup =
3119             new SpaceGroup(
3120                 128,
3121                 16,
3122                 16,
3123                 "P4/mnc",
3124                 "PG4/mmm",
3125                 "P 4/m 21/n 2/c",
3126                 TETRAGONAL, TETRAGONAL_LATTICE,
3127                 L224,
3128                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3129                 new double[] {-1.0, -1.0, -1.0},
3130                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3131                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3132                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3133                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3134                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3135                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3136                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3137                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3138                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3139                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3140                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3141                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3142                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3143                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3144                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3145                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3146         break;
3147       case 129:
3148         spaceGroup =
3149             new SpaceGroup(
3150                 129,
3151                 16,
3152                 16,
3153                 "P4/nmm",
3154                 "PG4/mmm",
3155                 "P 4/n 21/m 2/m",
3156                 TETRAGONAL, TETRAGONAL_LATTICE,
3157                 L224,
3158                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3159                 new double[] {-1.0, -1.0, -1.0},
3160                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3161                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3162                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
3163                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
3164                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3165                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3166                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3167                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3168                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
3169                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
3170                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3171                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3172                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3173                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3174                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3175                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3176         break;
3177       case 130:
3178         spaceGroup =
3179             new SpaceGroup(
3180                 130,
3181                 16,
3182                 16,
3183                 "P4/ncc",
3184                 "PG4/mmm",
3185                 "P 4/n 2/c 2/c",
3186                 TETRAGONAL, TETRAGONAL_LATTICE,
3187                 L224,
3188                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3189                 new double[] {-1.0, -1.0, -1.0},
3190                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3191                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3192                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
3193                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
3194                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3195                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3196                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3197                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3198                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
3199                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
3200                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3201                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3202                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3203                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3204                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3205                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3206         break;
3207       case 131:
3208         spaceGroup =
3209             new SpaceGroup(
3210                 131,
3211                 16,
3212                 16,
3213                 "P42/mmc",
3214                 "PG4/mmm",
3215                 "P 42/m 2/m 2/c",
3216                 TETRAGONAL, TETRAGONAL_LATTICE,
3217                 L224,
3218                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3219                 new double[] {-1.0, -1.0, -1.0},
3220                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3221                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3222                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
3223                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
3224                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3225                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3226                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3227                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3228                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3229                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3230                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
3231                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
3232                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3233                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3234                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3235                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
3236         break;
3237       case 132:
3238         spaceGroup =
3239             new SpaceGroup(
3240                 132,
3241                 16,
3242                 16,
3243                 "P42/mcm",
3244                 "PG4/mmm",
3245                 "P 42/m 2/c 2/m",
3246                 TETRAGONAL, TETRAGONAL_LATTICE,
3247                 L224,
3248                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3249                 new double[] {-1.0, -1.0, -1.0},
3250                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3251                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3252                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
3253                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
3254                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
3255                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
3256                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3257                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3258                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3259                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3260                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
3261                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
3262                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3263                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3264                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3265                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
3266         break;
3267       case 133:
3268         spaceGroup =
3269             new SpaceGroup(
3270                 133,
3271                 16,
3272                 16,
3273                 "P42/nbc",
3274                 "PG4/mmm",
3275                 "P 42/n 2/b 2/c",
3276                 TETRAGONAL, TETRAGONAL_LATTICE,
3277                 L224,
3278                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3279                 new double[] {-1.0, -1.0, -1.0},
3280                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3281                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3282                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3283                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3284                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
3285                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
3286                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3287                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3288                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3289                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3290                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3291                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3292                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3293                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3294                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3295                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12));
3296         break;
3297       case 134:
3298         spaceGroup =
3299             new SpaceGroup(
3300                 134,
3301                 16,
3302                 16,
3303                 "P42/nnm",
3304                 "PG4/mmm",
3305                 "P 42/n 2/n 2/m",
3306                 TETRAGONAL, TETRAGONAL_LATTICE,
3307                 L224,
3308                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3309                 new double[] {-1.0, -1.0, -1.0},
3310                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3311                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3312                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3313                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3314                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3315                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3316                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3317                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3318                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3319                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3320                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3321                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3322                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3323                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3324                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3325                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
3326         break;
3327       case 135:
3328         spaceGroup =
3329             new SpaceGroup(
3330                 135,
3331                 16,
3332                 16,
3333                 "P42/mbc",
3334                 "PG4/mmm",
3335                 "P 42/m 21/b 2/c",
3336                 TETRAGONAL, TETRAGONAL_LATTICE,
3337                 L224,
3338                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3339                 new double[] {-1.0, -1.0, -1.0},
3340                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3341                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3342                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_12),
3343                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_12),
3344                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3345                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3346                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3347                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3348                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3349                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3350                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_12),
3351                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_12),
3352                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3353                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3354                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3355                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3356         break;
3357       case 136:
3358         spaceGroup =
3359             new SpaceGroup(
3360                 136,
3361                 16,
3362                 16,
3363                 "P42/mnm",
3364                 "PG4/mmm",
3365                 "P 42/m 21/n 2/m",
3366                 TETRAGONAL, TETRAGONAL_LATTICE,
3367                 L224,
3368                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3369                 new double[] {-1.0, -1.0, -1.0},
3370                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3371                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3372                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3373                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3374                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3375                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3376                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3377                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3378                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3379                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3380                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3381                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3382                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3383                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3384                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3385                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0));
3386         break;
3387       case 137:
3388         spaceGroup =
3389             new SpaceGroup(
3390                 137,
3391                 16,
3392                 16,
3393                 "P42/nmc",
3394                 "PG4/mmm",
3395                 "P 42/n 21/m 2/c",
3396                 TETRAGONAL, TETRAGONAL_LATTICE,
3397                 L224,
3398                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3399                 new double[] {-1.0, -1.0, -1.0},
3400                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3401                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3402                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3403                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3404                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3405                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3406                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3407                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3408                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3409                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3410                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3411                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3412                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3413                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3414                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3415                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3416         break;
3417       case 138:
3418         spaceGroup =
3419             new SpaceGroup(
3420                 138,
3421                 16,
3422                 16,
3423                 "P42/ncm",
3424                 "PG4/mmm",
3425                 "P 42/n 21/c 2/m",
3426                 TETRAGONAL, TETRAGONAL_LATTICE,
3427                 L224,
3428                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3429                 new double[] {-1.0, -1.0, -1.0},
3430                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3431                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3432                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3433                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3434                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3435                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3436                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3437                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3438                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3439                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3440                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3441                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3442                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3443                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3444                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3445                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3446         break;
3447       case 139:
3448         spaceGroup =
3449             new SpaceGroup(
3450                 139,
3451                 32,
3452                 16,
3453                 "I4/mmm",
3454                 "PG4/mmm",
3455                 "I 4/m 2/m 2/m",
3456                 TETRAGONAL, TETRAGONAL_LATTICE,
3457                 L224,
3458                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3459                 new double[] {f12, f12, f14},
3460                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3461                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3462                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3463                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3464                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
3465                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
3466                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3467                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3468                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3469                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3470                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3471                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3472                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3473                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3474                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3475                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
3476                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3477                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3478                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3479                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3480                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
3481                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
3482                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3483                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3484                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3485                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3486                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3487                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3488                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3489                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3490                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_12),
3491                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_12));
3492         break;
3493       case 140:
3494         spaceGroup =
3495             new SpaceGroup(
3496                 140,
3497                 32,
3498                 16,
3499                 "I4/mcm",
3500                 "PG4/mmm",
3501                 "I 4/m 2/c 2/m",
3502                 TETRAGONAL, TETRAGONAL_LATTICE,
3503                 L224,
3504                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3505                 new double[] {-1.0, -1.0, -1.0},
3506                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3507                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3508                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
3509                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
3510                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_12),
3511                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
3512                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3513                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3514                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3515                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
3516                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3517                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3518                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3519                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3520                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3521                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
3522                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3523                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3524                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
3525                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
3526                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
3527                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
3528                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3529                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3530                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
3531                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
3532                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3533                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3534                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3535                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3536                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_12_0),
3537                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_12_0));
3538         break;
3539       case 141:
3540         spaceGroup =
3541             new SpaceGroup(
3542                 141,
3543                 32,
3544                 16,
3545                 "I41/amd",
3546                 "PG4/mmm",
3547                 "I 41/a 2/m 2/d",
3548                 TETRAGONAL, TETRAGONAL_LATTICE,
3549                 L224,
3550                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3551                 new double[] {-1.0, -1.0, -1.0},
3552                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3553                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3554                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
3555                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
3556                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_34),
3557                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_14),
3558                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
3559                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3560                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_14),
3561                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_34),
3562                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3563                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3564                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
3565                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
3566                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_34),
3567                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_14),
3568                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3569                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3570                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
3571                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
3572                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_14),
3573                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_34),
3574                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3575                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
3576                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_34),
3577                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_14),
3578                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3579                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3580                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
3581                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
3582                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_14),
3583                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_34));
3584         break;
3585       case 142:
3586         spaceGroup =
3587             new SpaceGroup(
3588                 142,
3589                 32,
3590                 16,
3591                 "I41/acd",
3592                 "PG4/mmm",
3593                 "I 41/a 2/c 2/d",
3594                 TETRAGONAL, TETRAGONAL_LATTICE,
3595                 L224,
3596                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3597                 new double[] {-1.0, -1.0, -1.0},
3598                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3599                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
3600                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_14),
3601                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_34),
3602                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_14),
3603                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_34),
3604                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
3605                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
3606                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_14),
3607                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_34),
3608                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_0_0_0),
3609                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_12_12_12),
3610                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
3611                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
3612                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_12_0_14),
3613                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_12_34),
3614                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
3615                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
3616                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_34),
3617                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_14),
3618                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_34),
3619                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_14),
3620                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
3621                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
3622                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_34),
3623                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_14),
3624                 new SymOp(SymOp.Rot_Y_mX_mZ, SymOp.Tr_12_12_12),
3625                 new SymOp(SymOp.Rot_mY_X_mZ, SymOp.Tr_0_0_0),
3626                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_12),
3627                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
3628                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_12_34),
3629                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_12_0_14));
3630         break;
3631       case 143:
3632         spaceGroup =
3633             new SpaceGroup(
3634                 143,
3635                 3,
3636                 3,
3637                 "P3",
3638                 "PG3",
3639                 "P 3",
3640                 TRIGONAL, HEXAGONAL_LATTICE,
3641                 L113,
3642                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
3643                 new double[] {f23, f23, 1.0},
3644                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3645                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3646                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0));
3647         break;
3648       case 144:
3649         spaceGroup =
3650             new SpaceGroup(
3651                 144,
3652                 3,
3653                 3,
3654                 "P31",
3655                 "PG3",
3656                 "P 31",
3657                 TRIGONAL, HEXAGONAL_LATTICE,
3658                 L113,
3659                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3660                 new double[] {1.0, 1.0, f13},
3661                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3662                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3663                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23));
3664         break;
3665       case 145:
3666         spaceGroup =
3667             new SpaceGroup(
3668                 145,
3669                 3,
3670                 3,
3671                 "P32",
3672                 "PG3",
3673                 "P 32",
3674                 TRIGONAL, HEXAGONAL_LATTICE,
3675                 L113,
3676                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3677                 new double[] {1.0, 1.0, f13},
3678                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3679                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3680                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13));
3681         break;
3682       case 146:
3683         spaceGroup =
3684             new SpaceGroup(
3685                 146,
3686                 9,
3687                 3,
3688                 "H3",
3689                 "PG3",
3690                 "H 3",
3691                 TRIGONAL, HEXAGONAL_LATTICE,
3692                 L113,
3693                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
3694                 new double[] {f23, f23, f13},
3695                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3696                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3697                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3698                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3699                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3700                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3701                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3702                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3703                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23));
3704         break;
3705       case 147:
3706         spaceGroup =
3707             new SpaceGroup(
3708                 147,
3709                 6,
3710                 6,
3711                 "P-3",
3712                 "PG3bar",
3713                 "P -3",
3714                 TRIGONAL, HEXAGONAL_LATTICE,
3715                 L113,
3716                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3717                 new double[] {f23, f23, f12},
3718                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3719                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3720                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3721                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3722                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3723                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0));
3724         break;
3725       case 148:
3726         spaceGroup =
3727             new SpaceGroup(
3728                 148,
3729                 18,
3730                 6,
3731                 "H-3",
3732                 "PG3bar",
3733                 "H -3",
3734                 TRIGONAL, HEXAGONAL_LATTICE,
3735                 L113,
3736                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3737                 new double[] {f23, f23, f16},
3738                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3739                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3740                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3741                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
3742                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
3743                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
3744                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3745                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3746                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3747                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_23_13_13),
3748                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_23_13_13),
3749                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_23_13_13),
3750                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3751                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3752                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3753                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_13_23_23),
3754                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_13_23_23),
3755                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_13_23_23));
3756         break;
3757       case 149:
3758         spaceGroup =
3759             new SpaceGroup(
3760                 149,
3761                 6,
3762                 6,
3763                 "P312",
3764                 "PG312",
3765                 "P 3 1 2",
3766                 TRIGONAL, HEXAGONAL_LATTICE,
3767                 L223,
3768                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3769                 new double[] {f23, f23, f12},
3770                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3771                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3772                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3773                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
3774                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
3775                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
3776         break;
3777       case 150:
3778         spaceGroup =
3779             new SpaceGroup(
3780                 150,
3781                 6,
3782                 6,
3783                 "P321",
3784                 "PG321",
3785                 "P 3 2 1",
3786                 TRIGONAL, HEXAGONAL_LATTICE,
3787                 L32U,
3788                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3789                 new double[] {f23, f23, f12},
3790                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3791                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3792                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3793                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3794                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
3795                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0));
3796         break;
3797       default:
3798     }
3799     return spaceGroup;
3800   }
3801 
3802   /**
3803    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
3804    * specification limit on method size is exceeded.
3805    *
3806    * @param num input parameter (between 151 and 200)
3807    * @return the selected SpaceGroup
3808    */
3809   static SpaceGroup getSpaceGroup4(int num) {
3810     SpaceGroup spaceGroup = null;
3811     switch (num) {
3812       case 151:
3813         spaceGroup =
3814             new SpaceGroup(
3815                 151,
3816                 6,
3817                 6,
3818                 "P3112",
3819                 "PG312",
3820                 "P 31 1 2",
3821                 TRIGONAL, HEXAGONAL_LATTICE,
3822                 L223,
3823                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3824                 new double[] {1.0, 1.0, f16},
3825                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3826                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3827                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
3828                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_23),
3829                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_13),
3830                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
3831         break;
3832       case 152:
3833         spaceGroup =
3834             new SpaceGroup(
3835                 152,
3836                 6,
3837                 6,
3838                 "P3121",
3839                 "PG321",
3840                 "P 31 2 1",
3841                 TRIGONAL, HEXAGONAL_LATTICE,
3842                 L32U,
3843                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3844                 new double[] {1.0, 1.0, f16},
3845                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3846                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
3847                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
3848                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3849                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_23),
3850                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_13));
3851         break;
3852       case 153:
3853         spaceGroup =
3854             new SpaceGroup(
3855                 153,
3856                 6,
3857                 6,
3858                 "P3212",
3859                 "PG312",
3860                 "P 32 1 2",
3861                 TRIGONAL, HEXAGONAL_LATTICE,
3862                 L223,
3863                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3864                 new double[] {1.0, 1.0, f16},
3865                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3866                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3867                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
3868                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_13),
3869                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_23),
3870                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
3871         break;
3872       case 154:
3873         spaceGroup =
3874             new SpaceGroup(
3875                 154,
3876                 6,
3877                 6,
3878                 "P3221",
3879                 "PG321",
3880                 "P 32 2 1",
3881                 TRIGONAL, HEXAGONAL_LATTICE,
3882                 L32U,
3883                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
3884                 new double[] {1.0, 1.0, f16},
3885                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3886                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
3887                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
3888                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3889                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_13),
3890                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_23));
3891         break;
3892       case 155:
3893         spaceGroup =
3894             new SpaceGroup(
3895                 155,
3896                 18,
3897                 6,
3898                 "H32",
3899                 "PG321",
3900                 "H 3 2",
3901                 TRIGONAL, HEXAGONAL_LATTICE,
3902                 L32U,
3903                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
3904                 new double[] {f23, f23, f16},
3905                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3906                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3907                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3908                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
3909                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
3910                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
3911                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
3912                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
3913                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
3914                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_23_13_13),
3915                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_23_13_13),
3916                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_23_13_13),
3917                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
3918                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
3919                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
3920                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_13_23_23),
3921                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_13_23_23),
3922                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_13_23_23));
3923         break;
3924       case 156:
3925         spaceGroup =
3926             new SpaceGroup(
3927                 156,
3928                 6,
3929                 6,
3930                 "P3m1",
3931                 "PG3m1",
3932                 "P 3 m 1",
3933                 TRIGONAL, HEXAGONAL_LATTICE,
3934                 L32U,
3935                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3936                 new double[] {-1.0, -1.0, -1.0},
3937                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3938                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3939                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3940                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
3941                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
3942                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0));
3943         break;
3944       case 157:
3945         spaceGroup =
3946             new SpaceGroup(
3947                 157,
3948                 6,
3949                 6,
3950                 "P31m",
3951                 "PG31m",
3952                 "P 3 1 m",
3953                 TRIGONAL, HEXAGONAL_LATTICE,
3954                 L223,
3955                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3956                 new double[] {-1.0, -1.0, -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_Y_X_Z, SymOp.Tr_0_0_0),
3961                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
3962                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
3963         break;
3964       case 158:
3965         spaceGroup =
3966             new SpaceGroup(
3967                 158,
3968                 6,
3969                 6,
3970                 "P3c1",
3971                 "PG3m1",
3972                 "P 3 c 1",
3973                 TRIGONAL, HEXAGONAL_LATTICE,
3974                 L32U,
3975                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3976                 new double[] {-1.0, -1.0, -1.0},
3977                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3978                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3979                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
3980                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
3981                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
3982                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12));
3983         break;
3984       case 159:
3985         spaceGroup =
3986             new SpaceGroup(
3987                 159,
3988                 6,
3989                 6,
3990                 "P31c",
3991                 "PG31m",
3992                 "P 3 1 c",
3993                 TRIGONAL, HEXAGONAL_LATTICE,
3994                 L223,
3995                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
3996                 new double[] {-1.0, -1.0, -1.0},
3997                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
3998                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
3999                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4000                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4001                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4002                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4003         break;
4004       case 160:
4005         spaceGroup =
4006             new SpaceGroup(
4007                 160,
4008                 18,
4009                 6,
4010                 "H3m",
4011                 "PG3m",
4012                 "H 3 m",
4013                 TRIGONAL, HEXAGONAL_LATTICE,
4014                 L32U,
4015                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4016                 new double[] {-1.0, -1.0, -1.0},
4017                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4018                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4019                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4020                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4021                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4022                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4023                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
4024                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
4025                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
4026                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_13),
4027                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_13),
4028                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_13),
4029                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
4030                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
4031                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
4032                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_23),
4033                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_23),
4034                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_23));
4035         break;
4036       case 161:
4037         spaceGroup =
4038             new SpaceGroup(
4039                 161,
4040                 18,
4041                 6,
4042                 "H3c",
4043                 "PG3m",
4044                 "H 3 c",
4045                 TRIGONAL, HEXAGONAL_LATTICE,
4046                 L32U,
4047                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4048                 new double[] {-1.0, -1.0, -1.0},
4049                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4050                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4051                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4052                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4053                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4054                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4055                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
4056                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
4057                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
4058                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_56),
4059                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_56),
4060                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_56),
4061                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
4062                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
4063                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
4064                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_16),
4065                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_16),
4066                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_16));
4067         break;
4068       case 162:
4069         spaceGroup =
4070             new SpaceGroup(
4071                 162,
4072                 12,
4073                 12,
4074                 "P-31m",
4075                 "PG3bar1m",
4076                 "P -3 1 2/m",
4077                 TRIGONAL, HEXAGONAL_LATTICE,
4078                 L223,
4079                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4080                 new double[] {f23, f12, f12},
4081                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4082                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4083                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4084                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4085                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4086                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0),
4087                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4088                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4089                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4090                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4091                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4092                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4093         break;
4094       case 163:
4095         spaceGroup =
4096             new SpaceGroup(
4097                 163,
4098                 12,
4099                 12,
4100                 "P-31c",
4101                 "PG3bar1m",
4102                 "P -3 1 2/c",
4103                 TRIGONAL, HEXAGONAL_LATTICE,
4104                 L223,
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_mY_mX_mZ, SymOp.Tr_0_0_12),
4111                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4112                 new SymOp(SymOp.Rot_X_XmY_mZ, 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_Y_X_Z, SymOp.Tr_0_0_12),
4117                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4118                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4119         break;
4120       case 164:
4121         spaceGroup =
4122             new SpaceGroup(
4123                 164,
4124                 12,
4125                 12,
4126                 "P-3m1",
4127                 "PG3barm1",
4128                 "P -3 2/m 1",
4129                 TRIGONAL, HEXAGONAL_LATTICE,
4130                 L32U,
4131                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4132                 new double[] {f23, f13, 1.0},
4133                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4134                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4135                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4136                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4137                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4138                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4139                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4140                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4141                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4142                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4143                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4144                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0));
4145         break;
4146       case 165:
4147         spaceGroup =
4148             new SpaceGroup(
4149                 165,
4150                 12,
4151                 12,
4152                 "P-3c1",
4153                 "PG3barm1",
4154                 "P -3 2/c 1",
4155                 TRIGONAL, HEXAGONAL_LATTICE,
4156                 L32U,
4157                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4158                 new double[] {-1.0, -1.0, -1.0},
4159                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4160                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4161                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4162                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
4163                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
4164                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
4165                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4166                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4167                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4168                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4169                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4170                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12));
4171         break;
4172       case 166:
4173         spaceGroup =
4174             new SpaceGroup(
4175                 166,
4176                 36,
4177                 12,
4178                 "H-3m",
4179                 "PG3barm",
4180                 "H -3 2/m",
4181                 TRIGONAL, HEXAGONAL_LATTICE,
4182                 L32U,
4183                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4184                 new double[] {f23, f23, f16},
4185                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4186                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4187                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4188                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4189                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4190                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4191                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4192                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4193                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4194                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4195                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4196                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4197                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
4198                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
4199                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
4200                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_23_13_13),
4201                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_23_13_13),
4202                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_23_13_13),
4203                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_23_13_13),
4204                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_23_13_13),
4205                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_23_13_13),
4206                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_13),
4207                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_13),
4208                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_13),
4209                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
4210                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
4211                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
4212                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_13_23_23),
4213                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_13_23_23),
4214                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_13_23_23),
4215                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_13_23_23),
4216                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_13_23_23),
4217                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_13_23_23),
4218                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_23),
4219                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_23),
4220                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_23));
4221         break;
4222       case 167:
4223         spaceGroup =
4224             new SpaceGroup(
4225                 167,
4226                 36,
4227                 12,
4228                 "H-3c",
4229                 "PG3barm",
4230                 "H -3 2/c",
4231                 TRIGONAL, HEXAGONAL_LATTICE,
4232                 L32U,
4233                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4234                 new double[] {-1.0, -1.0, -1.0},
4235                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4236                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4237                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4238                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
4239                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
4240                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
4241                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4242                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4243                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4244                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4245                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4246                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4247                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_23_13_13),
4248                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_23_13_13),
4249                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_23_13_13),
4250                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_23_13_56),
4251                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_23_13_56),
4252                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_23_13_56),
4253                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_23_13_13),
4254                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_23_13_13),
4255                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_23_13_13),
4256                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_23_13_56),
4257                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_23_13_56),
4258                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_23_13_56),
4259                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_13_23_23),
4260                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_13_23_23),
4261                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_13_23_23),
4262                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_13_23_16),
4263                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_13_23_16),
4264                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_13_23_16),
4265                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_13_23_23),
4266                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_13_23_23),
4267                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_13_23_23),
4268                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_13_23_16),
4269                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_13_23_16),
4270                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_13_23_16));
4271         break;
4272       case 168:
4273         spaceGroup =
4274             new SpaceGroup(
4275                 168,
4276                 6,
4277                 6,
4278                 "P6",
4279                 "PG6",
4280                 "P 6",
4281                 HEXAGONAL, HEXAGONAL_LATTICE,
4282                 L114,
4283                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
4284                 new double[] {f23, f12, 1.0},
4285                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4286                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4287                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4288                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4289                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4290                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0));
4291         break;
4292       case 169:
4293         spaceGroup =
4294             new SpaceGroup(
4295                 169,
4296                 6,
4297                 6,
4298                 "P61",
4299                 "PG6",
4300                 "P 61",
4301                 HEXAGONAL, HEXAGONAL_LATTICE,
4302                 L114,
4303                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4304                 new double[] {1.0, 1.0, f16},
4305                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4306                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
4307                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4308                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4309                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_56),
4310                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_16));
4311         break;
4312       case 170:
4313         spaceGroup =
4314             new SpaceGroup(
4315                 170,
4316                 6,
4317                 6,
4318                 "P65",
4319                 "PG6",
4320                 "P 65",
4321                 HEXAGONAL, HEXAGONAL_LATTICE,
4322                 L114,
4323                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4324                 new double[] {1.0, 1.0, f16},
4325                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4326                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4327                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4328                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4329                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_16),
4330                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_56));
4331         break;
4332       case 171:
4333         spaceGroup =
4334             new SpaceGroup(
4335                 171,
4336                 6,
4337                 6,
4338                 "P62",
4339                 "PG6",
4340                 "P 62",
4341                 HEXAGONAL, HEXAGONAL_LATTICE,
4342                 L114,
4343                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4344                 new double[] {1.0, 1.0, f13},
4345                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4346                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4347                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4348                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4349                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_23),
4350                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_13));
4351         break;
4352       case 172:
4353         spaceGroup =
4354             new SpaceGroup(
4355                 172,
4356                 6,
4357                 6,
4358                 "P64",
4359                 "PG6",
4360                 "P 64",
4361                 HEXAGONAL, HEXAGONAL_LATTICE,
4362                 L114,
4363                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4364                 new double[] {1.0, 1.0, f13},
4365                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4366                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
4367                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4368                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4369                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_13),
4370                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_23));
4371         break;
4372       case 173:
4373         spaceGroup =
4374             new SpaceGroup(
4375                 173,
4376                 6,
4377                 6,
4378                 "P63",
4379                 "PG6",
4380                 "P 63",
4381                 HEXAGONAL, HEXAGONAL_LATTICE,
4382                 L114,
4383                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
4384                 new double[] {f23, f23, f12},
4385                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4386                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4387                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4388                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4389                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4390                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12));
4391         break;
4392       case 174:
4393         spaceGroup =
4394             new SpaceGroup(
4395                 174,
4396                 6,
4397                 6,
4398                 "P-6",
4399                 "PG6bar",
4400                 "P -6",
4401                 HEXAGONAL, HEXAGONAL_LATTICE,
4402                 L114,
4403                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4404                 new double[] {-1.0, -1.0, -1.0},
4405                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4406                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4407                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4408                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4409                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4410                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0));
4411         break;
4412       case 175:
4413         spaceGroup =
4414             new SpaceGroup(
4415                 175,
4416                 12,
4417                 12,
4418                 "P6/m",
4419                 "PG6/m",
4420                 "P 6/m",
4421                 HEXAGONAL, HEXAGONAL_LATTICE,
4422                 L114,
4423                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4424                 new double[] {f23, f23, f12},
4425                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4426                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4427                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4428                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4429                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4430                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4431                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4432                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4433                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4434                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4435                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4436                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0));
4437         break;
4438       case 176:
4439         spaceGroup =
4440             new SpaceGroup(
4441                 176,
4442                 12,
4443                 12,
4444                 "P63/m",
4445                 "PG6/m",
4446                 "P 63/m",
4447                 HEXAGONAL, HEXAGONAL_LATTICE,
4448                 L114,
4449                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4450                 new double[] {-1.0, -1.0, -1.0},
4451                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4452                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4453                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4454                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4455                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4456                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4457                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4458                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4459                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4460                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4461                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4462                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12));
4463         break;
4464       case 177:
4465         spaceGroup =
4466             new SpaceGroup(
4467                 177,
4468                 12,
4469                 12,
4470                 "P622",
4471                 "PG622",
4472                 "P 6 2 2",
4473                 HEXAGONAL, HEXAGONAL_LATTICE,
4474                 L224,
4475                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4476                 new double[] {f23, f12, f12},
4477                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4478                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4479                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4480                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4481                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4482                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4483                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4484                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4485                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4486                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4487                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4488                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
4489         break;
4490       case 178:
4491         spaceGroup =
4492             new SpaceGroup(
4493                 178,
4494                 12,
4495                 12,
4496                 "P6122",
4497                 "PG622",
4498                 "P 61 2 2",
4499                 HEXAGONAL, HEXAGONAL_LATTICE,
4500                 L224,
4501                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4502                 new double[] {1.0, 1.0, f112},
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_13),
4505                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4506                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4507                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_56),
4508                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_16),
4509                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_13),
4510                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4511                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_23),
4512                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_56),
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_16));
4515         break;
4516       case 179:
4517         spaceGroup =
4518             new SpaceGroup(
4519                 179,
4520                 12,
4521                 12,
4522                 "P6522",
4523                 "PG622",
4524                 "P 65 2 2",
4525                 HEXAGONAL, HEXAGONAL_LATTICE,
4526                 L224,
4527                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4528                 new double[] {1.0, 1.0, f112},
4529                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4530                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4531                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4532                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4533                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_16),
4534                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_56),
4535                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_23),
4536                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4537                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_13),
4538                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_16),
4539                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4540                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_56));
4541         break;
4542       case 180:
4543         spaceGroup =
4544             new SpaceGroup(
4545                 180,
4546                 12,
4547                 12,
4548                 "P6222",
4549                 "PG622",
4550                 "P 62 2 2",
4551                 HEXAGONAL, HEXAGONAL_LATTICE,
4552                 L224,
4553                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4554                 new double[] {1.0, 1.0, f16},
4555                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4556                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_23),
4557                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_13),
4558                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4559                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_23),
4560                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_13),
4561                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_23),
4562                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4563                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_13),
4564                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_23),
4565                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4566                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_13));
4567         break;
4568       case 181:
4569         spaceGroup =
4570             new SpaceGroup(
4571                 181,
4572                 12,
4573                 12,
4574                 "P6422",
4575                 "PG622",
4576                 "P 64 2 2",
4577                 HEXAGONAL, HEXAGONAL_LATTICE,
4578                 L224,
4579                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4580                 new double[] {1.0, 1.0, f16},
4581                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4582                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_13),
4583                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_23),
4584                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4585                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_13),
4586                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_23),
4587                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_13),
4588                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4589                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_23),
4590                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_13),
4591                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4592                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_23));
4593         break;
4594       case 182:
4595         spaceGroup =
4596             new SpaceGroup(
4597                 182,
4598                 12,
4599                 12,
4600                 "P6322",
4601                 "PG622",
4602                 "P 63 2 2",
4603                 HEXAGONAL, HEXAGONAL_LATTICE,
4604                 L224,
4605                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4606                 new double[] {f23, f23, f14},
4607                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4608                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4609                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4610                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4611                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4612                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4613                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4614                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4615                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4616                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
4617                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4618                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12));
4619         break;
4620       case 183:
4621         spaceGroup =
4622             new SpaceGroup(
4623                 183,
4624                 12,
4625                 12,
4626                 "P6mm",
4627                 "PG6mm",
4628                 "P 6 m m",
4629                 HEXAGONAL, HEXAGONAL_LATTICE,
4630                 L224,
4631                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4632                 new double[] {-1.0, -1.0, -1.0},
4633                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4634                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4635                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4636                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4637                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4638                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4639                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4640                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4641                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4642                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4643                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4644                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4645         break;
4646       case 184:
4647         spaceGroup =
4648             new SpaceGroup(
4649                 184,
4650                 12,
4651                 12,
4652                 "P6cc",
4653                 "PG6mm",
4654                 "P 6 c c",
4655                 HEXAGONAL, HEXAGONAL_LATTICE,
4656                 L224,
4657                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4658                 new double[] {-1.0, -1.0, -1.0},
4659                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4660                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4661                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4662                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4663                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4664                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4665                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4666                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4667                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4668                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4669                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4670                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4671         break;
4672       case 185:
4673         spaceGroup =
4674             new SpaceGroup(
4675                 185,
4676                 12,
4677                 12,
4678                 "P63cm",
4679                 "PG6mm",
4680                 "P 63 c m",
4681                 HEXAGONAL, HEXAGONAL_LATTICE,
4682                 L224,
4683                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4684                 new double[] {-1.0, -1.0, -1.0},
4685                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4686                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4687                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4688                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4689                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4690                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4691                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4692                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4693                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4694                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4695                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4696                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4697         break;
4698       case 186:
4699         spaceGroup =
4700             new SpaceGroup(
4701                 186,
4702                 12,
4703                 12,
4704                 "P63mc",
4705                 "PG6mm",
4706                 "P 63 m c",
4707                 HEXAGONAL, HEXAGONAL_LATTICE,
4708                 L224,
4709                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4710                 new double[] {-1.0, -1.0, -1.0},
4711                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4712                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4713                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4714                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4715                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4716                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4717                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4718                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4719                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4720                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4721                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4722                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4723         break;
4724       case 187:
4725         spaceGroup =
4726             new SpaceGroup(
4727                 187,
4728                 12,
4729                 12,
4730                 "P-6m2",
4731                 "PG6barm2",
4732                 "P -6 m 2",
4733                 HEXAGONAL, HEXAGONAL_LATTICE,
4734                 L224,
4735                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4736                 new double[] {-1.0, -1.0, -1.0},
4737                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4738                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4739                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4740                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4741                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4742                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4743                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4744                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4745                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4746                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4747                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4748                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
4749         break;
4750       case 188:
4751         spaceGroup =
4752             new SpaceGroup(
4753                 188,
4754                 12,
4755                 12,
4756                 "P-6c2",
4757                 "PG6barm2",
4758                 "P -6 c 2",
4759                 HEXAGONAL, HEXAGONAL_LATTICE,
4760                 L224,
4761                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4762                 new double[] {-1.0, -1.0, -1.0},
4763                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4764                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4765                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4766                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4767                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4768                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4769                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4770                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4771                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4772                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4773                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4774                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0));
4775         break;
4776       case 189:
4777         spaceGroup =
4778             new SpaceGroup(
4779                 189,
4780                 12,
4781                 12,
4782                 "P-62m",
4783                 "PG6bar2m",
4784                 "P -6 2 m",
4785                 HEXAGONAL, HEXAGONAL_LATTICE,
4786                 L224,
4787                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4788                 new double[] {-1.0, -1.0, -1.0},
4789                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4790                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4791                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4792                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4793                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4794                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4795                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4796                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4797                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4798                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4799                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4800                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4801         break;
4802       case 190:
4803         spaceGroup =
4804             new SpaceGroup(
4805                 190,
4806                 12,
4807                 12,
4808                 "P-62c",
4809                 "PG6bar2m",
4810                 "P -6 2 c",
4811                 HEXAGONAL, HEXAGONAL_LATTICE,
4812                 L224,
4813                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4814                 new double[] {-1.0, -1.0, -1.0},
4815                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4816                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4817                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4818                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4819                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4820                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4821                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4822                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4823                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4824                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4825                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4826                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4827         break;
4828       case 191:
4829         spaceGroup =
4830             new SpaceGroup(
4831                 191,
4832                 24,
4833                 24,
4834                 "P6/mmm",
4835                 "PG6/mmm",
4836                 "P 6/m 2/m 2/m",
4837                 HEXAGONAL, HEXAGONAL_LATTICE,
4838                 L224,
4839                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
4840                 new double[] {f23, f13, f12},
4841                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4842                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4843                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4844                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4845                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4846                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4847                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4848                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4849                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4850                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4851                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4852                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0),
4853                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4854                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4855                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4856                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4857                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4858                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4859                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4860                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4861                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4862                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4863                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4864                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4865         break;
4866       case 192:
4867         spaceGroup =
4868             new SpaceGroup(
4869                 192,
4870                 24,
4871                 24,
4872                 "P6/mcc",
4873                 "PG6/mmm",
4874                 "P 6/m 2/c 2/c",
4875                 HEXAGONAL, HEXAGONAL_LATTICE,
4876                 L224,
4877                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4878                 new double[] {-1.0, -1.0, -1.0},
4879                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4880                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4881                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4882                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4883                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_0),
4884                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_0),
4885                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
4886                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
4887                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
4888                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
4889                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4890                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12),
4891                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4892                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4893                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4894                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
4895                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_0),
4896                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_0),
4897                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4898                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4899                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4900                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4901                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4902                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4903         break;
4904       case 193:
4905         spaceGroup =
4906             new SpaceGroup(
4907                 193,
4908                 24,
4909                 24,
4910                 "P63/mcm",
4911                 "PG6/mmm",
4912                 "P 63/m 2/c 2/m",
4913                 HEXAGONAL, HEXAGONAL_LATTICE,
4914                 L224,
4915                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4916                 new double[] {-1.0, -1.0, -1.0},
4917                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4918                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4919                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4920                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4921                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4922                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4923                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_12),
4924                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_12),
4925                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_12),
4926                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
4927                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_0),
4928                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_0),
4929                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4930                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4931                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4932                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4933                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4934                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4935                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_12),
4936                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_12),
4937                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_12),
4938                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_0),
4939                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_0),
4940                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_0));
4941         break;
4942       case 194:
4943         spaceGroup =
4944             new SpaceGroup(
4945                 194,
4946                 24,
4947                 24,
4948                 "P63/mmc",
4949                 "PG6/mmm",
4950                 "P 63/m 2/m 2/c",
4951                 HEXAGONAL, HEXAGONAL_LATTICE,
4952                 L224,
4953                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
4954                 new double[] {-1.0, -1.0, -1.0},
4955                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4956                 new SymOp(SymOp.Rot_mY_XmY_Z, SymOp.Tr_0_0_0),
4957                 new SymOp(SymOp.Rot_mXY_mX_Z, SymOp.Tr_0_0_0),
4958                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_12),
4959                 new SymOp(SymOp.Rot_Y_mXY_Z, SymOp.Tr_0_0_12),
4960                 new SymOp(SymOp.Rot_XmY_X_Z, SymOp.Tr_0_0_12),
4961                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
4962                 new SymOp(SymOp.Rot_XmY_mY_mZ, SymOp.Tr_0_0_0),
4963                 new SymOp(SymOp.Rot_mX_mXY_mZ, SymOp.Tr_0_0_0),
4964                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_12),
4965                 new SymOp(SymOp.Rot_mXY_Y_mZ, SymOp.Tr_0_0_12),
4966                 new SymOp(SymOp.Rot_X_XmY_mZ, SymOp.Tr_0_0_12),
4967                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
4968                 new SymOp(SymOp.Rot_Y_mXY_mZ, SymOp.Tr_0_0_0),
4969                 new SymOp(SymOp.Rot_XmY_X_mZ, SymOp.Tr_0_0_0),
4970                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_12),
4971                 new SymOp(SymOp.Rot_mXY_mX_mZ, SymOp.Tr_0_0_12),
4972                 new SymOp(SymOp.Rot_mY_XmY_mZ, SymOp.Tr_0_0_12),
4973                 new SymOp(SymOp.Rot_mY_mX_Z, SymOp.Tr_0_0_0),
4974                 new SymOp(SymOp.Rot_mXY_Y_Z, SymOp.Tr_0_0_0),
4975                 new SymOp(SymOp.Rot_X_XmY_Z, SymOp.Tr_0_0_0),
4976                 new SymOp(SymOp.Rot_Y_X_Z, SymOp.Tr_0_0_12),
4977                 new SymOp(SymOp.Rot_XmY_mY_Z, SymOp.Tr_0_0_12),
4978                 new SymOp(SymOp.Rot_mX_mXY_Z, SymOp.Tr_0_0_12));
4979         break;
4980       case 195:
4981         spaceGroup =
4982             new SpaceGroup(
4983                 195,
4984                 12,
4985                 12,
4986                 "P23",
4987                 "PG23",
4988                 "P 2 3",
4989                 CUBIC, CUBIC_LATTICE,
4990                 LM3B,
4991                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
4992                 new double[] {1.0, 1.0, f12},
4993                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
4994                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
4995                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
4996                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
4997                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
4998                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
4999                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5000                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5001                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5002                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5003                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5004                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0));
5005         break;
5006       case 196:
5007         spaceGroup =
5008             new SpaceGroup(
5009                 196,
5010                 48,
5011                 12,
5012                 "F23",
5013                 "PG23",
5014                 "F 2 3",
5015                 CUBIC, CUBIC_LATTICE,
5016                 LM3B,
5017                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
5018                 new double[] {f14, f14, 1.0},
5019                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5020                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5021                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5022                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5023                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5024                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5025                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5026                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5027                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5028                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5029                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5030                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5031                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5032                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5033                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5034                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5035                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5036                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5037                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5038                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5039                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5040                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5041                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5042                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5043                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5044                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5045                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5046                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5047                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5048                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5049                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5050                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5051                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5052                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5053                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5054                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5055                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5056                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5057                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5058                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5059                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5060                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5061                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5062                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5063                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5064                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5065                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5066                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0));
5067         break;
5068       case 197:
5069         spaceGroup =
5070             new SpaceGroup(
5071                 197,
5072                 24,
5073                 12,
5074                 "I23",
5075                 "PG23",
5076                 "I 2 3",
5077                 CUBIC, CUBIC_LATTICE,
5078                 LM3B,
5079                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
5080                 new double[] {1.0, 1.0, f12},
5081                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5082                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5083                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5084                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5085                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5086                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5087                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5088                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5089                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5090                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5091                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5092                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5093                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5094                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
5095                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
5096                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
5097                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5098                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
5099                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
5100                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
5101                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5102                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
5103                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
5104                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12));
5105         break;
5106       case 198:
5107         spaceGroup =
5108             new SpaceGroup(
5109                 198,
5110                 12,
5111                 12,
5112                 "P213",
5113                 "PG23",
5114                 "P 21 3",
5115                 CUBIC, CUBIC_LATTICE,
5116                 LM3B,
5117                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LT},
5118                 new double[] {f12, f12, 1.0},
5119                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5120                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5121                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5122                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5123                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5124                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5125                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5126                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5127                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5128                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5129                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5130                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12));
5131         break;
5132       case 199:
5133         spaceGroup =
5134             new SpaceGroup(
5135                 199,
5136                 24,
5137                 12,
5138                 "I213",
5139                 "PG23",
5140                 "I 21 3",
5141                 CUBIC, CUBIC_LATTICE,
5142                 LM3B,
5143                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5144                 new double[] {f12, f12, f12},
5145                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5146                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5147                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5148                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5149                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5150                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5151                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5152                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5153                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5154                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5155                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5156                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5157                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5158                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
5159                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
5160                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
5161                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5162                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
5163                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
5164                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
5165                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5166                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
5167                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
5168                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0));
5169         break;
5170       case 200:
5171         spaceGroup =
5172             new SpaceGroup(
5173                 200,
5174                 24,
5175                 24,
5176                 "Pm-3",
5177                 "PGm3bar",
5178                 "P 2/m -3",
5179                 CUBIC, CUBIC_LATTICE,
5180                 LM3B,
5181                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5182                 new double[] {f12, f12, f12},
5183                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5184                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5185                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5186                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5187                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5188                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5189                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5190                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5191                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5192                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5193                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5194                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5195                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5196                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
5197                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
5198                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
5199                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5200                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
5201                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
5202                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
5203                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5204                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
5205                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
5206                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0));
5207         break;
5208       default:
5209     }
5210     return spaceGroup;
5211   }
5212 
5213   /**
5214    * There are 6 private "getSpaceGroupX" routines because if they are not split up, a Java
5215    * specification limit on method size is exceeded.
5216    *
5217    * @param num input parameter (between 201 and 215)
5218    * @return the selected SpaceGroup
5219    */
5220   static SpaceGroup getSpaceGroup5(int num) {
5221     SpaceGroup spaceGroup = null;
5222     switch (num) {
5223       case 201:
5224         spaceGroup =
5225             new SpaceGroup(
5226                 201,
5227                 24,
5228                 24,
5229                 "Pn-3",
5230                 "PGm3bar",
5231                 "P 2/n -3",
5232                 CUBIC, CUBIC_LATTICE,
5233                 LM3B,
5234                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5235                 new double[] {-1.0, -1.0, -1.0},
5236                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5237                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5238                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5239                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5240                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5241                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5242                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5243                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5244                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5245                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5246                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5247                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5248                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
5249                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
5250                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
5251                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
5252                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
5253                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
5254                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
5255                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
5256                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
5257                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
5258                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
5259                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12));
5260         break;
5261       case 202:
5262         spaceGroup =
5263             new SpaceGroup(
5264                 202,
5265                 96,
5266                 24,
5267                 "Fm-3",
5268                 "PGm3bar",
5269                 "F 2/m -3",
5270                 CUBIC, CUBIC_LATTICE,
5271                 LM3B,
5272                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5273                 new double[] {f12, f12, f14},
5274                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5275                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5276                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5277                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5278                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5279                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5280                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5281                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5282                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5283                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5284                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5285                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5286                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5287                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
5288                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
5289                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
5290                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5291                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
5292                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
5293                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
5294                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5295                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
5296                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
5297                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
5298                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5299                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5300                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5301                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5302                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5303                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5304                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5305                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5306                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5307                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5308                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5309                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5310                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_12_12),
5311                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_12),
5312                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
5313                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_12_12),
5314                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_12_12),
5315                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_12_12),
5316                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_12),
5317                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
5318                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_12_12),
5319                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
5320                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_12_12),
5321                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_12),
5322                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5323                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5324                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5325                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5326                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5327                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5328                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5329                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5330                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5331                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5332                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5333                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5334                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_0_12),
5335                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
5336                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_12),
5337                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_0_12),
5338                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_0_12),
5339                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_0_12),
5340                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
5341                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_12),
5342                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_0_12),
5343                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_12),
5344                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_0_12),
5345                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
5346                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5347                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5348                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5349                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5350                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5351                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5352                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5353                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5354                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5355                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5356                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5357                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5358                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_0),
5359                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_0),
5360                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_0),
5361                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
5362                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_0),
5363                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
5364                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_0),
5365                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_0),
5366                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_0),
5367                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_0),
5368                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
5369                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_0));
5370         break;
5371       case 203:
5372         spaceGroup =
5373             new SpaceGroup(
5374                 203,
5375                 96,
5376                 24,
5377                 "Fd-3",
5378                 "PGm3bar",
5379                 "F 2/d -3",
5380                 CUBIC, CUBIC_LATTICE,
5381                 LM3B,
5382                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5383                 new double[] {-1.0, -1.0, -1.0},
5384                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5385                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5386                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5387                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5388                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5389                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5390                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5391                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5392                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5393                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5394                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5395                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5396                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_14_14),
5397                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_14_14),
5398                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_14_14),
5399                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_14_14),
5400                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_14_14),
5401                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_14_14),
5402                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_14_14),
5403                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_14_14),
5404                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_14_14),
5405                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_14_14),
5406                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_14_14),
5407                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_14_14),
5408                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5409                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5410                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5411                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5412                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5413                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5414                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5415                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5416                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5417                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5418                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5419                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5420                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_14_34_34),
5421                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_14_34_34),
5422                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_14_34_34),
5423                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_14_34_34),
5424                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_14_34_34),
5425                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_14_34_34),
5426                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_14_34_34),
5427                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_14_34_34),
5428                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_14_34_34),
5429                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_14_34_34),
5430                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_14_34_34),
5431                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_14_34_34),
5432                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5433                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5434                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5435                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5436                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5437                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5438                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5439                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5440                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5441                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5442                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5443                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5444                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_14_34),
5445                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_14_34),
5446                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_14_34),
5447                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_14_34),
5448                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_14_34),
5449                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_14_34),
5450                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_14_34),
5451                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_14_34),
5452                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_14_34),
5453                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_14_34),
5454                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_14_34),
5455                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_14_34),
5456                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5457                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5458                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5459                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5460                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5461                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5462                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5463                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5464                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5465                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5466                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5467                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5468                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_34_34_14),
5469                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_34_34_14),
5470                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_34_34_14),
5471                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_34_34_14),
5472                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_34_34_14),
5473                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_34_34_14),
5474                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_34_34_14),
5475                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_34_34_14),
5476                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_34_34_14),
5477                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_34_34_14),
5478                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_34_34_14),
5479                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_34_34_14));
5480         break;
5481       case 204:
5482         spaceGroup =
5483             new SpaceGroup(
5484                 204,
5485                 48,
5486                 24,
5487                 "Im-3",
5488                 "PGm3bar",
5489                 "I 2/m -3",
5490                 CUBIC, CUBIC_LATTICE,
5491                 LM3B,
5492                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5493                 new double[] {f12, f12, f12},
5494                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5495                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5496                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5497                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5498                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5499                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5500                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5501                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5502                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5503                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5504                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5505                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5506                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5507                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_0_0),
5508                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_0_0),
5509                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_0),
5510                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5511                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_0),
5512                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_0_0),
5513                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_0_0),
5514                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5515                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_0_0),
5516                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_0),
5517                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_0_0),
5518                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5519                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
5520                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
5521                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
5522                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5523                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
5524                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
5525                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
5526                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5527                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
5528                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
5529                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12),
5530                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
5531                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_12_12),
5532                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_12_12),
5533                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_12),
5534                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
5535                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_12),
5536                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_12_12),
5537                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_12_12),
5538                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
5539                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_12_12),
5540                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_12),
5541                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_12_12));
5542         break;
5543       case 205:
5544         spaceGroup =
5545             new SpaceGroup(
5546                 205,
5547                 24,
5548                 24,
5549                 "Pa-3",
5550                 "PGm3bar",
5551                 "P 21/a -3",
5552                 CUBIC, CUBIC_LATTICE,
5553                 LM3B,
5554                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5555                 new double[] {-1.0, -1.0, -1.0},
5556                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5557                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5558                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5559                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5560                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5561                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5562                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5563                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5564                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5565                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5566                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5567                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5568                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5569                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
5570                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
5571                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
5572                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5573                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
5574                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
5575                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
5576                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5577                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
5578                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
5579                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12));
5580         break;
5581       case 206:
5582         spaceGroup =
5583             new SpaceGroup(
5584                 206,
5585                 48,
5586                 24,
5587                 "Ia-3",
5588                 "PGm3bar",
5589                 "I 21/a -3",
5590                 CUBIC, CUBIC_LATTICE,
5591                 LM3B,
5592                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LT},
5593                 new double[] {-1.0, -1.0, -1.0},
5594                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5595                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5596                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5597                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5598                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5599                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5600                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5601                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5602                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5603                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5604                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5605                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5606                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_0_0_0),
5607                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_12_0_12),
5608                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_0_12_12),
5609                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_12_12_0),
5610                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_0_0_0),
5611                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_12_12_0),
5612                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_12_0_12),
5613                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_0_12_12),
5614                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_0_0_0),
5615                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_0_12_12),
5616                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_12_12_0),
5617                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_12_0_12),
5618                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5619                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_0),
5620                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_0),
5621                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_12),
5622                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5623                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_12),
5624                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_0),
5625                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_0),
5626                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5627                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_0),
5628                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_12),
5629                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_0),
5630                 new SymOp(SymOp.Rot_mX_mY_mZ, SymOp.Tr_12_12_12),
5631                 new SymOp(SymOp.Rot_X_Y_mZ, SymOp.Tr_0_12_0),
5632                 new SymOp(SymOp.Rot_X_mY_Z, SymOp.Tr_12_0_0),
5633                 new SymOp(SymOp.Rot_mX_Y_Z, SymOp.Tr_0_0_12),
5634                 new SymOp(SymOp.Rot_mZ_mX_mY, SymOp.Tr_12_12_12),
5635                 new SymOp(SymOp.Rot_mZ_X_Y, SymOp.Tr_0_0_12),
5636                 new SymOp(SymOp.Rot_Z_X_mY, SymOp.Tr_0_12_0),
5637                 new SymOp(SymOp.Rot_Z_mX_Y, SymOp.Tr_12_0_0),
5638                 new SymOp(SymOp.Rot_mY_mZ_mX, SymOp.Tr_12_12_12),
5639                 new SymOp(SymOp.Rot_Y_mZ_X, SymOp.Tr_12_0_0),
5640                 new SymOp(SymOp.Rot_mY_Z_X, SymOp.Tr_0_0_12),
5641                 new SymOp(SymOp.Rot_Y_Z_mX, SymOp.Tr_0_12_0));
5642         break;
5643       case 207:
5644         spaceGroup =
5645             new SpaceGroup(
5646                 207,
5647                 24,
5648                 24,
5649                 "P432",
5650                 "PG432",
5651                 "P 4 3 2",
5652                 CUBIC, CUBIC_LATTICE,
5653                 LM3M,
5654                 new ASULimit[] {ASULimit.LT, ASULimit.LTE, ASULimit.LTE},
5655                 new double[] {1.0, f12, f12},
5656                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5657                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5658                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5659                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5660                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5661                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5662                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5663                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5664                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5665                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5666                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5667                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5668                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
5669                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
5670                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
5671                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
5672                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
5673                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
5674                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
5675                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
5676                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
5677                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
5678                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
5679                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0));
5680         break;
5681       case 208:
5682         spaceGroup =
5683             new SpaceGroup(
5684                 208,
5685                 24,
5686                 24,
5687                 "P4232",
5688                 "PG432",
5689                 "P 42 3 2",
5690                 CUBIC, CUBIC_LATTICE,
5691                 LM3M,
5692                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
5693                 new double[] {f12, 1.0, f14},
5694                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5695                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5696                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5697                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5698                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5699                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5700                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5701                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5702                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5703                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5704                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5705                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5706                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
5707                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
5708                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
5709                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
5710                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
5711                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
5712                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
5713                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
5714                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
5715                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
5716                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
5717                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12));
5718         break;
5719       case 209:
5720         spaceGroup =
5721             new SpaceGroup(
5722                 209,
5723                 96,
5724                 24,
5725                 "F432",
5726                 "PG432",
5727                 "F 4 3 2",
5728                 CUBIC, CUBIC_LATTICE,
5729                 LM3M,
5730                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5731                 new double[] {f12, f12, f12},
5732                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5733                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5734                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5735                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5736                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5737                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5738                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5739                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5740                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5741                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5742                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5743                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5744                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
5745                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
5746                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
5747                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
5748                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
5749                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
5750                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
5751                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
5752                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
5753                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
5754                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
5755                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
5756                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5757                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5758                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5759                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5760                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5761                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5762                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5763                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5764                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5765                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5766                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5767                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5768                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_12_12),
5769                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_12_12),
5770                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_12_12),
5771                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_12_12),
5772                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_12_12),
5773                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_12_12),
5774                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_12_12),
5775                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_12_12),
5776                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_12_12),
5777                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_12_12),
5778                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_12_12),
5779                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_12_12),
5780                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5781                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5782                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5783                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5784                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5785                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5786                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5787                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5788                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5789                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5790                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5791                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5792                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_0_12),
5793                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_0_12),
5794                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_0_12),
5795                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_0_12),
5796                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_0_12),
5797                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_0_12),
5798                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_0_12),
5799                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_0_12),
5800                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_0_12),
5801                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_0_12),
5802                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_0_12),
5803                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_0_12),
5804                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5805                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5806                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5807                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5808                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5809                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5810                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5811                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5812                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5813                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5814                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5815                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5816                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_0),
5817                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_0),
5818                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_0),
5819                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_0),
5820                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_0),
5821                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_0),
5822                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_0),
5823                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_0),
5824                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_0),
5825                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_0),
5826                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_0),
5827                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_0));
5828         break;
5829       case 210:
5830         spaceGroup =
5831             new SpaceGroup(
5832                 210,
5833                 96,
5834                 24,
5835                 "F4132",
5836                 "PG432",
5837                 "F 41 3 2",
5838                 CUBIC, CUBIC_LATTICE,
5839                 LM3M,
5840                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
5841                 new double[] {f12, 1.0, f18},
5842                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5843                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_12_12),
5844                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_0),
5845                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_0_12),
5846                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5847                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_0_12),
5848                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_12_12),
5849                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_0),
5850                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5851                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_0),
5852                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_0_12),
5853                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_12_12),
5854                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_34),
5855                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
5856                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_34_34),
5857                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_34_14),
5858                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_34),
5859                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_34_14),
5860                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
5861                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_34_34),
5862                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_34),
5863                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_34_34),
5864                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_34_14),
5865                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14),
5866                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_12_12),
5867                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5868                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_0_12),
5869                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
5870                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_12_12),
5871                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
5872                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5873                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_0_12),
5874                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_12_12),
5875                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_0_12),
5876                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
5877                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5878                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_34_14),
5879                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_34_34),
5880                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_14),
5881                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
5882                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_34_14),
5883                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
5884                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_34_34),
5885                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_14),
5886                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_34_14),
5887                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_14),
5888                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
5889                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_34_34),
5890                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_0_12),
5891                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_0),
5892                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
5893                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5894                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_0_12),
5895                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5896                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_0),
5897                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
5898                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_0_12),
5899                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
5900                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5901                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_0),
5902                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_14_14),
5903                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_14_34),
5904                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
5905                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_34),
5906                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_14_14),
5907                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_34),
5908                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_14_34),
5909                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
5910                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_14_14),
5911                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
5912                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_34),
5913                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_14_34),
5914                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_0),
5915                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
5916                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5917                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_12_12),
5918                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_0),
5919                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_12_12),
5920                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
5921                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5922                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_0),
5923                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5924                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_12_12),
5925                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
5926                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
5927                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_14),
5928                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_14_34),
5929                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_14_14),
5930                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
5931                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_14_14),
5932                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_14),
5933                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_14_34),
5934                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
5935                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_14_34),
5936                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_14_14),
5937                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_14));
5938         break;
5939       case 211:
5940         spaceGroup =
5941             new SpaceGroup(
5942                 211,
5943                 48,
5944                 24,
5945                 "I432",
5946                 "PG432",
5947                 "I 4 3 2",
5948                 CUBIC, CUBIC_LATTICE,
5949                 LM3M,
5950                 new ASULimit[] {ASULimit.LTE, ASULimit.LTE, ASULimit.LTE},
5951                 new double[] {f12, f12, f14},
5952                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
5953                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_0_0_0),
5954                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_0_0),
5955                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_0_0_0),
5956                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
5957                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_0_0_0),
5958                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_0_0_0),
5959                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_0_0),
5960                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
5961                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_0_0),
5962                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_0_0_0),
5963                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_0_0_0),
5964                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_0_0_0),
5965                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_0_0_0),
5966                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_0_0_0),
5967                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_0_0_0),
5968                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_0_0_0),
5969                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_0_0_0),
5970                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_0_0_0),
5971                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_0_0_0),
5972                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_0_0_0),
5973                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_0_0_0),
5974                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_0_0_0),
5975                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_0_0_0),
5976                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_12_12_12),
5977                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_12_12),
5978                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_12_12_12),
5979                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_12),
5980                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_12_12_12),
5981                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_12),
5982                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_12_12),
5983                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_12_12_12),
5984                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_12_12_12),
5985                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_12_12_12),
5986                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_12),
5987                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_12_12),
5988                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_12_12_12),
5989                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_12_12_12),
5990                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_12_12_12),
5991                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_12_12_12),
5992                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_12_12_12),
5993                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_12_12_12),
5994                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_12_12_12),
5995                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_12_12_12),
5996                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_12_12_12),
5997                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_12_12_12),
5998                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_12_12_12),
5999                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_12_12_12));
6000         break;
6001       case 212:
6002         spaceGroup =
6003             new SpaceGroup(
6004                 212,
6005                 24,
6006                 24,
6007                 "P4332",
6008                 "PG432",
6009                 "P 43 3 2",
6010                 CUBIC, CUBIC_LATTICE,
6011                 LM3M,
6012                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
6013                 new double[] {1.0, 1.0, f18},
6014                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6015                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6016                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6017                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6018                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6019                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6020                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6021                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6022                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6023                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6024                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6025                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6026                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_14_34_34),
6027                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_14_14_14),
6028                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_34_34_14),
6029                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_34_14_34),
6030                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_14_34_34),
6031                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_34_14_34),
6032                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_14_14_14),
6033                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_34_34_14),
6034                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_14_34_34),
6035                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_34_34_14),
6036                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_34_14_34),
6037                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_14_14_14));
6038         break;
6039       case 213:
6040         spaceGroup =
6041             new SpaceGroup(
6042                 213,
6043                 24,
6044                 24,
6045                 "P4132",
6046                 "PG432",
6047                 "P 41 3 2",
6048                 CUBIC, CUBIC_LATTICE,
6049                 LM3M,
6050                 new ASULimit[] {ASULimit.LT, ASULimit.LT, ASULimit.LTE},
6051                 new double[] {1.0, 1.0, f18},
6052                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6053                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6054                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6055                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6056                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6057                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6058                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6059                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6060                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6061                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6062                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6063                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6064                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_14),
6065                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_34),
6066                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_34),
6067                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_14),
6068                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_14),
6069                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_14),
6070                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_34),
6071                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_34),
6072                 new SymOp(SymOp.Rot_Z_Y_mX, SymOp.Tr_34_14_14),
6073                 new SymOp(SymOp.Rot_Z_mY_X, SymOp.Tr_14_14_34),
6074                 new SymOp(SymOp.Rot_mZ_Y_X, SymOp.Tr_14_34_14),
6075                 new SymOp(SymOp.Rot_mZ_mY_mX, SymOp.Tr_34_34_34));
6076         break;
6077       case 214:
6078         spaceGroup =
6079             new SpaceGroup(
6080                 214,
6081                 48,
6082                 24,
6083                 "I4132",
6084                 "PG432",
6085                 "I 41 3 2",
6086                 CUBIC, CUBIC_LATTICE,
6087                 LM3M,
6088                 new ASULimit[] {ASULimit.LTE, ASULimit.LT, ASULimit.LTE},
6089                 new double[] {f12, 1.0, f18},
6090                 new SymOp(SymOp.Rot_X_Y_Z, SymOp.Tr_0_0_0),
6091                 new SymOp(SymOp.Rot_mX_mY_Z, SymOp.Tr_12_0_12),
6092                 new SymOp(SymOp.Rot_mX_Y_mZ, SymOp.Tr_0_12_12),
6093                 new SymOp(SymOp.Rot_X_mY_mZ, SymOp.Tr_12_12_0),
6094                 new SymOp(SymOp.Rot_Z_X_Y, SymOp.Tr_0_0_0),
6095                 new SymOp(SymOp.Rot_Z_mX_mY, SymOp.Tr_12_12_0),
6096                 new SymOp(SymOp.Rot_mZ_mX_Y, SymOp.Tr_12_0_12),
6097                 new SymOp(SymOp.Rot_mZ_X_mY, SymOp.Tr_0_12_12),
6098                 new SymOp(SymOp.Rot_Y_Z_X, SymOp.Tr_0_0_0),
6099                 new SymOp(SymOp.Rot_mY_Z_mX, SymOp.Tr_0_12_12),
6100                 new SymOp(SymOp.Rot_Y_mZ_mX, SymOp.Tr_12_12_0),
6101                 new SymOp(SymOp.Rot_mY_mZ_X, SymOp.Tr_12_0_12),
6102                 new SymOp(SymOp.Rot_Y_X_mZ, SymOp.Tr_34_14_14),
6103                 new SymOp(SymOp.Rot_mY_mX_mZ, SymOp.Tr_34_34_34),
6104                 new SymOp(SymOp.Rot_Y_mX_Z, SymOp.Tr_14_14_34),
6105                 new SymOp(SymOp.Rot_mY_X_Z, SymOp.Tr_14_34_14),
6106                 new SymOp(SymOp.Rot_X_Z_mY, SymOp.Tr_34_14_14),
6107                 new SymOp(SymOp.Rot_mX_Z_Y, SymOp.Tr_14_34_14),
6108                 new SymOp(SymOp.Rot_mX_mZ_mY, SymOp.Tr_34_34_34),
6109                 new SymOp(SymOp.Rot_X_mZ_Y, SymOp.Tr_14_14_34),