7
7
import numpy as np
8
8
import numpy .typing as npt
9
9
from qibo import gates
10
- from qibo .backends import get_backend
10
+ from qibo .backends import construct_backend , get_backend
11
11
from qibo .config import raise_error
12
12
from qibo .models import Circuit
13
13
from qibolab .platform import Platform
14
14
from qibolab .qubits import QubitId , QubitPairId
15
15
16
16
from qibocal .auto .operation import Data , Parameters , Results
17
17
from qibocal .auto .transpile import (
18
+ AVAILABLE_PLATFORMS ,
18
19
dummy_transpiler ,
19
20
execute_transpiled_circuit ,
20
21
execute_transpiled_circuits ,
@@ -351,9 +352,10 @@ def setup(
351
352
Returns:
352
353
tuple: A tuple containing the experiment data, noise model, and backend.
353
354
"""
354
-
355
- backend = get_backend ()
356
- backend .platform = platform
355
+ if platform .name in AVAILABLE_PLATFORMS :
356
+ backend = construct_backend (backend = "qibolab" , platform = platform )
357
+ else :
358
+ backend = get_backend ()
357
359
# For simulations, a noise model can be added.
358
360
noise_model = None
359
361
if params .noise_model is not None :
@@ -439,7 +441,7 @@ def get_circuits(
439
441
return circuits , indexes , npulses_per_clifford
440
442
441
443
442
- def execute_circuits (circuits , targets , params , platform , single_qubit = True ):
444
+ def execute_circuits (circuits , targets , params , backend , single_qubit = True ):
443
445
"""
444
446
Executes a list of circuits on a given backend.
445
447
@@ -455,6 +457,7 @@ def execute_circuits(circuits, targets, params, platform, single_qubit=True):
455
457
456
458
"""
457
459
# Execute the circuits
460
+ platform = backend .platform
458
461
transpiler = dummy_transpiler (platform )
459
462
qubit_maps = (
460
463
[[i ] for i in targets ] * (len (params .depths ) * params .niter )
@@ -549,7 +552,7 @@ def twoq_rb_acquisition(
549
552
Returns:
550
553
RB2QData: The acquired data for two qubit randomized benchmarking.
551
554
"""
552
-
555
+ targets = [ tuple ( pair ) if isinstance ( pair , list ) else pair for pair in targets ]
553
556
data , noise_model , backend = setup (params , platform , single_qubit = False )
554
557
circuits , indexes , npulses_per_clifford = get_circuits (
555
558
params , targets , add_inverse_layer , interleave , noise_model , single_qubit = False
0 commit comments