qutip_qip.qiskit

Simulation of qiskit circuits in qutip_qip.

Classes

QiskitSimulatorBase([configuration])

The base class for qutip_qip based qiskit backends.

QiskitCircuitSimulator([configuration])

qiskit backend dealing with operator-level circuit simulation using qutip_qip's CircuitSimulator.

QiskitPulseSimulator(processor[, configuration])

qiskit backend dealing with pulse-level simulation.

Provider()

Provides access to qutip_qip based qiskit backends.

Job(backend, job_id, result)

Stores information about an ongoing job.

Fucntions

convert_qiskit_circuit(qiskit_circuit[, ...])

Convert a qiskit.circuit.QuantumCircuit object from qiskit to qutip_qip's QubitCircuit.

class qutip_qip.qiskit.Job(backend, job_id: str, result: Result)[source]

Bases: JobV1

Stores information about an ongoing job.

Parameters
backendQiskitCircuitSimulator

The backend used to simulate a circuit in the job.

job_idstr

Unique ID identifying a job.

resultqiskit.result.Result

The result of a simulation run.

result()[source]

Return the job’s result

status()[source]

Returns job status

submit()[source]

Submit the job to the backend for execution.

class qutip_qip.qiskit.Provider[source]

Bases: ProviderV1

Provides access to qutip_qip based qiskit backends.

Attributes
name: str

Name of the provider

backends(name: Optional[str] = None, filters=None, **kwargs) list[source]

Returns the available backends

Parameters
name: str

Name of required backend

Returns
list

List of available backends

class qutip_qip.qiskit.QiskitCircuitSimulator(configuration=None, **fields)[source]

Bases: QiskitSimulatorBase

qiskit backend dealing with operator-level circuit simulation using qutip_qip’s CircuitSimulator.

Parameters
configurationdict

Configurable attributes of the backend.

class qutip_qip.qiskit.QiskitPulseSimulator(processor: Processor, configuration=None, **fields)[source]

Bases: QiskitSimulatorBase

qiskit backend dealing with pulse-level simulation.

Parameters
processorProcessor

The processor model to be used for simulation. An instance of the required Processor object is to be provided after initialising it with the required parameters.

configurationdict

Configurable attributes of the backend.

Attributes
processorProcessor

The processor model to be used for simulation.

class qutip_qip.qiskit.QiskitSimulatorBase(configuration=None, **fields)[source]

Bases: BackendV1

The base class for qutip_qip based qiskit backends.

run(qiskit_circuit: QuantumCircuit, **run_options) Job[source]

Simulates a circuit on the required backend.

Parameters
qiskit_circuitqiskit.circuit.QuantumCircuit

The qiskit circuit to be simulated.

**run_options:

Additional run options for the backend.

Valid options are:

shotsint

Number of times to sample the results.

allow_custom_gate: bool

Allow conversion of circuit using unitary matrices for custom gates.

Returns
Job

Job object that stores results and execution data.

qutip_qip.qiskit.convert_qiskit_circuit(qiskit_circuit: QuantumCircuit, allow_custom_gate=True) QubitCircuit[source]

Convert a qiskit.circuit.QuantumCircuit object from qiskit to qutip_qip’s QubitCircuit.

Parameters
qiskit_circuitqiskit.circuit.QuantumCircuit

The qiskit.circuit.QuantumCircuit object to be converted to QubitCircuit.

allow_custom_gatebool

If False, this function will raise an error if gate conversion is done using a custom gate’s unitary matrix.

Returns
QubitCircuit

The converted circuit in qutip_qip’s QubitCircuit format.