Ejemplo n.º 1
0
 def test_class1(self, setup):
     class Test(SuperCellChild):
         def __init__(self, sc):
             self.set_supercell(sc)
         def eigh(self, k, *args, **kwargs):
             return np.arange(3)
         def eig(self, k, *args, **kwargs):
             return np.arange(3) - 1
     bz = BrillouinZone(Test(setup.s1))
     str(bz)
     assert np.allclose(bz.eigh(), np.arange(3))
     assert np.allclose(bz.eig(), np.arange(3)-1)
Ejemplo n.º 2
0
 def test_class2(self, setup):
     class Test(SuperCellChild):
         def __init__(self, sc):
             self.set_supercell(sc)
         def eigh(self, k, *args, **kwargs):
             return np.arange(3)
         def eig(self, k, *args, **kwargs):
             return np.arange(3) - 1
     bz = BrillouinZone(Test(setup.s1))
     # Try the list/yield method
     bz.aslist()
     for val in bz.eigh():
         assert np.allclose(val, np.arange(3))
     bz.asyield()
     for val in bz.eigh():
         assert np.allclose(val, np.arange(3))
     for val in bz.eig():
         assert np.allclose(val, np.arange(3) - 1)
     # Average
     assert np.allclose(bz.asaverage().eigh(), np.arange(3))
     assert np.allclose(bz.asaverage().eigh(eta=True), np.arange(3))
Ejemplo n.º 3
0
    def test_class2(self):
        class Test(SuperCellChild):
            def __init__(self, sc):
                self.set_supercell(sc)

            def eigh(self, k, *args, **kwargs):
                return np.arange(3)

            def eig(self, k, *args, **kwargs):
                return np.arange(3) - 1

        bz = BrillouinZone(Test(self.s1))
        # Yields
        bz.yields()
        for val in bz.eigh():
            assert_true(np.allclose(val, np.arange(3)))
        for val in bz.eig():
            assert_true(np.allclose(val, np.arange(3) - 1))
        # Average
        assert_true(np.allclose(bz.average().eigh(), np.arange(3)))