99import warnings
1010import numpy as np
1111import qiskit , qiskit_aer , qiskit .providers .fake_provider
12- from qiskit import QuantumCircuit
12+ from qiskit import QuantumCircuit , transpile
1313
1414HAS_NOISE = True
1515try :
@@ -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