Note

This is the documentation for the current state of the development branch of Qiskit Experiments. The documentation or APIs here can change prior to being released.

EFRabi

class EFRabi(physical_qubits, schedule, amplitudes=None, backend=None)[source]
An experiment that scans the amplitude of a pulse inducing rotations on the

|1 <-> |2 transition.

Overview

This experiment is a subclass of the Rabi experiment but takes place between the first and second excited state. An initial X gate populates the first excited state. The Rabi pulse is applied on the |1 <-> |2 transition (sometimes also labeled the e <-> f transition). The necessary frequency shift (typically the qubit anharmonicity) is given through the pulse schedule given at initialization. The schedule is then also stored in the experiment options. The circuits are of the form:

           ┌───┐┌───────────┐ ░ ┌─┐
      q_0: ┤ X ├┤ Rabi(amp) ├─░─┤M├
           └───┘└───────────┘ ░ └╥┘
measure: 1/══════════════════════╩═
                                 0

Analysis class reference

OscillationAnalysis

Experiment options

These options can be set by the set_experiment_options() method.

Options
  • Defined in the class Rabi:

    • amplitudes (iterable)

      Default value: array(-0.95, -0.9119999999999999, -0.874, -0.836, -0.7979999999999999, ..., size=51)
      The list of amplitude values to scan.
    • schedule (ScheduleBlock)

      Default value: None
      The schedule for the Rabi pulse. This schedule must have exactly one free parameter. The drive channel should match the qubit.
  • Defined in the class BaseExperiment:

    • max_circuits (Optional[int])

      Default value: None
      The maximum number of circuits per job when running an experiment on a backend.

See also

Initialization

Initialize a Rabi experiment on the given qubit.

Parameters:
  • physical_qubits (Sequence[int]) – List with the qubit on which to run the Rabi experiment.

  • schedule (ScheduleBlock) – The schedule that will be used in the Rabi experiment. This schedule should have one free parameter namely the amplitude.

  • amplitudes (Optional[Iterable[float]]) – The pulse amplitudes that one wishes to scan. If this variable is not specified it will default to np.linspace(-0.95, 0.95, 51).

  • backend (Optional[Backend]) – Optional, the backend to run the experiment on.

Attributes

EFRabi.analysis

Return the analysis instance for the experiment

EFRabi.backend

Return the backend for the experiment

EFRabi.experiment_options

Return the options for the experiment.

EFRabi.experiment_type

Return experiment type.

EFRabi.num_qubits

Return the number of qubits for the experiment.

EFRabi.physical_qubits

Return the device qubits for the experiment.

EFRabi.run_options

Return options values for the experiment run() method.

EFRabi.transpile_options

Return the transpiler options for the run() method.

Methods

EFRabi.circuits()

Create the circuits for the Rabi experiment.

EFRabi.config()

Return the config dataclass for this experiment

EFRabi.copy()

Return a copy of the experiment

EFRabi.enable_restless([rep_delay, ...])

Enables a restless experiment by setting the restless run options and the restless data processor.

EFRabi.from_config(config)

Initialize an experiment from experiment config

EFRabi.run([backend, analysis, timeout])

Run an experiment and perform analysis.

EFRabi.set_experiment_options(**fields)

Set the experiment options.

EFRabi.set_run_options(**fields)

Set options values for the experiment run() method.

EFRabi.set_transpile_options(**fields)

Set the transpiler options for run() method.