0

I am attempting to implement an experiment to investigate the qubit flux dependence of a flux-tunable transmon.

I am using the following OPENQASM code:

OPENQASM 3.0;
cal {
    bit[1] psb;
    waveform NYKJPaXjZm = {{0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}, {0.01}};
    waveform JALcwYUwFE = gaussian(100.0ns, 25.0ns, 0.1, true);
    set_phase(Transmon_77_charge_tx, 0.0);
    play(Transmon_77_flux_tx_c0, NYKJPaXjZm);
    delay[100.0ns] Transmon_77_charge_tx;
    set_frequency(Transmon_77_charge_tx, 4822177211.716727);
    play(Transmon_77_charge_tx, JALcwYUwFE);
    psb[0] = capture_v0(Transmon_77_readout_rx);
}

Can anyone confirm whether the measurement procedure (capture_v0) occurs while the flux pulse is active?

This is my full code for just one Flux amplitude:

import matplotlib.pyplot as plt

Imports for function fitting

import numpy as np import scipy.optimize from scipy.fft import fft, fftfreq

from braket.aws import AwsDevice from braket.devices import Devices from braket.parametric import FreeParameter from braket.pulse import GaussianWaveform, PulseSequence,ArbitraryWaveform

device_name = "ankaa" qubit_idx = 77

flux_amps =[0.01]

experiment_configuration = { "ankaa": { "device_arn": 'arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3', "qubit": qubit_idx, "drive_frame": f"Transmon_{qubit_idx}charge_tx", "readout_frame": f"Transmon{qubit_idx}readout_rx", "flux_frame": f"Transmon{qubit_idx}_flux_tx_c0", "flux_waveform": ArbitraryWaveform([flux_amps] * 600), "spectroscopy_wf": GaussianWaveform(100e-9, 25e-9, 0.1, True), "rabi_wf": GaussianWaveform( FreeParameter("length"), FreeParameter("length") * 0.25, 0.2, True, ), }, }

device = AwsDevice(experiment_configuration[device_name]["device_arn"]) qubit = experiment_configuration[device_name]["qubit"] drive_frame = device.frames[experiment_configuration[device_name]["drive_frame"]] flux_frame = device.frames[experiment_configuration[device_name]["flux_frame"]] readout_frame = device.frames[experiment_configuration[device_name]["readout_frame"]]

drive_waveform = experiment_configuration[device_name]["spectroscopy_wf"] flux_waveform = experiment_configuration[device_name]["flux_waveform"]

frequency = FreeParameter("frequency")

pulse_sequence = ( PulseSequence() .set_phase(drive_frame, 0.0) .play(flux_frame, flux_waveform) .delay(drive_frame, duration=100e-9) .set_frequency(drive_frame, frequency) .play(drive_frame, drive_waveform) .capture_v0(readout_frame) )

span = 75e6 N_steps = 25 N_shots = 100 frequencies = np.linspace( drive_frame.frequency - span / 2, drive_frame.frequency + span / 2, N_steps, )

qubit_spectroscopy_sequences = [pulse_sequence(frequency=frequency) for frequency in frequencies]

aaa =qubit_spectroscopy_sequences[0].to_ir()

print(aaa)

#batch = device.run_batch(qubit_spectroscopy_sequences, shots=N_shots)

rexyquantum
  • 113
  • 4

0 Answers0