laboneq_applications.contrib.experiments.amplitude_rabi_chevron
¶
This module defines the amplitude rabi chevron experiment.
In this experiment, we sweep the frequency and the amplitude of the drive pulse.
The amplitude_rabi_chevron experiment has the following pulse sequence:
qb --- [ prep transition ] --- [ qop (swept frequency, swept amplitude)]
--- [ measure ]
If multiple qubits are passed to the run workflow, the above pulses are applied
in parallel on all the qubits.
create_experiment(qpu, qubits, frequencies, amplitudes, options=None)
¶
Creates an Amplitude Rabi Chevron Experiment.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
qpu
|
QPU
|
The qpu consisting of the original qubits and quantum operations. |
required |
qubits
|
QuantumElements
|
The qubits to run the experiments on. May be either a single qubit or a list of qubits. |
required |
frequencies
|
QubitSweepPoints
|
The qubit frequencies to sweep over for the qubit drive pulse. If |
required |
amplitudes
|
QubitSweepPoints
|
The amplitudes to sweep over for each qubit. It must be a list of numbers or arrays or a list of lists of numbers or arrays. |
required |
options
|
TuneupExperimentOptions | None
|
The options for building the experiment. See [TuneupExperimentOptions] and [BaseExperimentOptions] for accepted options. Overwrites the options from [TuneupExperimentOptions] and [BaseExperimentOptions]. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
experiment |
Experiment
|
The generated LabOne Q experiment instance to be compiled and executed. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the qubits, amplitudes, and frequencies are not of the same length. |
ValueError
|
If amplitudes and frequencies are not a list of numbers when a single qubit is passed. |
ValueError
|
If frequencies is not a list of lists of numbers. If amplitudes is not None or a list of lists of numbers. |
Example
options = TuneupExperimentOptions()
options.count = 10
qpu = QPU(
qubits=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
quantum_operations=TunableTransmonOperations(),
)
create_experiment(
qpu=qpu,
qubits=["q0", "q1"],
frequencies = [
np.linspace(5.8e9, 6.2e9, 101),
np.linspace(0.8e9, 1.2e9, 101)
],
amplitudes=[[0.1, 0.5, 1], [0.1, 0.5, 1]],
options=options,
)
experiment_workflow(session, qpu, qubits, *, frequencies, amplitudes, temporary_parameters=None, options=None)
¶
The Amplitude Rabi Chevron Workflow.
The workflow consists of the following steps:
Removed in version 26.7.0.
The qubits argument of type QuantumElements has been removed.
Please pass qubits of type list[str] | str instead, i.e., the quantum
element UIDs instead of the quantum element instances.
Changed in version 26.4.0.
All arguments apart from session, qpu, and qubits are now keyword
arguments.
Changed in version 26.1.0.
The temporary_parameters positional argument was added in the
penultimate position. Note that this is a breaking change if
calling the experiment workflow with the options positional argument.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session
|
Session
|
The connected session to use for running the experiment. |
required |
qpu
|
QPU
|
The qpu consisting of the original qubits and quantum operations. |
required |
qubits
|
list[str] | str
|
The qubits to run the experiments on, passed by UID. May be either a single qubit or a list of qubits. |
required |
frequencies
|
QubitSweepPoints
|
The qubit frequencies to sweep over for the qubit drive pulse. If |
required |
amplitudes
|
QubitSweepPoints
|
The amplitudes to sweep over for each qubit drive pulse. |
required |
temporary_parameters
|
dict[str, dict | QuantumParameters] | None
|
The temporary parameters to update the qubits with. |
None
|
options
|
TuneUpWorkflowOptions | None
|
The options for building the workflow. In addition to options from [WorkflowOptions], the following custom options are supported: - create_experiment: The options for creating the experiment. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
result |
None
|
The result of the workflow. |
Example
options = experiment_workflow.options()
options.count(10)
qpu = QPU(
qubits=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
quantum_operations=TunableTransmonOperations(),
)
result = experiment_workflow(
session=session,
qpu=qpu,
qubits=["q0", "q1"],
frequencies = [
np.linspace(5.8e9, 6.2e9, 101),
np.linspace(0.8e9, 1.2e9, 101)
],
amplitudes=[[0.1, 0.5, 1], [0.1, 0.5, 1]],
options=options,
).run()