crystallographic_group/database/
mod.rs

1mod crystal_system;
2mod space_group_table;
3mod sym_ops_order;
4
5pub use crystal_system::CrystalSystem;
6pub use space_group_table::LookUpSpaceGroup;
7pub use space_group_table::DEFAULT_SPACE_GROUP_SYMBOLS;
8pub use space_group_table::FULL_SPACE_GROUP_SYMBOLS;
9pub(crate) use sym_ops_order::{ORDER_12, ORDER_24, ORDER_48};
10
11/// Full list of space group hall symbols
12#[derive(Debug, Clone, Copy)]
13#[allow(non_camel_case_types)]
14pub enum SpaceGroupHallSymbol {
15    P_1,
16    MP_1,
17    P_2y,
18    P_2,
19    P_2x,
20    P_2yb,
21    P_2c,
22    P_2xa,
23    C_2y,
24    A_2y,
25    I_2y,
26    A_2,
27    B_2,
28    I_2,
29    B_2x,
30    C_2x,
31    I_2x,
32    P_M2y,
33    P_M2,
34    P_M2x,
35    P_M2yc,
36    P_M2yac,
37    P_M2ya,
38    P_M2a,
39    P_M2ab,
40    P_M2b,
41    P_M2xb,
42    P_M2xbc,
43    P_M2xc,
44    C_M2y,
45    A_M2y,
46    I_M2y,
47    A_M2,
48    B_M2,
49    I_M2,
50    B_M2x,
51    C_M2x,
52    I_M2x,
53    C_M2yc,
54    A_M2yac,
55    I_M2ya,
56    A_M2ya,
57    C_M2ybc,
58    I_M2yc,
59    A_M2a,
60    B_M2bc,
61    I_M2b,
62    B_M2b,
63    A_M2ac,
64    I_M2a,
65    B_M2xb,
66    C_M2xbc,
67    I_M2xc,
68    C_M2xc,
69    B_M2xbc,
70    I_M2xb,
71    MP_2y,
72    MP_2,
73    MP_2x,
74    MP_2yb,
75    MP_2c,
76    MP_2xa,
77    MC_2y,
78    MA_2y,
79    MI_2y,
80    MA_2,
81    MB_2,
82    MI_2,
83    MB_2x,
84    MC_2x,
85    MI_2x,
86    MP_2yc,
87    MP_2yac,
88    MP_2ya,
89    MP_2a,
90    MP_2ab,
91    MP_2b,
92    MP_2xb,
93    MP_2xbc,
94    MP_2xc,
95    MP_2ybc,
96    MP_2yn,
97    MP_2yab,
98    MP_2ac,
99    MP_2n,
100    MP_2bc,
101    MP_2xab,
102    MP_2xn,
103    MP_2xac,
104    MC_2yc,
105    MA_2yac,
106    MI_2ya,
107    MA_2ya,
108    MC_2ybc,
109    MI_2yc,
110    MA_2a,
111    MB_2bc,
112    MI_2b,
113    MB_2b,
114    MA_2ac,
115    MI_2a,
116    MB_2xb,
117    MC_2xbc,
118    MI_2xc,
119    MC_2xc,
120    MB_2xbc,
121    MI_2xb,
122    P_2_2,
123    P_2c_2,
124    P_2a_2a,
125    P_2_2b,
126    P_2_2ab,
127    P_2bc_2,
128    P_2ac_2ac,
129    P_2ac_2ab,
130    C_2c_2,
131    A_2a_2a,
132    B_2_2b,
133    C_2_2,
134    A_2_2,
135    B_2_2,
136    F_2_2,
137    I_2_2,
138    I_2b_2c,
139    P_2_M2,
140    P_M2_2,
141    P_M2_M2,
142    P_2c_M2,
143    P_2c_M2c,
144    P_M2a_2a,
145    P_M2_2a,
146    P_M2_M2b,
147    P_M2b_M2,
148    P_2_M2c,
149    P_M2a_2,
150    P_M2b_M2b,
151    P_2_M2a,
152    P_2_M2b,
153    P_M2b_2,
154    P_M2c_2,
155    P_M2c_M2c,
156    P_M2a_M2a,
157    P_2c_M2ac,
158    P_2c_M2b,
159    P_M2b_2a,
160    P_M2ac_2a,
161    P_M2bc_M2c,
162    P_M2a_M2ab,
163    P_2_M2bc,
164    P_2_M2ac,
165    P_M2ac_2,
166    P_M2ab_2,
167    P_M2ab_M2ab,
168    P_M2bc_M2bc,
169    P_2ac_M2,
170    P_2bc_M2bc,
171    P_M2ab_2ab,
172    P_M2_2ac,
173    P_M2_M2bc,
174    P_M2ab_M2,
175    P_2_M2ab,
176    P_M2bc_2,
177    P_M2ac_M2ac,
178    P_2c_M2n,
179    P_2c_M2ab,
180    P_M2bc_2a,
181    P_M2n_2a,
182    P_M2n_M2ac,
183    P_M2ac_M2n,
184    P_2_M2n,
185    P_M2n_2,
186    P_M2n_M2n,
187    C_2_M2,
188    A_M2_2,
189    B_M2_M2,
190    C_2c_M2,
191    C_2c_M2c,
192    A_M2a_2a,
193    A_M2_2a,
194    B_M2_M2b,
195    B_M2b_M2,
196    C_2_M2c,
197    A_M2a_2,
198    B_M2b_M2b,
199    A_2_M2,
200    B_2_M2,
201    B_M2_2,
202    C_M2_2,
203    C_M2_M2,
204    A_M2_M2,
205    A_2_M2c,
206    B_2_M2c,
207    B_M2c_2,
208    C_M2b_2,
209    C_M2b_M2b,
210    A_M2c_M2c,
211    A_2_M2a,
212    B_2_M2b,
213    B_M2b_2,
214    C_M2c_2,
215    C_M2c_M2c,
216    A_M2a_M2a,
217    A_2_M2ac,
218    B_2_M2bc,
219    B_M2bc_2,
220    C_M2bc_2,
221    C_M2bc_M2bc,
222    A_M2ac_M2ac,
223    F_2_M2,
224    F_M2_2,
225    F_M2_M2,
226    F_2_M2d,
227    F_M2d_2,
228    F_M2d_M2d,
229    I_2_M2,
230    I_M2_2,
231    I_M2_M2,
232    I_2_M2c,
233    I_M2a_2,
234    I_M2b_M2b,
235    I_2_M2a,
236    I_2_M2b,
237    I_M2b_2,
238    I_M2c_2,
239    I_M2c_M2c,
240    I_M2a_M2a,
241    MP_2_2,
242    P_2_2_M1n,
243    MP_2ab_2bc,
244    MP_2_2c,
245    MP_2a_2,
246    MP_2b_2b,
247    P_2_2_M1ab,
248    MP_2ab_2b,
249    P_2_2_M1bc,
250    MP_2b_2bc,
251    P_2_2_M1ac,
252    MP_2a_2c,
253    MP_2a_2a,
254    MP_2b_2,
255    MP_2_2b,
256    MP_2c_2c,
257    MP_2c_2,
258    MP_2_2a,
259    MP_2a_2bc,
260    MP_2b_2n,
261    MP_2n_2b,
262    MP_2ab_2c,
263    MP_2ab_2n,
264    MP_2n_2bc,
265    MP_2ac_2,
266    MP_2bc_2bc,
267    MP_2ab_2ab,
268    MP_2_2ac,
269    MP_2_2bc,
270    MP_2ab_2,
271    MP_2a_2ac,
272    MP_2b_2c,
273    MP_2a_2b,
274    MP_2ac_2c,
275    MP_2bc_2b,
276    MP_2b_2ab,
277    MP_2_2ab,
278    MP_2bc_2,
279    MP_2ac_2ac,
280    MP_2ab_2ac,
281    MP_2ac_2bc,
282    MP_2bc_2ab,
283    MP_2c_2b,
284    MP_2c_2ac,
285    MP_2ac_2a,
286    MP_2b_2a,
287    MP_2a_2ab,
288    MP_2bc_2c,
289    MP_2_2n,
290    MP_2n_2,
291    MP_2n_2n,
292    P_2_2ab_M1ab,
293    MP_2ab_2a,
294    P_2bc_2_M1bc,
295    MP_2c_2bc,
296    P_2ac_2ac_M1ac,
297    MP_2c_2a,
298    MP_2n_2ab,
299    MP_2n_2c,
300    MP_2a_2n,
301    MP_2bc_2n,
302    MP_2ac_2b,
303    MP_2b_2ac,
304    MP_2ac_2ab,
305    MP_2bc_2ac,
306    MP_2ac_2n,
307    MP_2bc_2a,
308    MP_2c_2ab,
309    MP_2n_2ac,
310    MP_2n_2a,
311    MP_2c_2n,
312    MC_2c_2,
313    MC_2c_2c,
314    MA_2a_2a,
315    MA_2_2a,
316    MB_2_2b,
317    MB_2b_2,
318    MC_2bc_2,
319    MC_2bc_2bc,
320    MA_2ac_2ac,
321    MA_2_2ac,
322    MB_2_2bc,
323    MB_2bc_2,
324    MC_2_2,
325    MA_2_2,
326    MB_2_2,
327    MC_2_2c,
328    MA_2a_2,
329    MB_2b_2b,
330    MC_2b_2,
331    MC_2b_2b,
332    MA_2c_2c,
333    MA_2_2c,
334    MB_2_2c,
335    MB_2c_2,
336    C_2_2_M1bc_1,
337    MC_2b_2bc,
338    C_2_2_M1bc_2,
339    MC_2b_2c,
340    A_2_2_M1ac_1,
341    MA_2a_2c,
342    A_2_2_M1ac_2,
343    MA_2ac_2c,
344    B_2_2_M1bc_1,
345    MB_2bc_2b,
346    B_2_2_M1bc_2,
347    MB_2b_2bc,
348    MF_2_2,
349    F_2_2_M1d,
350    MF_2uv_2vw,
351    MI_2_2,
352    MI_2_2c,
353    MI_2a_2,
354    MI_2b_2b,
355    MI_2b_2c,
356    MI_2a_2b,
357    MI_2b_2,
358    MI_2a_2a,
359    MI_2c_2c,
360    MI_2_2b,
361    MI_2_2a,
362    MI_2c_2,
363    P_4,
364    P_4w,
365    P_4c,
366    P_4cw,
367    I_4,
368    I_4bw,
369    P_M4,
370    I_M4,
371    MP_4,
372    MP_4c,
373    P_4ab_M1ab,
374    MP_4a,
375    P_4n_M1n,
376    MP_4bc,
377    MI_4,
378    I_4bw_M1bw,
379    MI_4ad,
380    P_4_2,
381    P_4ab_2ab,
382    P_4w_2c,
383    P_4abw_2nw,
384    P_4c_2,
385    P_4n_2n,
386    P_4cw_2c,
387    P_4nw_2abw,
388    I_4_2,
389    I_4bw_2bw,
390    P_4_M2,
391    P_4_M2ab,
392    P_4c_M2c,
393    P_4n_M2n,
394    P_4_M2c,
395    P_4_M2n,
396    P_4c_M2,
397    P_4c_M2ab,
398    I_4_M2,
399    I_4_M2c,
400    I_4bw_M2,
401    I_4bw_M2c,
402    P_M4_2,
403    P_M4_2c,
404    P_M4_2ab,
405    P_M4_2n,
406    P_M4_M2,
407    P_M4_M2c,
408    P_M4_M2ab,
409    P_M4_M2n,
410    I_M4_M2,
411    I_M4_M2c,
412    I_M4_2,
413    I_M4_2bw,
414    MP_4_2,
415    MP_4_2c,
416    P_4_2_M1ab,
417    MP_4a_2b,
418    P_4_2_M1n,
419    MP_4a_2bc,
420    MP_4_2ab,
421    MP_4_2n,
422    P_4ab_2ab_M1ab,
423    MP_4a_2a,
424    P_4ab_2n_M1ab,
425    MP_4a_2ac,
426    MP_4c_2,
427    MP_4c_2c,
428    P_4n_2c_M1n,
429    MP_4ac_2b,
430    P_4n_2_M1n,
431    MP_4ac_2bc,
432    MP_4c_2ab,
433    MP_4n_2n,
434    P_4n_2n_M1n,
435    MP_4ac_2a,
436    P_4n_2ab_M1n,
437    MP_4ac_2ac,
438    MI_4_2,
439    MI_4_2c,
440    I_4bw_2bw_M1bw,
441    MI_4bd_2,
442    I_4bw_2aw_M1bw,
443    MI_4bd_2c,
444    P_3,
445    P_31,
446    P_32,
447    R_3,
448    P_3A,
449    MP_3,
450    MR_3,
451    MP_3A,
452    P_3_2,
453    P_3_2D,
454    P_31_2c_0_0_1,
455    P_31_2D,
456    P_32_2c_0_0_M1,
457    P_32_2D,
458    R_3_2D,
459    P_3A_2,
460    P_3_M2D,
461    P_3_M2,
462    P_3_M2Dc,
463    P_3_M2c,
464    R_3_M2D,
465    P_3A_M2,
466    R_3_M2Dc,
467    P_3A_M2n,
468    MP_3_2,
469    MP_3_2c,
470    MP_3_2D,
471    MP_3_2Dc,
472    MR_3_2D,
473    MP_3A_2,
474    MR_3_2Dc,
475    MP_3A_2n,
476    P_6,
477    P_61,
478    P_65,
479    P_62,
480    P_64,
481    P_6c,
482    P_M6,
483    MP_6,
484    MP_6c,
485    P_6_2,
486    P_61_2_0_0_M1,
487    P_65_2_0_0_1,
488    P_62_2c_0_0_1,
489    P_64_2c_0_0_M1,
490    P_6c_2c,
491    P_6_M2,
492    P_6_M2c,
493    P_6c_M2,
494    P_6c_M2c,
495    P_M6_2,
496    P_M6c_2,
497    P_M6_M2,
498    P_M6c_M2c,
499    MP_6_2,
500    MP_6_2c,
501    MP_6c_2,
502    MP_6c_2c,
503    P_2_2_3,
504    F_2_2_3,
505    I_2_2_3,
506    P_2ac_2ab_3,
507    I_2b_2c_3,
508    MP_2_2_3,
509    P_2_2_3_M1n,
510    MP_2ab_2bc_3,
511    MF_2_2_3,
512    F_2_2_3_M1d,
513    MF_2uv_2vw_3,
514    MI_2_2_3,
515    MP_2ac_2ab_3,
516    MI_2b_2c_3,
517    P_4_2_3,
518    P_4n_2_3,
519    F_4_2_3,
520    F_4d_2_3,
521    I_4_2_3,
522    P_4acd_2ab_3,
523    P_4bd_2ab_3,
524    I_4bd_2c_3,
525    P_M4_2_3,
526    F_M4_2_3,
527    I_M4_2_3,
528    P_M4n_2_3,
529    F_M4c_2_3,
530    I_M4bd_2c_3,
531    MP_4_2_3,
532    P_4_2_3_M1n,
533    MP_4a_2bc_3,
534    MP_4n_2_3,
535    P_4n_2_3_M1n,
536    MP_4bc_2bc_3,
537    MF_4_2_3,
538    MF_4c_2_3,
539    F_4d_2_3_M1d,
540    MF_4vw_2vw_3,
541    F_4d_2_3_M1cd,
542    MF_4cvw_2vw_3,
543    MI_4_2_3,
544    MI_4bd_2c_3,
545}
546
547impl SpaceGroupHallSymbol {
548    pub fn get_hall_symbol(&self) -> String {
549        let i = *self as usize;
550        FULL_SPACE_GROUP_SYMBOLS
551            .get_hall_symbol(i)
552            .unwrap()
553            .to_string()
554    }
555    pub fn get_hm_symbol(&self) -> String {
556        let i = *self as usize;
557        FULL_SPACE_GROUP_SYMBOLS
558            .get_hm_full_notation(i)
559            .unwrap()
560            .to_string()
561    }
562    pub fn get_space_group_number_code(&self) -> String {
563        let i = *self as usize;
564        FULL_SPACE_GROUP_SYMBOLS
565            .get_space_group_number(i)
566            .unwrap()
567            .to_string()
568    }
569}