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.
PulseBackend¶
- class PulseBackend(static_hamiltonian, hamiltonian_operators, static_dissipators=None, dt=1.0000000000000002e-10, solver_method='RK23', seed=0, **kwargs)[source]¶
Abstract base class for pulse simulation backends in Qiskit Experiments.
This backend is designed for the tests in Qiskit Experiments as well as for the tutorials in Qiskit Experiments. The backend has a Qiskit Dynamics pulse simulator which allows it to simulate pulse schedules that are included in the calibrations attached to quantum circuits. In addition, sub-classes should implement a set of default schedules so that circuits that do not provide calibrations can also run, much like the hardware backends. In addition, the backends are also capable of simulating level- one (IQ data) and level-two (counts) data. Subclasses of these backends can have an optional disciminator so that they can produce counts based on sampled IQ data. If a discriminator is not provided then the counts will be produced from a statevector or density matrix.
Warning
Some of the functionality in this backend may move to Qiskit Dynamics and/or be refactored. These backends are not intended as a general pulse-simulator backend but rather to test the experiments and write short tutorials to demonstrate an experiment without having to run on hardware.
Initialize a backend with model information.
- Parameters:
static_hamiltonian (
ndarray
) – Time-independent term in the Hamiltonian.hamiltonian_operators (
ndarray
) – List of time-dependent operatorsstatic_dissipators (
Optional
[ndarray
]) – Constant dissipation operators. Defaults to None.dt (
float
) – Sample rate for simulating pulse schedules. Defaults to 0.1*1e-9.solver_method – Numerical solver method to use. Check qiskit_dynamics for available methods. Defaults to “RK23”.
seed (
int
) – An optional seed given to the random number generator. If this argument is not set then the seed defaults to 0.
Attributes
Return the
CouplingMap
objectReturn the default unitary matrices of the backend.
Return the discriminator for the IQ data.
Return the system time resolution of input signals
Return the system time resolution of output signals
Return the
InstructionDurations
object.Return the
InstructionScheduleMap
for the instructions defined in this backend's target.A list of Instruction tuples on the backend of the form
(instruction, (qubits)
The maximum number of circuits (or Pulse schedules) that can be run in a single job.
Return the grouping of measurements which are multiplexed
Return the number of qubits the backend has.
A list of instruction names that the backend supports.
A list of
Instruction
instances that the backend supports.Return the options for the backend
Return the backend Provider.
Contains information for circuit transpilation.
Methods
PulseBackend.acquire_channel
(qubit)Return the acquisition channel for the given qubit.
PulseBackend.control_channel
(qubits)Return the secondary drive channel for the given qubit
return backend pulse defaults
PulseBackend.drive_channel
(qubit)Return the drive channel for the given qubit.
PulseBackend.measure_channel
(qubit)Return the measure stimulus channel for the given qubit.
Return QubitProperties for a given qubit.
PulseBackend.run
(run_input, **run_options)Run method takes circuits as input and returns FakeJob with IQ data or counts.
PulseBackend.set_options
(**fields)Set the options fields for the backend
PulseBackend.solve
(schedule, qubits)Solves for qubit dynamics under the action of a pulse instruction