rigetti / qiskit-rigetti

Qiskit provider serving Rigetti hardware & simulator backends.
Apache License 2.0
8 stars 5 forks source link

Set coupling_map on provider configuration based on QVM/QPU topology #24

Open erichulburd opened 2 years ago

erichulburd commented 2 years ago

Currently the backend provider configuration defaults to coupling_map=[].

This requires the user to manually set the coupling map when an algorithm uses it. However, coupling maps are implicit in the backend topology. We should set programmatically set the coupling map upon initialization of the backend provider.

from qiskit_rigetti import RigettiQCSProvider, RigettiQCSBackend
from qiskit.transpiler import CouplingMap
import pyquil

# get the qvm coupling map and convert to qiskit, insert into backend
qvm = pyquil.get_qc("7q-qvm")
g = qvm.quantum_processor.qubit_topology()
h = g.to_directed()
cm = h.edges()
rigprovider = RigettiQCSProvider()
backend = rigprovider.get_simulator(num_qubits=7, noisy=False)
conf = backend.configuration()
conf.coupling_map = CouplingMap(cm)
conf.simulator = True
backend._configuration = conf
j4ustin commented 2 years ago

Hey @erichulburd this PR should resolve this issue: https://github.com/rigetti/qiskit-rigetti/pull/26