iqm.qiskit_iqm.fake_backends.iqm_fake_backend.IQMFakeBackend#

class iqm.qiskit_iqm.fake_backends.iqm_fake_backend.IQMFakeBackend(architecture, error_profile, name='IQMFakeBackend', **kwargs)#

Bases: IQMBackendBase

Simulated backend that mimics the behaviour of IQM quantum computers.

Can be used to perform noisy gate-level simulations of quantum circuit execution on IQM hardware.

A fake backend contains information about a specific IQM system, such as the quantum architecture (number of qubits, connectivity), the native gate set, and a noise model based on system parameters such as relaxation (\(T_1\)) and dephasing (\(T_2\)) times, gate infidelities, and readout errors.

Parameters:
  • architecture (QuantumArchitectureSpecification) – Quantum architecture associated with the backend instance.

  • error_profile (IQMErrorProfile) – Characteristics of a particular QPU specimen.

  • name (str) –

Initialize a BackendV2 based backend

Parameters:
  • provider – An optional backwards reference to the Provider object that the backend is from

  • name (str) – An optional name for the backend

  • description – An optional description of the backend

  • online_date – An optional datetime the backend was brought online

  • backend_version – An optional backend version string. This differs from the version attribute as version is for the abstract Backend abstract interface version of the object while backend_version is for versioning the backend itself.

  • fields – kwargs for the values to use to override the default options.

  • architecture (QuantumArchitectureSpecification) –

  • error_profile (IQMErrorProfile) –

Raises:

AttributeError – If a field is specified that’s outside the backend’s options

Attributes

error_profile

Error profile of this instance of IQM fake backend

max_circuits

The maximum number of circuits (or Pulse schedules) that can be run in a single job.

name

Name of the backend.

description

Optional human-readable description.

online_date

Date that the backend came online.

backend_version

Version of the backend being provided.

Methods

_create_noise_model(architecture, error_profile)

Builds a noise model from the attributes.

_default_options()

Return the default options

_validate_architecture_and_error_profile(...)

Verifies that the parameters of the QPU error profile match the constraints of its quantum architecture.

copy_with_error_profile(new_error_profile)

Return another instance of IQMFakeBackend, which has the same quantum architecture but a different error profile.

run(run_input, **options)

Run run_input on the fake backend using a simulator.

property error_profile: IQMErrorProfile#

Error profile of this instance of IQM fake backend

copy_with_error_profile(new_error_profile)#

Return another instance of IQMFakeBackend, which has the same quantum architecture but a different error profile.

Parameters:

new_error_profile (IQMErrorProfile) –

Return type:

IQMFakeBackend

property max_circuits: int | None#

The maximum number of circuits (or Pulse schedules) that can be run in a single job.

If there is no limit this will return None

run(run_input, **options)#

Run run_input on the fake backend using a simulator.

This method runs circuit jobs (an individual or a list of QuantumCircuit ) and returns a JobV1 object.

It will run the simulation with a noise model of the fake backend (e.g. Adonis).

Parameters:
  • run_input (QuantumCircuit | list[QuantumCircuit]) – One or more quantum circuits to simulate on the backend.

  • options – Any kwarg options to pass to the backend.

Returns:

The job object representing the run.

Raises:

ValueError – If empty list of circuits is provided.

Return type:

JobV1