laboneq_applications.experiments.iq_blobs
¶
This module defines the IQ_blob experiment.
In this experiment, we perform single-shot measurements with the qubits prepared in the states g, e, and/or f.
The IQ blob experiment has the following pulse sequence:
qb --- [ prepare transition ] --- [ measure ]
IQBlobExperimentOptions
¶
Options for the iq_blobs experiment.
The purpose of this class is to change the default value of averaging_mode in BaseExperimentOptions.
Attributes:
Name | Type | Description |
---|---|---|
averaging_mode |
AveragingMode
|
Averaging mode used for the experiment
Default: |
averaging_mode = workflow.option_field(AveragingMode.SINGLE_SHOT, description='Averaging mode used for the experiment')
class-attribute
instance-attribute
¶
IQBlobExperimentWorkflowOptions
¶
Options for the iq_blobs experiment workflow.
Attributes:
Name | Type | Description |
---|---|---|
do_analysis |
bool
|
Whether to run the analysis workflow. Default: True |
do_analysis = workflow.option_field(True, description='Whether to run the analysis workflow.')
class-attribute
instance-attribute
¶
create_experiment(qpu, qubits, states, options=None)
¶
Creates an IQ-blob Experiment.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
qpu
|
QPU
|
The qpu consisting of the original qubits and quantum operations. |
required |
qubits
|
QuantumElements
|
The qubit to run the experiments on. |
required |
states
|
Sequence[str]
|
The basis states the qubits should be prepared in. May be either a string, e.g. "gef", or a list of letters, e.g. ["g","e","f"]. |
required |
options
|
IQBlobExperimentOptions | None
|
The options for building the experiment as an instance of [IQBlobExperimentOptions]. See the docstring of this class for more details. |
None
|
Returns:
Name | Type | Description |
---|---|---|
experiment |
Experiment
|
The generated LabOne Q experiment instance to be compiled and executed. |
Example
options = IQBlobExperimentOptions()
options.count(10)
setup = DeviceSetup("my_device")
qpu = QPU(
quantum_elements=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
quantum_operations=TunableTransmonOperations(),
)
temp_qubits = qpu.copy_quantum_elements()
create_experiment(
qpu=qpu,
qubits=[temp_qubits[0],temp_qubits[1]],
states="ge",
options=options,
)
experiment_workflow(session, qpu, qubits, states, temporary_parameters=None, options=None)
¶
The IQ-blob experiment Workflow.
The workflow consists of the following steps:
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
|
QuantumElements
|
The qubits to run the experiments on. |
required |
states
|
Sequence[str]
|
The basis states the qubits should be prepared in. May be either a string, e.g. "gef", or a list of letters, e.g. ["g","e","f"]. |
required |
temporary_parameters
|
dict[str | tuple[str, str, str], dict | QuantumParameters] | None
|
The temporary parameters with which to update the quantum elements and
topology edges. For quantum elements, the dictionary key is the quantum
element UID. For topology edges, the dictionary key is the edge tuple
|
None
|
options
|
IQBlobExperimentWorkflowOptions | None
|
The options for building the workflow as an instance of [TuneUpWorkflowOptions]. See the docstring of this class for more details. |
None
|
Returns:
Name | Type | Description |
---|---|---|
WorkflowBuilder |
None
|
The builder for the experiment workflow. |
Example
options = experiment_workflow.options()
options.count(10)
qpu = QPU(
quantum_elements=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
quantum_operations=TunableTransmonOperations(),
)
temp_qubits = qpu.copy_quantum_elements()
result = experiment_workflow(
session=session,
qpu=qpu,
qubits=[temp_qubits[0],temp_qubits[1]],
states="ge",
options=options,
)