264 lines
9.5 KiB
Plaintext
264 lines
9.5 KiB
Plaintext
---
|
||
title: UnitarySimulatorPy (v0.31)
|
||
description: API reference for qiskit.providers.basicaer.UnitarySimulatorPy in qiskit v0.31
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.providers.basicaer.UnitarySimulatorPy
|
||
---
|
||
|
||
# UnitarySimulatorPy
|
||
|
||
<Class id="qiskit.providers.basicaer.UnitarySimulatorPy" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.18/qiskit/providers/basicaer/unitary_simulator.py" signature="UnitarySimulatorPy(configuration=None, provider=None, **fields)" modifiers="class">
|
||
Bases: `qiskit.providers.backend.BackendV1`
|
||
|
||
Python implementation of a unitary simulator.
|
||
|
||
Initialize a backend class
|
||
|
||
**Parameters**
|
||
|
||
* **configuration** ([*BackendConfiguration*](qiskit.providers.models.BackendConfiguration "qiskit.providers.models.BackendConfiguration")) – A backend configuration object for the backend object.
|
||
* **provider** ([*qiskit.providers.Provider*](qiskit.providers.Provider "qiskit.providers.Provider")) – Optionally, the provider object that this Backend comes from.
|
||
* **fields** – kwargs for the values to use to override the default options.
|
||
|
||
**Raises**
|
||
|
||
**AttributeError** – if input field not a valid options
|
||
|
||
In addition to the public abstract methods, subclasses should also implement the following private methods:
|
||
|
||
### \_default\_options
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy._default_options" signature="_default_options()" modifiers="classmethod">
|
||
Return the default options
|
||
|
||
This method will return a [`qiskit.providers.Options`](qiskit.providers.Options "qiskit.providers.Options") subclass object that will be used for the default options. These should be the default parameters to use for the options of the backend.
|
||
|
||
**Returns**
|
||
|
||
**A options object with**
|
||
|
||
default values set
|
||
|
||
**Return type**
|
||
|
||
[qiskit.providers.Options](qiskit.providers.Options "qiskit.providers.Options")
|
||
</Function>
|
||
|
||
## Methods
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-configuration" />
|
||
|
||
### configuration
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.configuration" signature="UnitarySimulatorPy.configuration()">
|
||
Return the backend configuration.
|
||
|
||
**Returns**
|
||
|
||
the configuration for the backend.
|
||
|
||
**Return type**
|
||
|
||
[BackendConfiguration](qiskit.providers.models.BackendConfiguration "qiskit.providers.models.BackendConfiguration")
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-name" />
|
||
|
||
### name
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.name" signature="UnitarySimulatorPy.name()">
|
||
Return the backend name.
|
||
|
||
**Returns**
|
||
|
||
the name of the backend.
|
||
|
||
**Return type**
|
||
|
||
str
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-properties" />
|
||
|
||
### properties
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.properties" signature="UnitarySimulatorPy.properties()">
|
||
Return the backend properties.
|
||
|
||
**Returns**
|
||
|
||
the configuration for the backend. If the backend does not support properties, it returns `None`.
|
||
|
||
**Return type**
|
||
|
||
[BackendProperties](qiskit.providers.models.BackendProperties "qiskit.providers.models.BackendProperties")
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-provider" />
|
||
|
||
### provider
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.provider" signature="UnitarySimulatorPy.provider()">
|
||
Return the backend Provider.
|
||
|
||
**Returns**
|
||
|
||
the Provider responsible for the backend.
|
||
|
||
**Return type**
|
||
|
||
[Provider](qiskit.providers.Provider "qiskit.providers.Provider")
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-run" />
|
||
|
||
### run
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.run" signature="UnitarySimulatorPy.run(qobj, **backend_options)">
|
||
Run qobj asynchronously.
|
||
|
||
**Parameters**
|
||
|
||
* **qobj** ([*Qobj*](qiskit.qobj.Qobj "qiskit.qobj.Qobj")) – payload of the experiment
|
||
* **backend\_options** (*dict*) – backend options
|
||
|
||
**Returns**
|
||
|
||
derived from BaseJob
|
||
|
||
**Return type**
|
||
|
||
[BasicAerJob](qiskit.providers.basicaer.BasicAerJob "qiskit.providers.basicaer.BasicAerJob")
|
||
|
||
Additional Information:
|
||
|
||
```python
|
||
backend_options: Is a dict of options for the backend. It may contain
|
||
* "initial_unitary": matrix_like
|
||
* "chop_threshold": double
|
||
|
||
The "initial_unitary" option specifies a custom initial unitary
|
||
matrix for the simulator to be used instead of the identity
|
||
matrix. This size of this matrix must be correct for the number
|
||
of qubits inall experiments in the qobj.
|
||
|
||
The "chop_threshold" option specifies a truncation value for
|
||
setting small values to zero in the output unitary. The default
|
||
value is 1e-15.
|
||
|
||
Example::
|
||
|
||
backend_options = {
|
||
"initial_unitary": np.array([[1, 0, 0, 0],
|
||
[0, 0, 0, 1],
|
||
[0, 0, 1, 0],
|
||
[0, 1, 0, 0]])
|
||
"chop_threshold": 1e-15
|
||
}
|
||
```
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-run-experiment" />
|
||
|
||
### run\_experiment
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.run_experiment" signature="UnitarySimulatorPy.run_experiment(experiment)">
|
||
Run an experiment (circuit) and return a single experiment result.
|
||
|
||
**Parameters**
|
||
|
||
**experiment** (*QobjExperiment*) – experiment from qobj experiments list
|
||
|
||
**Returns**
|
||
|
||
A result dictionary which looks something like:
|
||
|
||
```python
|
||
{
|
||
"name": name of this experiment (obtained from qobj.experiment header)
|
||
"seed": random seed used for simulation
|
||
"shots": number of shots used in the simulation
|
||
"data":
|
||
{
|
||
"unitary": [[[0.0, 0.0], [1.0, 0.0]],
|
||
[[1.0, 0.0], [0.0, 0.0]]]
|
||
},
|
||
"status": status string for the simulation
|
||
"success": boolean
|
||
"time taken": simulation time of this single experiment
|
||
}
|
||
```
|
||
|
||
**Return type**
|
||
|
||
dict
|
||
|
||
**Raises**
|
||
|
||
* [**BasicAerError**](qiskit.providers.basicaer.BasicAerError "qiskit.providers.basicaer.BasicAerError") – if the number of qubits in the circuit is greater than 24.
|
||
* **Note that the practical qubit limit is much lower than 24.** –
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-set-options" />
|
||
|
||
### set\_options
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.set_options" signature="UnitarySimulatorPy.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
|
||
</Function>
|
||
|
||
<span id="qiskit-providers-basicaer-unitarysimulatorpy-status" />
|
||
|
||
### status
|
||
|
||
<Function id="qiskit.providers.basicaer.UnitarySimulatorPy.status" signature="UnitarySimulatorPy.status()">
|
||
Return the backend status.
|
||
|
||
**Returns**
|
||
|
||
the status of the backend.
|
||
|
||
**Return type**
|
||
|
||
[BackendStatus](qiskit.providers.models.BackendStatus "qiskit.providers.models.BackendStatus")
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### DEFAULT\_CONFIGURATION
|
||
|
||
<Attribute id="qiskit.providers.basicaer.UnitarySimulatorPy.DEFAULT_CONFIGURATION" attributeValue="{'backend_name': 'unitary_simulator', 'backend_version': '1.1.0', 'basis_gates': ['u1', 'u2', 'u3', 'rz', 'sx', 'x', 'cx', 'id', 'unitary'], 'conditional': False, 'coupling_map': None, 'description': 'A python simulator for unitary matrix corresponding to a circuit', 'gates': [{'name': 'u1', 'parameters': ['lambda'], 'qasm_def': 'gate u1(lambda) q { U(0,0,lambda) q; }'}, {'name': 'u2', 'parameters': ['phi', 'lambda'], 'qasm_def': 'gate u2(phi,lambda) q { U(pi/2,phi,lambda) q; }'}, {'name': 'u3', 'parameters': ['theta', 'phi', 'lambda'], 'qasm_def': 'gate u3(theta,phi,lambda) q { U(theta,phi,lambda) q; }'}, {'name': 'rz', 'parameters': ['phi'], 'qasm_def': 'gate rz(phi) q { U(0,0,phi) q; }'}, {'name': 'sx', 'parameters': [], 'qasm_def': 'gate sx(phi) q { U(pi/2,7*pi/2,pi/2) q; }'}, {'name': 'x', 'parameters': [], 'qasm_def': 'gate x q { U(pi,7*pi/2,pi/2) q; }'}, {'name': 'cx', 'parameters': [], 'qasm_def': 'gate cx c,t { CX c,t; }'}, {'name': 'id', 'parameters': [], 'qasm_def': 'gate id a { U(0,0,0) a; }'}, {'name': 'unitary', 'parameters': ['matrix'], 'qasm_def': 'unitary(matrix) q1, q2,...'}], 'local': True, 'max_shots': 65536, 'memory': False, 'n_qubits': 16, 'open_pulse': False, 'simulator': True, 'url': 'https://github.com/Qiskit/qiskit-terra'}" />
|
||
|
||
### DEFAULT\_OPTIONS
|
||
|
||
<Attribute id="qiskit.providers.basicaer.UnitarySimulatorPy.DEFAULT_OPTIONS" attributeValue="{'chop_threshold': 1e-15, 'initial_unitary': None}" />
|
||
|
||
### MAX\_QUBITS\_MEMORY
|
||
|
||
<Attribute id="qiskit.providers.basicaer.UnitarySimulatorPy.MAX_QUBITS_MEMORY" attributeValue="16" />
|
||
|
||
### options
|
||
|
||
<Attribute id="qiskit.providers.basicaer.UnitarySimulatorPy.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()`](qiskit.providers.basicaer.UnitarySimulatorPy#run "qiskit.providers.basicaer.UnitarySimulatorPy.run") method.
|
||
</Attribute>
|
||
|
||
### version
|
||
|
||
<Attribute id="qiskit.providers.basicaer.UnitarySimulatorPy.version" attributeValue="1" />
|
||
</Class>
|
||
|