当前位置: 首页>>代码示例>>Python>>正文


Python Site.as_dict方法代码示例

本文整理汇总了Python中pymatgen.core.sites.Site.as_dict方法的典型用法代码示例。如果您正苦于以下问题:Python Site.as_dict方法的具体用法?Python Site.as_dict怎么用?Python Site.as_dict使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pymatgen.core.sites.Site的用法示例。


在下文中一共展示了Site.as_dict方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: SiteTest

# 需要导入模块: from pymatgen.core.sites import Site [as 别名]
# 或者: from pymatgen.core.sites.Site import as_dict [as 别名]
class SiteTest(PymatgenTest):

    def setUp(self):
        self.ordered_site = Site("Fe", [0.25, 0.35, 0.45])
        self.disordered_site = Site({"Fe": 0.5, "Mn": 0.5},
                                    [0.25, 0.35, 0.45])
        self.propertied_site = Site("Fe2+", [0.25, 0.35, 0.45],
                                    {'magmom': 5.1, 'charge': 4.2})
        self.dummy_site = Site("X", [0, 0, 0])

    def test_properties(self):
        self.assertRaises(AttributeError, getattr, self.disordered_site,
                          'specie')
        self.assertIsInstance(self.ordered_site.specie, Element)
        self.assertEqual(self.propertied_site.properties["magmom"], 5.1)
        self.assertEqual(self.propertied_site.properties["charge"], 4.2)

    def test_to_from_dict(self):
        d = self.disordered_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site, self.disordered_site)
        self.assertNotEqual(site, self.ordered_site)
        d = self.propertied_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.properties["magmom"], 5.1)
        self.assertEqual(site.properties["charge"], 4.2)
        d = self.dummy_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.species, self.dummy_site.species)

    def test_hash(self):
        self.assertEqual(self.ordered_site.__hash__(), 26)
        self.assertEqual(self.disordered_site.__hash__(), 51)

    def test_cmp(self):
        self.assertTrue(self.ordered_site > self.disordered_site)

    def test_distance(self):
        osite = self.ordered_site
        self.assertAlmostEqual(np.linalg.norm([0.25, 0.35, 0.45]),
                               osite.distance_from_point([0, 0, 0]))
        self.assertAlmostEqual(osite.distance(self.disordered_site), 0)

    def test_pickle(self):
        o = pickle.dumps(self.propertied_site)
        self.assertEqual(pickle.loads(o), self.propertied_site)

    def test_setters(self):
        self.disordered_site.species = "Cu"
        self.assertEqual(self.disordered_site.species, Composition("Cu"))
        self.disordered_site.x = 1.25
        self.disordered_site.y = 1.35
        self.assertEqual(self.disordered_site.coords[0], 1.25)
        self.assertEqual(self.disordered_site.coords[1], 1.35)

        def set_bad_species():
            self.disordered_site.species = {"Cu": 0.5, "Gd": 0.6}
        self.assertRaises(ValueError, set_bad_species)
开发者ID:adengz,项目名称:pymatgen,代码行数:60,代码来源:test_sites.py

示例2: SiteTest

# 需要导入模块: from pymatgen.core.sites import Site [as 别名]
# 或者: from pymatgen.core.sites.Site import as_dict [as 别名]
class SiteTest(PymatgenTest):

    def setUp(self):
        self.ordered_site = Site("Fe", [0.25, 0.35, 0.45])
        self.disordered_site = Site({"Fe": 0.5, "Mn": 0.5},
                                    [0.25, 0.35, 0.45])
        self.propertied_site = Site("Fe2+", [0.25, 0.35, 0.45],
                                    {'magmom': 5.1, 'charge': 4.2})
        self.dummy_site = Site("X", [0, 0, 0])

    def test_properties(self):
        self.assertRaises(AttributeError, getattr, self.disordered_site,
                          'specie')
        self.assertIsInstance(self.ordered_site.specie, Element)
        self.assertEqual(self.propertied_site.magmom, 5.1)
        self.assertEqual(self.propertied_site.charge, 4.2)

    def test_to_from_dict(self):
        d = self.disordered_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site, self.disordered_site)
        self.assertNotEqual(site, self.ordered_site)
        d = self.propertied_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.magmom, 5.1)
        self.assertEqual(site.charge, 4.2)
        d = self.dummy_site.as_dict()
        site = Site.from_dict(d)
        self.assertEqual(site.species_and_occu, self.dummy_site.species_and_occu)

    def test_hash(self):
        self.assertEqual(self.ordered_site.__hash__(), 26)
        self.assertEqual(self.disordered_site.__hash__(), 51)

    def test_cmp(self):
        self.assertTrue(self.ordered_site > self.disordered_site)

    def test_distance(self):
        osite = self.ordered_site
        self.assertAlmostEqual(np.linalg.norm([0.25, 0.35, 0.45]),
                               osite.distance_from_point([0, 0, 0]))
        self.assertAlmostEqual(osite.distance(self.disordered_site), 0)

    def test_pickle(self):
        o = pickle.dumps(self.propertied_site)
        self.assertEqual(pickle.loads(o), self.propertied_site)
开发者ID:albalu,项目名称:pymatgen,代码行数:48,代码来源:test_sites.py


注:本文中的pymatgen.core.sites.Site.as_dict方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。