101 lines
4.6 KiB
Plaintext
101 lines
4.6 KiB
Plaintext
---
|
||
title: duffing_system_model (v0.29)
|
||
description: API reference for qiskit.providers.aer.pulse.duffing_system_model in qiskit v0.29
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: function
|
||
python_api_name: qiskit.providers.aer.pulse.duffing_system_model
|
||
---
|
||
|
||
<span id="qiskit-providers-aer-pulse-duffing-system-model" />
|
||
|
||
# qiskit.providers.aer.pulse.duffing\_system\_model
|
||
|
||
<Function id="qiskit.providers.aer.pulse.duffing_system_model" isDedicatedPage={true} github="https://github.com/qiskit/qiskit-aer/tree/stable/0.8/qiskit/providers/aer/pulse/system_models/duffing_model_generators.py" signature="duffing_system_model(dim_oscillators, oscillator_freqs, anharm_freqs, drive_strengths, coupling_dict, dt)">
|
||
Returns a [`PulseSystemModel`](qiskit.providers.aer.pulse.PulseSystemModel "qiskit.providers.aer.pulse.PulseSystemModel") representing a physical model for a collection of Duffing oscillators.
|
||
|
||
In the model, each individual oscillator is specified by the parameters:
|
||
|
||
> * Frequency: $\nu$, specified in the list `oscillator_freqs`
|
||
> * Anharmonicity: $\alpha$, specified in the list `anharm_freqs`, and
|
||
> * Drive strength: $r$, specified in the list `drive_strengths`.
|
||
|
||
For each oscillator, the above parameters enter into the Hamiltonian via the terms:
|
||
|
||
$$
|
||
\pi(2 \nu - \alpha)a^\dagger a +
|
||
\pi \alpha (a^\dagger a)^2 + 2 \pi r D(t) (a + a^\dagger),
|
||
$$
|
||
|
||
where $a^\dagger$ and $a$ are, respectively, the creation and annihilation operators for the oscillator, and $D(t)$ is the drive signal for the oscillator.
|
||
|
||
Each coupling term between a pair of oscillators is specified by:
|
||
|
||
> * Oscillator pair: $(i,k)$, and
|
||
> * Coupling strength: $j$,
|
||
|
||
which are passed in the argument `coupling_dict`, which is a `dict` with keys being the `tuple` `(i,k)`, and values the strength `j`. Specifying a coupling results in the Hamiltonian term:
|
||
|
||
$$
|
||
2 \pi j (a_i^\dagger a_k + a_i a_k^\dagger).
|
||
$$
|
||
|
||
Finally, the returned [`PulseSystemModel`](qiskit.providers.aer.pulse.PulseSystemModel "qiskit.providers.aer.pulse.PulseSystemModel") is setup for performing cross-resonance drives between coupled qubits. The index for the `ControlChannel` corresponding to a particular cross-resonance drive channel is retreived by calling [`PulseSystemModel.control_channel_index()`](qiskit.providers.aer.pulse.PulseSystemModel#control_channel_index "qiskit.providers.aer.pulse.PulseSystemModel.control_channel_index") with the tuple `(drive_idx, target_idx)`, where `drive_idx` is the index of the oscillator being driven, and `target_idx` is the target oscillator (see example below).
|
||
|
||
Note: In this model, all frequencies are in frequency units (as opposed to radial).
|
||
|
||
**Example**
|
||
|
||
Constructing a three Duffing Oscillator :class:`PulseSystemModel`.
|
||
|
||
```python
|
||
# cutoff dimensions
|
||
dim_oscillators = 3
|
||
|
||
# single oscillator drift parameters
|
||
oscillator_freqs = [5.0e9, 5.1e9, 5.2e9]
|
||
anharm_freqs = [-0.33e9, -0.33e9, -0.33e9]
|
||
|
||
# drive strengths
|
||
drive_strengths = [0.02e9, 0.02e9, 0.02e9]
|
||
|
||
# specify coupling as a dictionary; here the qubit pair (0,1) is coupled with
|
||
# strength 0.002e9, and the qubit pair (1,2) is coupled with strength 0.001e9
|
||
coupling_dict = {(0,1): 0.002e9, (1,2): 0.001e9}
|
||
|
||
# time
|
||
dt = 1e-9
|
||
|
||
# create the model
|
||
three_qubit_model = duffing_system_model(dim_oscillators=dim_oscillators,
|
||
oscillator_freqs=oscillator_freqs,
|
||
anharm_freqs=anharm_freqs,
|
||
drive_strengths=drive_strengths,
|
||
coupling_dict=coupling_dict,
|
||
dt=dt)
|
||
```
|
||
|
||
In the above model, qubit pairs (0,1) and (1,2) are coupled. To perform a cross-resonance drive on qubit 1 with target 0, use the `ControlChannel` with index:
|
||
|
||
```python
|
||
three_qubit_model.control_channel_index((1,0))
|
||
```
|
||
|
||
**Parameters**
|
||
|
||
* **dim\_oscillators** (*int*) – Dimension of truncation for each oscillator.
|
||
* **oscillator\_freqs** (*list*) – Oscillator frequencies in frequency units.
|
||
* **anharm\_freqs** (*list*) – Anharmonicity values in frequency units.
|
||
* **drive\_strengths** (*list*) – Drive strength values in frequency units.
|
||
* **coupling\_dict** (*dict*) – Coupling graph with keys being edges, and values the coupling strengths in frequency units.
|
||
* **dt** (*float*) – Sample width for pulse instructions.
|
||
|
||
**Returns**
|
||
|
||
The generated Duffing system model
|
||
|
||
**Return type**
|
||
|
||
[PulseSystemModel](qiskit.providers.aer.pulse.PulseSystemModel "qiskit.providers.aer.pulse.PulseSystemModel")
|
||
</Function>
|
||
|