Tphi¶
- class Tphi(physical_qubits, delays_t1, delays_t2, t2type='hahn', osc_freq=0.0, num_echoes=1, backend=None)[source]¶
An experiment to measure the qubit dephasing rate in the \(x - y\) plane.
Overview
\(T_\varphi\), or \(1/\Gamma_\varphi\), is the pure dephasing time in the \(x - y\) plane of the Bloch sphere. We compute \(\Gamma_\varphi\) by computing \(\Gamma_2\), the transverse relaxation rate, and subtracting \(\Gamma_1\), the longitudinal relaxation rate. It follows that
\(1/T_\varphi = 1/T_2 - 1/2T_1\).
The transverse relaxation rate can be estimated by either \(T_2\) or \(T_2^*\) experiments. In superconducting qubits, \(T_2^*\) tends to be significantly smaller than \(T_1\), so \(T_2\) is usually used.
Note
In 0.5.0, this experiment changed from using \(T_2^*\) as the default to \(T_2\).
References
[1] Philip Krantz, Morten Kjaergaard, Fei Yan, Terry P. Orlando, Simon Gustavsson, William D. Oliver, A Quantum Engineer’s Guide to Superconducting Qubits, Applied Physics Reviews 6, 021318 (2019), doi: 10.1063/1.5089550 (open)
User manual
Analysis class reference
TPhiAnalysis
Experiment options
These options can be set by the
set_experiment_options()
method.- Options
Defined in the class
BatchExperiment
:separate_jobs (Boolean)
Default value:False
Whether to route different sub-experiments to different jobs.
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
import numpy as np import qiskit from qiskit_experiments.library.characterization import Tphi delays_t1 = np.arange(1e-6, 300e-6, 10e-6) delays_t2 = np.arange(1e-6, 50e-6, 2e-6) exp = Tphi(physical_qubits=(0, ), delays_t1=delays_t1, delays_t2=delays_t2, backend=backend ) exp_data = exp.run().block_for_results() display(exp_data.figure(0)) display(exp_data.figure(1)) exp_data.analysis_results(dataframe=True)
name experiment components value quality backend run_time unit chisq 9a688a12 T_phi Tphi [Q0] 0.00014+/-0.00009 bad aer_simulator_from(fake_manila) None s None c4e5e6e9 @Parameters_T1Analysis T1 [Q0] CurveFitResult:\n - fitting method: least_squa... good aer_simulator_from(fake_manila) None None None b2fedadf T1 T1 [Q0] 0.000134+/-0.000004 good aer_simulator_from(fake_manila) None s 1.12251 d5d353ac @Parameters_T2HahnAnalysis T2Hahn [Q0] CurveFitResult:\n - fitting method: least_squa... bad aer_simulator_from(fake_manila) None None None 0da0c0b6 T2 T2Hahn [Q0] (9+/-4)e-05 bad aer_simulator_from(fake_manila) None s 1.132852 See also
Initialization
Initialize the experiment object.
- Parameters:
physical_qubits (Sequence[int]) – A single-element sequence containing the qubit under test.
t2type (str) – What type of T2/T2* experiment to use. Can be either “ramsey” for
T2Ramsey
to be used, or “hahn” forT2Hahn
. Defaults to “hahn”.delays_t1 (List[List[float] | array]) – Delay times of the T1 experiment.
delays_t2 (List[List[float] | array]) – Delay times of the T2 experiment.
osc_freq (float) – The oscillation frequency induced for T2Ramsey. Only used when
t2type
is set to “ramsey”.num_echoes (int) – The number of echoes to perform for T2Hahn. Only used when
t2type
is set to “hahn”.backend (Backend | None) – Optional, the backend on which to run the experiment.
- Raises:
QiskitError – If an invalid
t2type
is provided.
Attributes
- analysis¶
Return the analysis instance for the experiment
- backend¶
Return the backend for the experiment
- experiment_options¶
Return the options for the experiment.
- experiment_type¶
Return experiment type.
- num_experiments¶
Return the number of sub experiments
- num_qubits¶
Return the number of qubits for the experiment.
- physical_qubits¶
Return the device qubits for the experiment.
Methods
- circuits()¶
Return a list of experiment circuits.
- Returns:
A list of
QuantumCircuit
.
Note
These circuits should be on qubits
[0, .., N-1]
for an N-qubit experiment. The circuits mapped to physical qubits are obtained via the internal_transpiled_circuits()
method.
- component_experiment(index=None)¶
Return the component Experiment object.
- Parameters:
index (int) – Experiment index, or
None
if all experiments are to be returned.- Returns:
The component experiment(s).
- Return type:
- 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)[source]¶
Set the experiment options. :param fields: The fields defining the options.
- Raises:
QiskitError – Invalid input option.
- 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)¶
Set the transpiler options for
run()
method.- Parameters:
fields – The fields to update the options
- Raises:
QiskitError – If initial_layout is one of the fields.
See also
The Setting options for your experiment guide for code example.