def test_bz1(self, setup): bz = BrillouinZone(1.) repr(bz) bz.weight bz = BrillouinZone(setup.s1) assert len(bz) == 1 assert np.allclose(bz.tocartesian([0, 0, 0]), [0] * 3) assert np.allclose(bz.tocartesian([0.5, 0, 0]), [m.pi, 0, 0]) assert np.allclose(bz.toreduced([0, 0, 0]), [0] * 3) assert np.allclose([0.5, 0, 0], bz.tocartesian(bz.toreduced([0.5, 0, 0]))) for k in bz: assert np.allclose(k, np.zeros(3))
def test_bz1(self, setup): bz = BrillouinZone(1.) str(bz) bz.weight bz = BrillouinZone(setup.s1) assert len(bz) == 1 assert np.allclose(bz.tocartesian([0, 0, 0]), [0] * 3) assert np.allclose(bz.tocartesian([0.5, 0, 0]), [m.pi, 0, 0]) assert np.allclose(bz.toreduced([0, 0, 0]), [0] * 3) assert np.allclose([0.5, 0, 0], bz.tocartesian(bz.toreduced([0.5, 0, 0]))) for k in bz: assert np.allclose(k, np.zeros(3)) w = 0. for k, wk in bz.iter(True): assert np.allclose(k, np.zeros(3)) w += wk assert w == pytest.approx(1.) bz = BrillouinZone(setup.s1, [[0]*3, [0.5]*3], [.5]*2) assert len(bz) == 2 assert len(bz.copy()) == 2
def test_to_reduced(self, setup): bz = BrillouinZone(setup.s2) for k in [[0.1] * 3, [0.2] * 3]: cart = bz.tocartesian(k) rec = bz.toreduced(cart) assert np.allclose(rec, k)