示例#1
0
    def test_Majorana(self):
        tests = [(1, do.Sigmay()), (2, do.Sigmaz(0) * do.Sigmax(1)),
                 (4, do.Sigmaz(0) * do.Sigmaz(1) * do.Sigmax(2))]

        for idx, op in tests:
            X = Majorana(idx)
            self.assertEqual(X, op)
示例#2
0
def ising(L):
    d = do.IndexSum(
        do.Sigmaz(0) * do.Sigmaz(1)) + 0.2 * do.IndexSum(do.Sigmax())
    d.L = L

    n = np.zeros((2**L, 2**L), dtype=np.complex128)
    n += sum(np_sigmaz(i, L).dot(np_sigmaz(i + 1, L)) for i in range(L - 1))
    n += 0.2 * sum(np_sigmax(i, L) for i in range(L))

    return d, n
示例#3
0
def longrange(L):
    d = do.Sum(
        do.IndexSum(do.Sigmaz(0) * do.Sigmaz(i)) for i in range(1, L - 1))
    d += 0.5 * do.IndexSum(do.Sigmax(0) * do.Sigmax(1))
    d += 0.1 * do.Sum(
        do.IndexSum(s()) for s in (do.Sigmax, do.Sigmay, do.Sigmaz))
    d.L = L

    n = np.zeros((2**L, 2**L), dtype=np.complex128)

    for j in range(1, L - 1):
        n += sum(
            np_sigmaz(i, L).dot(np_sigmaz(i + j, L)) for i in range(L - j))

    n += 0.5 * sum(
        np_sigmax(i, L).dot(np_sigmax(i + 1, L)) for i in range(L - 1))
    n += 0.1 * sum(np_sigmai(t, i, L) for i in range(L) for t in 'xyz')

    return d, n
示例#4
0
 def test_MSC_size(self):
     # simply an example in which I know the answer
     s = do.Sigmaz(0) + do.Sigmaz(1) + do.Sigmax(0)
     self.assertEqual(s.MSC_size, 3)
示例#5
0
 def test_commutator(self):
     self.assertEqual(commutator(do.Sigmax(), do.Sigmay()),
                      2j * do.Sigmaz())