示例#1
0
def get_qdot_matrix(n, l, omega, grid_length=5, n_grid=1001):
    odho = ODQD(n, l, grid_length, n_grid)
    odho.setup_system(potential=HOPotential(omega), add_spin=True)

    one_body = odho.h
    one_body[np.absolute(one_body) < 1e-8] = 0
    two_body = odho.u
    two_body[np.absolute(two_body) < 1e-8] = 0

    # Coupled Cluster
    Eref = odho.compute_reference_energy()
    ccsd = CCSD(odho, verbose=False)
    ccsd.compute_ground_state()
    Ecc = ccsd.compute_energy()
    return one_body, two_body, [Eref, Ecc]
示例#2
0
# Generate system
omega = 1

grid_length = 5
num_grid_points = 1001

odho = ODQD(n, l, grid_length, num_grid_points)
odho.setup_system(potential=HOPotential(omega), add_spin=True)

one_body = odho.h
one_body[np.absolute(one_body) < 1e-8] = 0
two_body = odho.u
two_body[np.absolute(two_body) < 1e-8] = 0

# Coupled Cluster
print('Reference energy:', odho.compute_reference_energy())
ccsd = CCSD(odho, verbose=False)
ccsd.compute_ground_state()
print('ECCSD =', ccsd.compute_energy())

# Prepare circuit list
H2 = SecondQuantizedHamiltonian(n, l)
H2.set_integrals(one_body, two_body, anti_symmetric=True)
H2.get_circuit()
circuit_list = H2.to_circuit_list(ptype='vqe')

ansatz = UnitaryCoupledCluster(n, l, 'S', 1)
og_params = ansatz.new_parameters(H2.h, H2.v)
print(ansatz.num_S)
print(ansatz.num_D)
print(len(og_params))