Skip to content

Commit 1ecbfb4

Browse files
Remove Qiskit noise feature and transpile circuit (#378)
1 parent 64746db commit 1ecbfb4

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

src/tequila/simulators/simulator_api.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
from tequila.wavefunction.qubit_wavefunction import QubitWaveFunction
1313

1414
SUPPORTED_BACKENDS = ["qulacs", "qulacs_gpu", "qibo", "qiskit", "qiskit_gpu", "cirq", "pyquil", "symbolic", "qlm", "spex"]
15-
SUPPORTED_NOISE_BACKENDS = ["qiskit", "qiskit_gpu", "cirq", "pyquil"] # qulacs removed in v.1.9
15+
# TODO: Reenable noise for Qiskit
16+
SUPPORTED_NOISE_BACKENDS = ["cirq", "pyquil"] # qulacs removed in v.1.9
1617
BackendTypes = namedtuple('BackendTypes', 'CircType ExpValueType')
1718
INSTALLED_SIMULATORS = {}
1819
INSTALLED_SAMPLERS = {}

src/tequila/simulators/simulator_qiskit.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import warnings
1010
import numpy as np
1111
import qiskit, qiskit_aer, qiskit.providers.fake_provider
12-
from qiskit import QuantumCircuit
12+
from qiskit import QuantumCircuit, transpile
1313

1414
HAS_NOISE = True
1515
try:
@@ -316,11 +316,9 @@ def do_simulate(self, variables, initial_state=0, *args, **kwargs) -> QubitWaveF
316316
optimization_level = kwargs['optimization_level']
317317

318318
circuit = self.circuit.assign_parameters(self.resolver)
319-
320319
circuit = self.add_state_init(circuit, initial_state)
321-
322320
circuit.save_statevector()
323-
321+
circuit = transpile(circuit, qiskit_backend)
324322
backend_result = qiskit_backend.run(circuit, optimization_level=optimization_level).result()
325323

326324
return QubitWaveFunction.from_array(array=backend_result.get_statevector(circuit).data, numbering=self.numbering)
@@ -349,11 +347,11 @@ def do_sample(self, circuit: qiskit.QuantumCircuit, samples: int, read_out_qubit
349347
if 'optimization_level' in kwargs:
350348
optimization_level = kwargs['optimization_level']
351349
if self.device is None:
352-
qiskit_backend = self.retrieve_device('aer_simulator')
350+
qiskit_backend = self.retrieve_device(self.STATEVECTOR_DEVICE_NAME)
353351
else:
354352
qiskit_backend = self.retrieve_device(self.device)
355353

356-
if isinstance(qiskit_backend, IBMBackend):
354+
if HAS_IBMQ and isinstance(qiskit_backend, IBMBackend):
357355
if self.noise_model is not None:
358356
raise TequilaException(
359357
'Cannot combine backend {} with custom noise models.'.format(str(qiskit_backend)))
@@ -370,7 +368,7 @@ def do_sample(self, circuit: qiskit.QuantumCircuit, samples: int, read_out_qubit
370368
if self.noise_model is not None:
371369
from_back = self.noise_model
372370
basis = from_back.basis_gates
373-
use_backend = self.retrieve_device('aer_simulator')
371+
use_backend = self.retrieve_device(self.STATEVECTOR_DEVICE_NAME)
374372
use_backend.set_options(noise_model=from_back)
375373
circuit = qiskit.transpile(circuit, backend=use_backend,
376374
basis_gates=basis,

0 commit comments

Comments
 (0)