def test_restrict_irreps_dihedral_even_dihedral(self): N = 12 dg = DihedralGroup(N) for rot in range(1, N): if N % rot == 0: for axis in range(int(N // rot)): sg_id = (axis, rot) for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_regular_dihedral(self): g = DihedralGroup(10) rr = g.regular_representation N = 4 size = rr.size * N p = np.eye(size, size) p = p[:, np.random.permutation(size)] repr = directsum([rr]*N, change_of_basis=p) self.check_disentangle(repr)
def test_mix_dihedral(self): g = DihedralGroup(10) rr = directsum(list(g.representations.values())) N = 3 size = rr.size * N bcob = ortho_group.rvs(dim=size//5) bsize = bcob.shape[0] p = np.eye(size, size) for i in range(size//bsize): p[i*bsize:(i+1)*bsize, i*bsize:(i+1)*bsize] = bcob p = p[:, np.random.permutation(size)] repr = directsum([rr]*N, change_of_basis=p) self.check_disentangle(repr)
def test_restrict_rr_dihedral_odd_cyclic_odd(self): dg = DihedralGroup(9) repr = dg.regular_representation sg_id = (None, 3) self.check_restriction(dg, sg_id, repr)
def test_restrict_irreps_dihedral_odd_flips(self): dg = DihedralGroup(11) for axis in range(11): sg_id = (axis, 1) for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_restrict_rr_dihedral_even_dihedral_odd(self): dg = DihedralGroup(12) repr = dg.regular_representation sg_id = (1, 3) self.check_restriction(dg, sg_id, repr)
def test_restrict_rr_dihedral_even_cyclic_even(self): dg = DihedralGroup(8) repr = dg.regular_representation sg_id = (None, 4) self.check_restriction(dg, sg_id, repr)
def test_restrict_dihedral(self): dg = DihedralGroup(8) sg_id = (0, 4) for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_restrict_rr_dihedral_odd_flips(self): dg = DihedralGroup(11) repr = dg.regular_representation sg_id = (1, 1) self.check_restriction(dg, sg_id, repr)
def test_restrict_irreps_dihedral_even_flips(self): dg = DihedralGroup(12) sg_id = (1, 1) for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_dihedral_odd(self): g = DihedralGroup(15) self.check_group(g)
def test_restrict_rr_dihedral_even_dihedral_even(self): dg = DihedralGroup(12) repr = dg.regular_representation sg_id = (1, 6) self.check_disentangle(dg.restrict_representation(sg_id, repr))
def test_restrict_rr_dihedral_odd_cyclic_odd(self): dg = DihedralGroup(9) repr = dg.regular_representation sg_id = (0, 3) self.check_disentangle(dg.restrict_representation(sg_id, repr))
def test_restrict_irreps_dihedral_odd_cyclic(self): dg = DihedralGroup(13) sg_id = (0, 13) for name, irrep in dg.irreps.items(): self.check_disentangle(dg.restrict_representation(sg_id, irrep))
def test_restrict_irreps_dihedral_even_dihedral_odd(self): dg = DihedralGroup(12) sg_id = (1, 3) for name, irrep in dg.irreps.items(): self.check_disentangle(dg.restrict_representation(sg_id, irrep))
def test_dihedral_even(self): g = DihedralGroup(16) self.check_group(g)
def test_regular_dihedral(self): g = DihedralGroup(10) rr = g.regular_representation self.check_representation(rr) self.check_character(rr)
def test_dihedral_rr_small(self): dg = DihedralGroup(2) self.dihedral_rr_eval(dg, dg.representations['regular'])
def test_restrict_irreps_dihedral_even_cyclic_even(self): dg = DihedralGroup(12) sg_id = (None, 4) for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_mix_dihedral(self): g = DihedralGroup(10) rr = directsum(list(g.representations.values())) self.check_representation(rr) self.check_character(rr)
def test_restrict_irreps_dihedral_odd_cyclic(self): dg = DihedralGroup(13) sg_id = (None, 13) for name, irrep in dg.irreps.items(): self.check_restriction(dg, sg_id, irrep)
def test_dihedral_rr_large(self): dg = DihedralGroup(16) self.dihedral_rr_eval(dg, dg.representations['regular'])