Esempio n. 1
0
    def symm_data(self):
        """Returns the band data folded back to the first BZ and applies
        symmetry operations. Returns an index array to reduce memory usage."""
        pg = PointGroup(self.run.spacegroup.point_group)

        # apply symmetry operations from point group
        return self.apply_symmetry(self.data, pg.symmetry_ops)
Esempio n. 2
0
 def test_is_sub_super_group(self):
     pgmmm = PointGroup("mmm")
     pgmm2 = PointGroup("mm2")
     pg222 = PointGroup("222")
     pg4 = PointGroup("4")
     self.assertTrue(pgmmm.is_supergroup(pgmm2))
     self.assertTrue(pgmm2.is_subgroup(pgmmm))
     self.assertTrue(pgmmm.is_supergroup(pg222))
     self.assertFalse(pgmmm.is_supergroup(pg4))
     pgm3m = PointGroup("m-3m")
     pg6mmm = PointGroup("6/mmm")
     pg3m = PointGroup("-3m")
     # TODO: Fix the test below.
     #self.assertTrue(pg3m.is_subgroup(pgm3m))
     self.assertTrue(pg3m.is_subgroup(pg6mmm))
     self.assertFalse(pgm3m.is_supergroup(pg6mmm))
Esempio n. 3
0
 def test_is_sub_super_group(self):
     with warnings.catch_warnings() as w:
         warnings.simplefilter("ignore")
         pgmmm = PointGroup("mmm")
         pgmm2 = PointGroup("mm2")
         pg222 = PointGroup("222")
         pg4 = PointGroup("4")
         self.assertTrue(pgmmm.is_supergroup(pgmm2))
         self.assertTrue(pgmm2.is_subgroup(pgmmm))
         self.assertTrue(pgmmm.is_supergroup(pg222))
         self.assertFalse(pgmmm.is_supergroup(pg4))
         pgm3m = PointGroup("m-3m")
         pg6mmm = PointGroup("6/mmm")
         pg3m = PointGroup("-3m")
         # TODO: Fix the test below.
         # self.assertTrue(pg3m.is_subgroup(pgm3m))
         self.assertTrue(pg3m.is_subgroup(pg6mmm))
         self.assertFalse(pgm3m.is_supergroup(pg6mmm))
def sg_pg_compare(mpid='mp-989535'):
    stru = m.get_structure_by_material_id(mpid)
    spa = SpacegroupAnalyzer(stru)
    pg_name = spa.get_symmetry_dataset()['pointgroup']
    pg_ops = PointGroup(pg_name).symmetry_ops
    sp_ops = []
    sp_mats = []
    pg_mats = []
    for op in pg_ops:
        rotation = op.rotation_matrix
        pg_mats.append(jsanitize(rotation))
    for op in spa.get_symmetry_operations():
        rotation = op.rotation_matrix
        sp_mats.append(jsanitize(rotation))
        sp_ops.append(SymmOp.from_rotation_and_translation(
            rotation, (0, 0, 0)))
    sp_ops = set(sp_ops)
    #pg_mats.sort();sp_mats.sort()
    return pg_mats, sp_mats
Esempio n. 5
0
 def test_get_orbit(self):
     pg = PointGroup("mmm")
     self.assertEqual(len(pg.get_orbit([0.1, 0.1, 0.1])), 8)
     self.assertEqual(len(pg.get_orbit([0, 0, 0.1])), 2)
     self.assertEqual(len(pg.get_orbit([1.2, 1.2, 1])), 8)
Esempio n. 6
0
 def test_is_sub_super_group(self):
     with warnings.catch_warnings() as w:
         warnings.simplefilter("ignore")
         pgmmm = PointGroup("mmm")
         pgmm2 = PointGroup("mm2")
         pg222 = PointGroup("222")
         pg4 = PointGroup("4")
         self.assertTrue(pgmmm.is_supergroup(pgmm2))
         self.assertTrue(pgmm2.is_subgroup(pgmmm))
         self.assertTrue(pgmmm.is_supergroup(pg222))
         self.assertFalse(pgmmm.is_supergroup(pg4))
         pgm3m = PointGroup("m-3m")
         pg6mmm = PointGroup("6/mmm")
         pg3m = PointGroup("-3m")
         # TODO: Fix the test below.
         # self.assertTrue(pg3m.is_subgroup(pgm3m))
         self.assertTrue(pg3m.is_subgroup(pg6mmm))
         self.assertFalse(pgm3m.is_supergroup(pg6mmm))
Esempio n. 7
0
 def test_get_orbit(self):
     pg = PointGroup("mmm")
     self.assertEqual(len(pg.get_orbit([0.1, 0.1, 0.1])), 8)
     self.assertEqual(len(pg.get_orbit([0, 0, 0.1])), 2)
     self.assertEqual(len(pg.get_orbit([1.2, 1.2, 1])), 8)
Esempio n. 8
0
 def test_order(self):
     order = {"mmm": 8, "432": 24, "-6m2": 12}
     for k, v in order.items():
         pg = PointGroup(k)
         self.assertEqual(order[k], len(pg.symmetry_ops))
Esempio n. 9
0
 def test_is_sub_super_group(self):
     pgmmm = PointGroup("mmm")
     pgmm2 = PointGroup("mm2")
     pg222 = PointGroup("222")
     pg4 = PointGroup("4")
     self.assertTrue(pgmmm.is_supergroup(pgmm2))
     self.assertTrue(pgmm2.is_subgroup(pgmmm))
     self.assertTrue(pgmmm.is_supergroup(pg222))
     self.assertFalse(pgmmm.is_supergroup(pg4))
     pgm3m = PointGroup("m-3m")
     pg6mmm = PointGroup("6/mmm")
     pg3m = PointGroup("-3m")
     # TODO: Fix the test below.
     # self.assertTrue(pg3m.is_subgroup(pgm3m))
     self.assertTrue(pg3m.is_subgroup(pg6mmm))
     self.assertFalse(pgm3m.is_supergroup(pg6mmm))