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))
def test_o2(self): g = O2(4) self.check_group(g)
def test_mix_o2(self): g = O2(6) rr = directsum(list(g.representations.values())) self.check_representation(rr) self.check_character(rr)