Exemplo n.º 1
0
h_pqrs = molecule.two_body_integrals
Enuc = molecule.nuclear_repulsion
fci_energy = molecule.fci_energy
print(fci_energy)

# OpenFermion Hamiltonian
molecular_hamiltonian = molecule.get_molecular_hamiltonian()
fermion_hamiltonian = get_fermion_operator(molecular_hamiltonian)
qubit_hamiltonian = jordan_wigner(fermion_hamiltonian)
qubit_hamiltonian.compress()
#print('The Jordan-Wigner Hamiltonian in canonical basis follows:\n{}'.format(qubit_hamiltonian))
circuit_list = qubit_hamiltonian

#h_pq, h_pqrs = molecular2sec_quant(h_pq,h_pqrs)

Model = SecondQuantizedHamiltonian(2,
                                   4,
                                   h_pq,
                                   h_pqrs,
                                   nuclear_repulsion=Enuc,
                                   add_spin=True,
                                   anti_symmetric=False)
#Model.get_circuit()
circuit_list2 = Model.circuit_list('vqe')
print('OepnFerm')
for i in circuit_list:
    print(i)
print('New')
for i in circuit_list2:
    print(i)
Exemplo n.º 2
0
from quantum_circuit import QuantumCircuit, SecondQuantizedHamiltonian, PairingHamiltonian, CircuitList, PauliString, X

l = 4  # number of spin orbitals / number of qubits
n = 2  # Number of occupied spin orbitals

Rs = [0.4, 0.74, 1.0, 1.6, 2.2, 2.8]

fci = np.zeros_like(Rs)
hf = np.zeros_like(Rs)
vqe_factors = np.zeros_like(Rs)

for i, R in enumerate(Rs):
    h, v, Enuc, E = get_h2_matrix(R)
    fci[i] = E['fci']
    hf[i] = E['hf']

    h2 = SecondQuantizedHamiltonian(n,
                                    l,
                                    h,
                                    v,
                                    nuclear_repulsion=Enuc,
                                    add_spin=True)
    for p in h2.circuit_list('vqe'):
        if len(p) == 0:
            print('factor:', p.factor)
            vqe_factors[i] = p.factor

np.save('fci.npy', fci)
np.save('hf.npy', hf)
np.save('vqe_factors.npy', vqe_factors)