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)
示例#11
0
 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))
示例#16
0
 def test_dihedral_even(self):
     g = DihedralGroup(16)
     self.check_group(g)
示例#17
0
 def test_regular_dihedral(self):
     g = DihedralGroup(10)
     rr = g.regular_representation
     self.check_representation(rr)
     self.check_character(rr)
示例#18
0
 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)
示例#20
0
    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)
示例#22
0
 def test_dihedral_rr_large(self):
     dg = DihedralGroup(16)
     self.dihedral_rr_eval(dg, dg.representations['regular'])