def test_restrict_irreps_o2_flips(self):
        dg = O2(10)

        S = 7
        for axis in range(S):
            sg_id = (axis * 2 * np.pi / S, 1)
            for name, irrep in dg.irreps.items():
                self.check_restriction(dg, sg_id, irrep)
    def test_restrict_irreps_o2_dihedral_even(self):
        dg = O2(10)

        S = 7
        for axis in range(S):
            sg_id = (axis * 2 * np.pi / (6 * S), 6)
            for name, irrep in dg.irreps.items():
                self.check_restriction(dg, sg_id, irrep)
    def test_mix_o2(self):
        g = O2(6)
        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_o2_o2(self):
     dg = O2(10)
     repr = directsum(list(dg.irreps.values()))
     sg_id = (1., -1)
     self.check_restriction(dg, sg_id, repr)
 def test_restrict_o2_cyclic_odd(self):
     dg = O2(10)
     repr = directsum(list(dg.irreps.values()))
     sg_id = (None, 3)
     self.check_restriction(dg, sg_id, repr)
 def test_restrict_o2_dihedral_odd(self):
     dg = O2(10)
     repr = directsum(list(dg.irreps.values()))
     sg_id = (0., 3)
     self.check_restriction(dg, sg_id, repr)
 def test_restrict_irreps_o2_cyclic_even(self):
     dg = O2(10)
     sg_id = (None, 4)
     for name, irrep in dg.irreps.items():
         self.check_restriction(dg, sg_id, irrep)
 def test_restrict_o2_cyclic_even(self):
     dg = O2(10)
     repr = directsum(list(dg.irreps.values()))
     sg_id = (None, 4)
     self.check_disentangle(dg.restrict_representation(sg_id, repr))
 def test_restrict_o2_dihedral_even(self):
     dg = O2(10)
     repr = directsum(list(dg.irreps.values()))
     sg_id = (0., 6)
     self.check_disentangle(dg.restrict_representation(sg_id, repr))
 def test_restrict_irreps_o2_cyclic_even(self):
     dg = O2(10)
     sg_id = (None, 4)
     for name, irrep in dg.irreps.items():
         self.check_disentangle(dg.restrict_representation(sg_id, irrep))
 def test_restrict_irreps_o2_dihedral_even(self):
     dg = O2(10)
     sg_id = (0., 6)
     for name, irrep in dg.irreps.items():
         self.check_disentangle(dg.restrict_representation(sg_id, irrep))
Пример #12
0
 def test_o2(self):
     g = O2(4)
     self.check_group(g)
Пример #13
0
    def test_mix_o2(self):
        g = O2(6)
        rr = directsum(list(g.representations.values()))

        self.check_representation(rr)
        self.check_character(rr)