Class related to simulating dynamics (EDSR)

Bases: Dynamics

Useful tools for simulating dynamics of two-level systems.

H_RF(H0, delta_V, omega)

Write the full Hamiltonian $$H(t) = H_0 + \delta V \cos(\omega t)$$ in a frame rotating at frequency $$\omega$$ around the $$z$$ axis.

Parameters:
• H0 (2D array) – Diagonalized system Hamiltonian.

• delta_V (2D array) – Drive that can initiate transitions between eigenstates of H0.

• omega (float) – Frequency of the drive and of the rotating frame.

Returns:

qutip Qobj – Hamiltonian matrix in the rotating frame.

Note

The operators H0 and delta_V should be input in units where $$\hbar$$ = 1.

fidelity(U, res, H0=None)

Computes the fidelity of a gate.

At time $$t$$, the fidelity $$F(t)$$ of the quantum-logic gate that is represented by the unitary operator $$U$$ in an ideal setting is given by:

$F(t) = |\langle\psi(t)|U|\psi(0)\rangle|^2,$

where $$|\psi(0)\rangle$$ is the initial state of the system (before application of the gate), and $$|\psi(t)\rangle$$ is the time-dependent state of the system under a (potentially) non-ideal implementation of the quantum-logic gate, e.g., realistic driving in the presence of a stochastic time-dependent field.

The above equation gives the fidelity in the laboratory frame. In a frame that rotates with a free Hamiltonian $$H_0$$, the fidelity output by this function is, instead, given by [WM08]

$F(t) = |\langle\psi(t)|\mathrm e^{iH_0t}U|\psi(0)\rangle|^2.$
Parameters:
• U (2D array/Qobj) – The gate that is ideally implemented.

• res (QuTiP Result object) – A Result object that contains information about the dynamics of the system, as output by the mesolve function of QuTiP.

• H0 (2D array/Qobj) – If None, the output fidelity will be given in the lab frame. If not None, the output fidelity will be given in the rotating frame with respect to H0.

Returns:

1D array – Fidelity of the gate U for the times specified by res.

Note

For the fidelity, we use the definition of Eq. (16.8) in Ref. [WM08] by Walls and Milburn. We remark that this fidelity is the square of the (square-root) fidelity defined by Nielssen and Chuang [NC10].

plot_2_level(result)

Produces a plot of the probability to be in the up and down states as a function of time from the simulation of a two-level system dynamics.

Parameters:

result (qutip result object) – The result object obtained from simulating the dynamics of a two-level system.

Note

This function can work in conjunction with ‘transition_2_levels’ to visualize the results of a simple EDSR simulation.

projectors(n_states)

Generate operators (qutip Qobj) that project a ket onto a specific basis state.

Parameters:

n_states (integer) – Dimensionality of the subspace under consideration, i.e. number of basis states that span the Hilbert space.

Returns:

list of Qobj objects – Proj, a list containing the projectors for each basis state.

transition_2_levels(i, j, H0, delta_V, omega=None, T=None, npts=1000, plot=False)

Project system and drive Hamiltonians onto a relevant 2 level subspace.

Parameters:
• i (integer) – Index of the up state. The convention chosen for the Pauli z operator for this qubit is the same one as qutip: sigma_z = |up><up| - |down><down|

• j (integer) – Index of down state. This state is taken to be the initial state in the simulation.

• H0 (2D array) – System Hamiltonian.

• delta_V (2D array) – EDSR perturbation.

• omega (float) – Driving frequency of the perturbation.

• T (float) – Time over which the dynamics will be evaluated.

• npts (integer) – Number of points in the simulation.

• plot (boolean) – Whether or not a plot should be produced at the end of the calculation of the probability to be in the initial and final states as a function of time.

Returns:

tuple – a tuple (result, h0, u, omega0, omega_rabi) where result (qutip mesolve) is the result of the simulation of the dynamics of the two level system by qutip h0 (qutip Qobj) is the projected system Hamiltonian, u (qutip Qobj) is the projected perturbation, omega0 (float) is the resonance frequency of the transition, and omega_rabi (float) is the Rabi frequency of the transition.

Note

This function can be used to get a rough understanding of the relevant frequencies of a transition that is being investigated. The calculation performed by this function is a simplified version of a more accurate calculation may be required to adequately investigate EDSR for a given system.

Note

This function may only be useful when the perturbing potential, delta_V, is a linear function of the the voltage applied to the gate generating the perturbation.

Note

In the situation where a higher energy state is the down state and a lower energy state is the up state, the output resonance frequency will be negative.