Skip to content

Commit

Permalink
Remove Qiskit noise feature and transpile circuit (#378)
Browse files Browse the repository at this point in the history
  • Loading branch information
ohuettenhofer authored Mar 10, 2025
1 parent 64746db commit 1ecbfb4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
3 changes: 2 additions & 1 deletion src/tequila/simulators/simulator_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
from tequila.wavefunction.qubit_wavefunction import QubitWaveFunction

SUPPORTED_BACKENDS = ["qulacs", "qulacs_gpu", "qibo", "qiskit", "qiskit_gpu", "cirq", "pyquil", "symbolic", "qlm", "spex"]
SUPPORTED_NOISE_BACKENDS = ["qiskit", "qiskit_gpu", "cirq", "pyquil"] # qulacs removed in v.1.9
# TODO: Reenable noise for Qiskit
SUPPORTED_NOISE_BACKENDS = ["cirq", "pyquil"] # qulacs removed in v.1.9
BackendTypes = namedtuple('BackendTypes', 'CircType ExpValueType')
INSTALLED_SIMULATORS = {}
INSTALLED_SAMPLERS = {}
Expand Down
12 changes: 5 additions & 7 deletions src/tequila/simulators/simulator_qiskit.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import warnings
import numpy as np
import qiskit, qiskit_aer, qiskit.providers.fake_provider
from qiskit import QuantumCircuit
from qiskit import QuantumCircuit, transpile

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

circuit = self.circuit.assign_parameters(self.resolver)

circuit = self.add_state_init(circuit, initial_state)

circuit.save_statevector()

circuit = transpile(circuit, qiskit_backend)
backend_result = qiskit_backend.run(circuit, optimization_level=optimization_level).result()

return QubitWaveFunction.from_array(array=backend_result.get_statevector(circuit).data, numbering=self.numbering)
Expand Down Expand Up @@ -349,11 +347,11 @@ def do_sample(self, circuit: qiskit.QuantumCircuit, samples: int, read_out_qubit
if 'optimization_level' in kwargs:
optimization_level = kwargs['optimization_level']
if self.device is None:
qiskit_backend = self.retrieve_device('aer_simulator')
qiskit_backend = self.retrieve_device(self.STATEVECTOR_DEVICE_NAME)
else:
qiskit_backend = self.retrieve_device(self.device)

if isinstance(qiskit_backend, IBMBackend):
if HAS_IBMQ and isinstance(qiskit_backend, IBMBackend):
if self.noise_model is not None:
raise TequilaException(
'Cannot combine backend {} with custom noise models.'.format(str(qiskit_backend)))
Expand All @@ -370,7 +368,7 @@ def do_sample(self, circuit: qiskit.QuantumCircuit, samples: int, read_out_qubit
if self.noise_model is not None:
from_back = self.noise_model
basis = from_back.basis_gates
use_backend = self.retrieve_device('aer_simulator')
use_backend = self.retrieve_device(self.STATEVECTOR_DEVICE_NAME)
use_backend.set_options(noise_model=from_back)
circuit = qiskit.transpile(circuit, backend=use_backend,
basis_gates=basis,
Expand Down

0 comments on commit 1ecbfb4

Please sign in to comment.