experiments
Specifies calibration and characterisation tasks on qubits and couplings.
Schema¶
Properties¶
| Property | Type | Description | References | 
|---|---|---|---|
| qubit | List[task | subflow] | None | List of tasks targeting qubits. | task, subflow | 
| coupling | List[task | subflow] | None | List of tasks targeting couplings. | task, subflow | 
Examples¶
Experiments without nested subflows¶
The most basic example of specifying experiments is by using only tasks. Suppose you want to define a flow consisting of:
- three single-qubit experiments:- Ramsey, defined in notebook ramsey.ipynb
- T1, defined in notebook t1.ipynb
- DRAG calibration, defined in notebook drag.ipynb
 
- Ramsey, defined in notebook 
- one qubit-qubit experiment:- ZZ coupling, defined in notebook crosstalk.ipynb
 
- ZZ coupling, defined in notebook 
Furthermore, suppose that coupling experiments should only begin when the qubit experiments are completed successfully. This flow would be implemented by the following experiments object:
Experiments with nested subflows¶
To define subflows, simply use a subflow object instead of a task. For instance, if you wanted to group the first two tasks from the previous example (i.e. ramsey and t1), you can achieve that by using the following:
qubit:
  - name: my-grouping
    tasks:
      - name: ramsey
      - name: t1
  - name: drag
coupling:
  - name: crosstalk
    dependencies:
      - drag
As you can see, the element my-grouping is no longer a task, but rather a subflow. This comes in handy when you want to define groupings of tasks that should be retried at the same time by combining it with the subflow.retry property, or for grouping execution conditions for related tasks via subflow.conditions.
You can read more about subflows in the Further workflow customisation user guide.