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.
SingleTransmonTestBackend¶
- class SingleTransmonTestBackend(qubit_frequency=5000000000.0, anharmonicity=-250000000.0, lambda_1=1000000000.0, lambda_2=800000000.0, gamma_1=10000.0, noise=True, atol=None, rtol=None, **kwargs)[source]¶
A backend that corresponds to a three level anharmonic transmon qubit.
The Hamiltonian of the system is
Here,
is the transition frequency from level to level . is the drive field and are the raising and lowering operators between levels and .Initialise backend with hamiltonian parameters
Deprecated since version 0.9: The class
qiskit_experiments.test.pulse_backend.SingleTransmonTestBackend
is deprecated as of qiskit-experiments 0.9. It will be removed no earlier than 3 months after the release date. Support for Qiskit Pulse has been discontinued. Pin to Qiskit 1 and Qiskit Experiment 0.8 to use pulse experiments.- Parameters:
qubit_frequency (float) – Frequency of the qubit (0-1). Defaults to 5e9.
anharmonicity (float) – Qubit anharmonicity
= f12 - f01. Defaults to -0.25e9.lambda_1 (float) – Strength of 0-1 transition. Defaults to 1e9.
lambda_2 (float) – Strength of 1-2 transition. Defaults to 0.8e9.
gamma_1 (float) – Relaxation rate (1/T1) for 1-0. Defaults to 1e4.
noise (bool) – Defaults to True. If True then T1 dissipation is included in the pulse-simulation. The strength is given by
gamma_1
.atol (float) – Absolute tolerance during solving.
rtol (float) – Relative tolerance during solving.
Attributes
- coupling_map¶
Return the
CouplingMap
object
- default_pulse_unitaries¶
Return the default unitary matrices of the backend.
- discriminator¶
Return the discriminator for the IQ data.
- dt¶
Return the system time resolution of input signals
This is required to be implemented if the backend supports Pulse scheduling.
- Returns:
The input signal timestep in seconds. If the backend doesn’t define
dt
,None
will be returned.
- dtm¶
Return the system time resolution of output signals
- Returns:
The output signal timestep in seconds.
- Raises:
NotImplementedError – if the backend doesn’t support querying the output signal timestep
- instruction_durations¶
Return the
InstructionDurations
object.
- instructions¶
A list of Instruction tuples on the backend of the form
(instruction, (qubits)
- max_circuits¶
- meas_map¶
Return the grouping of measurements which are multiplexed
This is required to be implemented if the backend supports Pulse scheduling.
- Returns:
The grouping of measurements which are multiplexed
- Raises:
NotImplementedError – if the backend doesn’t support querying the measurement mapping
- num_qubits¶
Return the number of qubits the backend has.
- operation_names¶
A list of instruction names that the backend supports.
- operations¶
A list of
Instruction
instances that the backend supports.
- options¶
Return the options for the backend
The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the
run()
method.
- provider¶
Return the backend provider.
- Returns:
the provider responsible for the backend.
- Return type:
provider
- target¶
Contains information for circuit transpilation.
- version = 2¶
- description¶
Optional human-readable description.
- online_date¶
Date that the backend came online.
- backend_version¶
Version of the backend being provided. This is not the same as
BackendV2.version
, which is the version of theBackend
abstract interface.
Methods
- defaults()¶
return backend pulse defaults
- qubit_properties(qubit)¶
Return QubitProperties for a given qubit.
If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented.
- Parameters:
qubit (int | List[int]) – The qubit to get the
QubitProperties
object for. This can be a single integer for 1 qubit or a list of qubits and a list ofQubitProperties
objects will be returned in the same order- Returns:
The
QubitProperties
object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can beNone
.- Raises:
NotImplementedError – if the backend doesn’t support querying the qubit properties
- Return type:
QubitProperties | List[QubitProperties]
- run(run_input, **run_options)¶
Run method takes circuits as input and returns FakeJob with IQ data or counts.
- Parameters:
run_input (QuantumCircuit | List[QuantumCircuit]) – Circuits to run.
run_options – Any option that affects the way that the circuits are run. The options that are currently supported are
shots
,meas_level
,meas_return
, andmemory
.
- Returns:
FakeJob with simulation data.
- Return type:
FakeJob
- set_options(**fields)¶
Set the options fields for the backend
This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options.
- Parameters:
fields – The fields to update the options
- Raises:
AttributeError – If the field passed in is not part of the options
- solve(schedule, qubits)¶
Solves for qubit dynamics under the action of a pulse instruction
- Parameters:
schedule (Schedule | ScheduleBlock) – Pulse signal
qubits (Tuple[int]) – (remove after multi-qubit gates is implemented)
- Returns:
Time-evolution unitary operator
- Return type:
ndarray