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.
FineFrequencyCal¶
- class FineFrequencyCal(physical_qubits, calibrations, backend=None, cal_parameter_name='drive_freq', delay_duration=None, repetitions=None, auto_update=True, gate_name='sx')[source]¶
A calibration version of the fine frequency experiment.
Analysis class reference
Experiment options
These options can be set by the
set_experiment_options()
method.- Options
Defined in the class
FineFrequencyCal
:dt (float)
Default value:None
The duration of the time unitdt
of the delay and schedules in seconds.
Defined in the class
BaseCalibrationExperiment
:result_index (int)
Default value:-1
The index of the result from which to update the calibrations.group (str)
Default value:"default"
The calibration group to which the parameter belongs. This will default to the value “default”.
Defined in the class
FineFrequency
:repetitions (List[int])
Default value: [0
,1
,2
,3
,4
, …]A list of the number of times that the delay is repeated.delay_duration (int)
Default value:None
The duration of the delay as the number ofdt
s it contains. The total length of the delay in units ofdt
will be n timesdelay_duration
where n also determines the rotation angle of theRZGate
by \(n \pi/2\).
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.
Example
from qiskit_experiments.calibration_management.calibrations import Calibrations from qiskit_experiments.calibration_management.basis_gate_library import FixedFrequencyTransmon from qiskit_experiments.library.calibration.fine_frequency_cal import FineFrequencyCal cals = Calibrations.from_backend(backend=backend, libraries=[FixedFrequencyTransmon()]) exp_cal = FineFrequencyCal((0,), cals, backend=backend, auto_update=False, gate_name="sx") cal_data=exp_cal.run().block_for_results() display(cal_data.figure(0)) cal_data.analysis_results(dataframe=True)
name experiment components value quality backend run_time chisq 5ae7a435 @Parameters_ErrorAmplificationAnalysis FineFrequencyCal [Q0] CurveFitResult:\n - fitting method: least_squa... good aer_simulator_from(fake_perth) None None 0bf28cd8 d_theta FineFrequencyCal [Q0] -0.00018+/-0.00032 good aer_simulator_from(fake_perth) None 0.993918 See also
Superclass
qiskit_experiments.calibration_management.base_calibration_experiment.BaseCalibrationExperiment
Superclass
qiskit_experiments.library.characterization.fine_frequency.FineFrequency
Initialization
See class
FineFrequency
for details.Note that this class implicitly assumes that the target angle of the gate is \(\pi/2\) as seen from the default analysis options. This experiment can be seen as a calibration of a finite duration
rz(pi/2)
gate with any error attributed to a frequency offset in the qubit.- Parameters:
physical_qubits (Sequence[int]) – Sequence containing the qubit for which to run the fine frequency calibration.
calibrations (Calibrations) – The calibrations instance with the schedules.
backend (Backend | None) – Optional, the backend to run the experiment on.
cal_parameter_name (str | None) – The name of the parameter to update in the calibrations. This defaults to drive_freq.
delay_duration (int | None) – The duration of the delay at \(n=1\). If this value is not given then the duration of the gate named
gate_name
in the calibrations will be used.auto_update (bool) – Whether to automatically update the calibrations or not. By default, this variable is set to True.
gate_name (str) – This argument is only needed if
delay_duration
is None. This should be the name of a valid schedule in the calibrations.
Attributes
- analysis¶
Return the analysis instance for the experiment.
Note
Analysis instance set to calibration experiment is implicitly patched to run calibration updater to update the parameters in the calibration table.
- backend¶
Return the backend for the experiment
- calibrations¶
Return the calibrations.
- experiment_options¶
Return the options for the experiment.
- experiment_type¶
Return experiment type.
- num_qubits¶
Return the number of qubits for the experiment.
- physical_qubits¶
Return the device qubits for the experiment.
Methods
- circuits()¶
Return the list of quantum circuits to run.
- Return type:
List[QuantumCircuit]
- config()¶
Return the config dataclass for this experiment
- Return type:
- copy()¶
Return a copy of the experiment
- Return type:
- classmethod from_config(config)¶
Initialize an experiment from experiment config
- Return type:
- job_info(backend=None)¶
Get information about job distribution for the experiment on a specific backend.
- Parameters:
backend (Backend) – Optional, the backend for which to get job distribution information. If not specified, the experiment must already have a set backend.
- Returns:
A dictionary containing information about job distribution.
”Total number of circuits in the experiment”: Total number of circuits in the experiment.
”Maximum number of circuits per job”: Maximum number of circuits in one job based on backend and experiment settings.
”Total number of jobs”: Number of jobs needed to run this experiment on the currently set backend.
- Return type:
dict
- Raises:
QiskitError – if backend is not specified.
- run(backend=None, sampler=None, analysis='default', timeout=None, backend_run=None, **run_options)¶
Run an experiment and perform analysis.
- Parameters:
backend (Backend | None) – Optional, the backend to run on. Will override existing backend settings.
sampler (BaseSamplerV2 | None) – Optional, the sampler to run the experiment on. If None then a sampler will be invoked from previously set backend
analysis (BaseAnalysis | None) – Optional, a custom analysis instance to use for performing analysis. If None analysis will not be run. If
"default"
the experimentsanalysis()
instance will be used if it contains one.timeout (float | None) – Time to wait for experiment jobs to finish running before cancelling.
backend_run (bool | None) – Use backend run (temp option for testing)
run_options – backend runtime options used for circuit execution.
- Returns:
The experiment data object.
- Raises:
QiskitError – If experiment is run with an incompatible existing ExperimentData container.
- Return type:
- set_experiment_options(**fields)¶
Set the experiment options.
- Parameters:
fields – The fields to update the options
- Raises:
AttributeError – If the field passed in is not a supported options
- set_run_options(**fields)¶
Set options values for the experiment
run()
method.- Parameters:
fields – The fields to update the options
See also
The Setting options for your experiment guide for code example.
- set_transpile_options(**fields)¶
Add a warning message.
Note
If your experiment has overridden _transpiled_circuits and needs transpile options then please also override set_transpile_options.
- update_calibrations(experiment_data)[source]¶
Update the qubit frequency based on the measured angle deviation.
The frequency of the qubit is updated according to
\[f \to f - \frac{{\rm d}\theta}{2\pi\tau{\rm d}t}\]Here, \({\rm d}\theta\) is the measured angle error from the fit. The duration of the single qubit-gate is \(\tau\) in samples and \({\rm d}t\) is the duration of a sample. This is also the duration of the time unit
dt
of the delay.