1 #include <qpms/groups.h>
2 const qpms_finite_group_t QPMS_FINITE_GROUP_C2
= {
10 (qpms_gmi_t
[]) { // invi
13 (qpms_gmi_t
[]) {1}, // gens
15 (qpms_permutation_t
[]){ // permrep
21 (qpms_irot3_t
[]) { // rep3d
22 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
23 {{6.123233995736766e-17+1.0*I
, 0.0+0.0*I
}, 1},
26 (struct qpms_finite_group_irrep_t
[]) { // irreps
30 (complex double []) {1, -1} // m
35 (complex double []) {1, 1} // m
40 const qpms_finite_group_t QPMS_FINITE_GROUP_C2v
= {
44 (qpms_gmi_t
[]) { // mt
50 (qpms_gmi_t
[]) { // invi
53 (qpms_gmi_t
[]) {1, 3}, // gens
55 (qpms_permutation_t
[]){ // permrep
63 (qpms_irot3_t
[]) { // rep3d
64 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
65 {{0.0+0.0*I
, 0.0+1.0*I
}, -1},
66 {{0.0+1.0*I
, 0.0+0.0*I
}, 1},
67 {{0.0+0.0*I
, 1.0+0.0*I
}, -1},
70 (struct qpms_finite_group_irrep_t
[]) { // irreps
74 (complex double []) {1, 1, 1, 1} // m
79 (complex double []) {1, -1, 1, -1} // m
84 (complex double []) {1, -1, -1, 1} // m
89 (complex double []) {1, 1, -1, -1} // m
94 const qpms_finite_group_t QPMS_FINITE_GROUP_C4
= {
98 (qpms_gmi_t
[]) { // mt
104 (qpms_gmi_t
[]) { // invi
107 (qpms_gmi_t
[]) {1}, // gens
109 (qpms_permutation_t
[]){ // permrep
117 (qpms_irot3_t
[]) { // rep3d
118 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
119 {{0.7071067811865476+0.7071067811865475*I
, 0.0+0.0*I
}, 1},
120 {{2.220446049250313e-16+1.0*I
, 0.0+0.0*I
}, 1},
121 {{-0.7071067811865474+0.7071067811865477*I
, 0.0+0.0*I
}, 1},
124 (struct qpms_finite_group_irrep_t
[]) { // irreps
128 (complex double []) {1, -1, 1, -1} // m
133 (complex double []) {1, 1j
, (-1+0j
), (-0-1j
)} // m
138 (complex double []) {1, 1, 1, 1} // m
143 (complex double []) {1, -1j
, (-1+0j
), 1j
} // m
148 const qpms_finite_group_t QPMS_FINITE_GROUP_C4v
= {
152 (qpms_gmi_t
[]) { // mt
153 0, 1, 2, 3, 4, 5, 6, 7,
154 1, 2, 3, 0, 7, 4, 5, 6,
155 2, 3, 0, 1, 6, 7, 4, 5,
156 3, 0, 1, 2, 5, 6, 7, 4,
157 4, 5, 6, 7, 0, 1, 2, 3,
158 5, 6, 7, 4, 3, 0, 1, 2,
159 6, 7, 4, 5, 2, 3, 0, 1,
160 7, 4, 5, 6, 1, 2, 3, 0,
162 (qpms_gmi_t
[]) { // invi
163 0, 3, 2, 1, 4, 5, 6, 7
165 (qpms_gmi_t
[]) {1, 7}, // gens
167 (qpms_permutation_t
[]){ // permrep
179 (qpms_irot3_t
[]) { // rep3d
180 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
181 {{0.7071067811865476+0.7071067811865475*I
, 0.0+0.0*I
}, 1},
182 {{2.220446049250313e-16+1.0*I
, 0.0+0.0*I
}, 1},
183 {{-0.7071067811865474+0.7071067811865477*I
, 0.0+0.0*I
}, 1},
184 {{0.0+0.0*I
, 0.7071067811865477-0.7071067811865474*I
}, -1},
185 {{0.0+0.0*I
, 1.0+2.220446049250313e-16*I
}, -1},
186 {{0.0+0.0*I
, 0.7071067811865475+0.7071067811865476*I
}, -1},
187 {{0.0+0.0*I
, 0.0+1.0*I
}, -1},
190 (struct qpms_finite_group_irrep_t
[]) { // irreps
194 (complex double []) {1, 1, 1, 1, 1, 1, 1, 1} // m
199 (complex double []) {1, 1, 1, 1, -1, -1, -1, -1} // m
204 (complex double []) {
234 (complex double []) {1, -1, 1, -1, 1, -1, 1, -1} // m
239 (complex double []) {1, -1, 1, -1, -1, 1, -1, 1} // m
244 const qpms_finite_group_t QPMS_FINITE_GROUP_D2h
= {
248 (qpms_gmi_t
[]) { // mt
249 0, 1, 2, 3, 4, 5, 6, 7,
250 1, 0, 3, 2, 5, 4, 7, 6,
251 2, 3, 0, 1, 6, 7, 4, 5,
252 3, 2, 1, 0, 7, 6, 5, 4,
253 4, 5, 6, 7, 0, 1, 2, 3,
254 5, 4, 7, 6, 1, 0, 3, 2,
255 6, 7, 4, 5, 2, 3, 0, 1,
256 7, 6, 5, 4, 3, 2, 1, 0,
258 (qpms_gmi_t
[]) { // invi
259 0, 1, 2, 3, 4, 5, 6, 7
261 (qpms_gmi_t
[]) {1, 3, 7}, // gens
263 (qpms_permutation_t
[]){ // permrep
275 (qpms_irot3_t
[]) { // rep3d
276 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
277 {{0.0+0.0*I
, 0.0+1.0*I
}, -1},
278 {{0.0+1.0*I
, 0.0+0.0*I
}, 1},
279 {{0.0+0.0*I
, 1.0+0.0*I
}, -1},
280 {{0.0+0.0*I
, 0.0+1.0*I
}, 1},
281 {{-1.0+0.0*I
, 0.0+0.0*I
}, -1},
282 {{0.0+0.0*I
, -1.0+0.0*I
}, 1},
283 {{0.0+1.0*I
, 0.0+0.0*I
}, -1},
286 (struct qpms_finite_group_irrep_t
[]) { // irreps
290 (complex double []) {1, -1, 1, -1, -1, 1, -1, 1} // m
295 (complex double []) {1, 1, -1, -1, -1, -1, 1, 1} // m
300 (complex double []) {1, 1, 1, 1, -1, -1, -1, -1} // m
305 (complex double []) {1, -1, -1, 1, 1, -1, -1, 1} // m
310 (complex double []) {1, 1, 1, 1, 1, 1, 1, 1} // m
315 (complex double []) {1, -1, 1, -1, 1, -1, 1, -1} // m
320 (complex double []) {1, 1, -1, -1, 1, 1, -1, -1} // m
325 (complex double []) {1, -1, -1, 1, -1, 1, 1, -1} // m
330 const qpms_finite_group_t QPMS_FINITE_GROUP_D3h
= {
334 (qpms_gmi_t
[]) { // mt
335 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
336 1, 2, 0, 5, 3, 4, 8, 6, 7, 10, 11, 9,
337 2, 0, 1, 4, 5, 3, 7, 8, 6, 11, 9, 10,
338 3, 4, 5, 0, 1, 2, 10, 11, 9, 8, 6, 7,
339 4, 5, 3, 2, 0, 1, 9, 10, 11, 6, 7, 8,
340 5, 3, 4, 1, 2, 0, 11, 9, 10, 7, 8, 6,
341 6, 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 5,
342 7, 8, 6, 11, 9, 10, 2, 0, 1, 4, 5, 3,
343 8, 6, 7, 10, 11, 9, 1, 2, 0, 5, 3, 4,
344 9, 10, 11, 6, 7, 8, 4, 5, 3, 2, 0, 1,
345 10, 11, 9, 8, 6, 7, 3, 4, 5, 0, 1, 2,
346 11, 9, 10, 7, 8, 6, 5, 3, 4, 1, 2, 0,
348 (qpms_gmi_t
[]) { // invi
349 0, 2, 1, 3, 4, 5, 6, 7, 8, 10, 9, 11
351 (qpms_gmi_t
[]) {1, 5, 11}, // gens
353 (qpms_permutation_t
[]){ // permrep
369 (qpms_irot3_t
[]) { // rep3d
370 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
371 {{0.5000000000000001+0.8660254037844386*I
, 0.0+0.0*I
}, 1},
372 {{-0.4999999999999998+0.8660254037844388*I
, 0.0+0.0*I
}, 1},
373 {{0.0+0.0*I
, 0.8660254037844388-0.4999999999999998*I
}, -1},
374 {{0.0+0.0*I
, 0.8660254037844386+0.5000000000000002*I
}, -1},
375 {{0.0+0.0*I
, -5.551115123125783e-17+1.0*I
}, -1},
376 {{0.0+0.0*I
, -1.0-5.551115123125783e-17*I
}, 1},
377 {{0.0+0.0*I
, -0.5000000000000001-0.8660254037844386*I
}, 1},
378 {{0.0+0.0*I
, 0.4999999999999998-0.8660254037844388*I
}, 1},
379 {{0.8660254037844388-0.4999999999999998*I
, 0.0+0.0*I
}, -1},
380 {{0.8660254037844386+0.5000000000000002*I
, 0.0+0.0*I
}, -1},
381 {{-5.551115123125783e-17+1.0*I
, 0.0+0.0*I
}, -1},
384 (struct qpms_finite_group_irrep_t
[]) { // irreps
388 (complex double []) {1, 1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1} // m
393 (complex double []) {
398 -0.5, -0.8660254037844386,
399 0.8660254037844386, -0.5,
401 -0.4999999999999999, 0.8660254037844386,
402 -0.8660254037844386, -0.4999999999999999,
404 -0.4999999999999999, -0.8660254037844386,
405 -0.8660254037844386, 0.4999999999999999,
407 -0.49999999999999994, 0.8660254037844385,
408 0.8660254037844385, 0.49999999999999994,
410 0.9999999999999998, 0.0,
411 0.0, -0.9999999999999998,
413 0.9999999999999998, 0.0,
414 0.0, -0.9999999999999998,
416 -0.4999999999999999, -0.8660254037844384,
417 -0.8660254037844384, 0.4999999999999999,
419 -0.4999999999999997, 0.8660254037844384,
420 0.8660254037844384, 0.4999999999999997,
422 -0.4999999999999997, -0.8660254037844384,
423 0.8660254037844384, -0.4999999999999997,
425 -0.4999999999999998, 0.8660254037844383,
426 -0.8660254037844383, -0.4999999999999998,
428 0.9999999999999996, 0.0,
429 0.0, 0.9999999999999996,
435 (complex double []) {1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1} // m
440 (complex double []) {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} // m
445 (complex double []) {1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1} // m
450 (complex double []) {
455 -0.5, -0.8660254037844386,
456 0.8660254037844386, -0.5,
458 -0.4999999999999999, 0.8660254037844386,
459 -0.8660254037844386, -0.4999999999999999,
461 -0.4999999999999999, -0.8660254037844386,
462 -0.8660254037844386, 0.4999999999999999,
464 -0.49999999999999994, 0.8660254037844385,
465 0.8660254037844385, 0.49999999999999994,
467 0.9999999999999998, 0.0,
468 0.0, -0.9999999999999998,
470 -0.9999999999999998, 0.0,
471 0.0, 0.9999999999999998,
473 0.4999999999999999, 0.8660254037844384,
474 0.8660254037844384, -0.4999999999999999,
476 0.4999999999999997, -0.8660254037844384,
477 -0.8660254037844384, -0.4999999999999997,
479 0.4999999999999997, 0.8660254037844384,
480 -0.8660254037844384, 0.4999999999999997,
482 0.4999999999999998, -0.8660254037844383,
483 0.8660254037844383, 0.4999999999999998,
485 -0.9999999999999996, 0.0,
486 0.0, -0.9999999999999996,
492 const qpms_finite_group_t QPMS_FINITE_GROUP_D4h
= {
496 (qpms_gmi_t
[]) { // mt
497 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
498 1, 2, 3, 0, 7, 4, 5, 6, 11, 8, 9, 10, 13, 14, 15, 12,
499 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 13,
500 3, 0, 1, 2, 5, 6, 7, 4, 9, 10, 11, 8, 15, 12, 13, 14,
501 4, 5, 6, 7, 0, 1, 2, 3, 14, 15, 12, 13, 10, 11, 8, 9,
502 5, 6, 7, 4, 3, 0, 1, 2, 13, 14, 15, 12, 11, 8, 9, 10,
503 6, 7, 4, 5, 2, 3, 0, 1, 12, 13, 14, 15, 8, 9, 10, 11,
504 7, 4, 5, 6, 1, 2, 3, 0, 15, 12, 13, 14, 9, 10, 11, 8,
505 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7,
506 9, 10, 11, 8, 15, 12, 13, 14, 3, 0, 1, 2, 5, 6, 7, 4,
507 10, 11, 8, 9, 14, 15, 12, 13, 2, 3, 0, 1, 6, 7, 4, 5,
508 11, 8, 9, 10, 13, 14, 15, 12, 1, 2, 3, 0, 7, 4, 5, 6,
509 12, 13, 14, 15, 8, 9, 10, 11, 6, 7, 4, 5, 2, 3, 0, 1,
510 13, 14, 15, 12, 11, 8, 9, 10, 5, 6, 7, 4, 3, 0, 1, 2,
511 14, 15, 12, 13, 10, 11, 8, 9, 4, 5, 6, 7, 0, 1, 2, 3,
512 15, 12, 13, 14, 9, 10, 11, 8, 7, 4, 5, 6, 1, 2, 3, 0,
514 (qpms_gmi_t
[]) { // invi
515 0, 3, 2, 1, 4, 5, 6, 7, 8, 9, 10, 11, 14, 13, 12, 15
517 (qpms_gmi_t
[]) {1, 7, 15}, // gens
519 (qpms_permutation_t
[]){ // permrep
539 (qpms_irot3_t
[]) { // rep3d
540 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
541 {{0.7071067811865476+0.7071067811865475*I
, 0.0+0.0*I
}, 1},
542 {{2.220446049250313e-16+1.0*I
, 0.0+0.0*I
}, 1},
543 {{-0.7071067811865474+0.7071067811865477*I
, 0.0+0.0*I
}, 1},
544 {{0.0+0.0*I
, 0.7071067811865477-0.7071067811865474*I
}, -1},
545 {{0.0+0.0*I
, 1.0+2.220446049250313e-16*I
}, -1},
546 {{0.0+0.0*I
, 0.7071067811865475+0.7071067811865476*I
}, -1},
547 {{0.0+0.0*I
, 0.0+1.0*I
}, -1},
548 {{0.0+0.0*I
, -1.0+0.0*I
}, 1},
549 {{0.0+0.0*I
, -0.7071067811865476-0.7071067811865475*I
}, 1},
550 {{0.0+0.0*I
, -2.220446049250313e-16-1.0*I
}, 1},
551 {{0.0+0.0*I
, 0.7071067811865474-0.7071067811865477*I
}, 1},
552 {{0.7071067811865477-0.7071067811865474*I
, 0.0+0.0*I
}, -1},
553 {{1.0+2.220446049250313e-16*I
, 0.0+0.0*I
}, -1},
554 {{0.7071067811865475+0.7071067811865476*I
, 0.0+0.0*I
}, -1},
555 {{0.0+1.0*I
, 0.0+0.0*I
}, -1},
558 (struct qpms_finite_group_irrep_t
[]) { // irreps
562 (complex double []) {1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1} // m
567 (complex double []) {1, -1, 1, -1, -1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1} // m
572 (complex double []) {
626 (complex double []) {1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1} // m
631 (complex double []) {1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1} // m
636 (complex double []) {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} // m
641 (complex double []) {1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1} // m
646 (complex double []) {1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1} // m
651 (complex double []) {1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1} // m
656 (complex double []) {
710 const qpms_finite_group_t QPMS_FINITE_GROUP_trivial_g
= {
714 (qpms_gmi_t
[]) { // mt
717 (qpms_gmi_t
[]) { // invi
720 (qpms_gmi_t
[]) {0}, // gens
722 (qpms_permutation_t
[]){ // permrep
727 (qpms_irot3_t
[]) { // rep3d
728 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
731 (struct qpms_finite_group_irrep_t
[]) { // irreps
735 (complex double []) {1} // m
740 const qpms_finite_group_t QPMS_FINITE_GROUP_x_and_z_flip
= {
741 "x_and_z_flip", // name
744 (qpms_gmi_t
[]) { // mt
750 (qpms_gmi_t
[]) { // invi
753 (qpms_gmi_t
[]) {1, 3}, // gens
755 (qpms_permutation_t
[]){ // permrep
763 (qpms_irot3_t
[]) { // rep3d
764 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
765 {{0.0+0.0*I
, 0.0+1.0*I
}, -1},
766 {{0.0+0.0*I
, -1.0+0.0*I
}, 1},
767 {{0.0+1.0*I
, 0.0+0.0*I
}, -1},
770 (struct qpms_finite_group_irrep_t
[]) { // irreps
774 (complex double []) {1, -1, 1, -1} // m
779 (complex double []) {1, 1, 1, 1} // m
784 (complex double []) {1, 1, -1, -1} // m
789 (complex double []) {1, -1, -1, 1} // m
794 const qpms_finite_group_t QPMS_FINITE_GROUP_y_and_z_flip
= {
795 "y_and_z_flip", // name
798 (qpms_gmi_t
[]) { // mt
804 (qpms_gmi_t
[]) { // invi
807 (qpms_gmi_t
[]) {1, 3}, // gens
809 (qpms_permutation_t
[]){ // permrep
817 (qpms_irot3_t
[]) { // rep3d
818 {{1.0+0.0*I
, 0.0+0.0*I
}, 1},
819 {{0.0+0.0*I
, 1.0+0.0*I
}, -1},
820 {{0.0+0.0*I
, 0.0+1.0*I
}, 1},
821 {{0.0+1.0*I
, 0.0+0.0*I
}, -1},
824 (struct qpms_finite_group_irrep_t
[]) { // irreps
828 (complex double []) {1, -1, 1, -1} // m
833 (complex double []) {1, 1, 1, 1} // m
838 (complex double []) {1, 1, -1, -1} // m
843 (complex double []) {1, -1, -1, 1} // m