def test_hamiltonian(self):
# printing an example from a H2 file
hfile = self._get_resource_path("H2Equilibrium.txt")
hamiltonian = make_Hamiltonian(Hamiltonian_from_file(hfile))
self.log.info(hamiltonian)
# [[-0.24522469381221926 0 0 0.18093133934472627 ]
# [0 -1.0636560168497590 0.18093133934472627 0]
# [0 0.18093133934472627 -1.0636560168497592 0]
# [0.18093133934472627 0 0 -1.8369675149908681]]
self.assertSequenceEqual([str(i) for i in hamiltonian[0]],
['(-0.245224693812+0j)', '0j', '0j', '(0.180931339345+0j)'])
self.assertSequenceEqual([str(i) for i in hamiltonian[1]],
['0j', '(-1.06365601685+0j)', '(0.180931339345+0j)', '0j'])
self.assertSequenceEqual([str(i) for i in hamiltonian[2]],
['0j', '(0.180931339345+0j)', '(-1.06365601685+0j)', '0j'])
self.assertSequenceEqual([str(i) for i in hamiltonian[3]],
['(0.180931339345+0j)', '0j', '0j', '(-1.83696751499+0j)'])
# printing an example from a graph input
n = 3
v0 = np.zeros(n)
v0[2] = 1
v1 = np.zeros(n)
v1[0] = 1
v1[1] = 1
v2 = np.zeros(n)
v2[0] = 1
v2[2] = 1
v3 = np.zeros(n)
v3[1] = 1
v3[2] = 1
pauli_list = [(1, Pauli(v0, np.zeros(n))), (1, Pauli(v1, np.zeros(n))),
(1, Pauli(v2, np.zeros(n))), (1, Pauli(v3, np.zeros(n)))]
a = make_Hamiltonian(pauli_list)
self.log.info(a)
w, v = la.eigh(a, eigvals=(0, 0))
self.log.info(w)
self.log.info(v)
data = {'000': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'001': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'010': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'011': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'100': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'101': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'110': 10}
self.log.info(Energy_Estimate(data, pauli_list))
data = {'111': 10}
self.log.info(Energy_Estimate(data, pauli_list))
评论列表
文章目录