Skip to content

dq.lindbladian

lindbladian(H: ArrayLike, jump_ops: ArrayLike, rho: ArrayLike) -> Array

Applies the Lindbladian superoperator to a density matrix.

The Lindbladian superoperator \(\mathcal{L}\) is defined by: $$ \mathcal{L} (\rho) = -i[H,\rho] + \sum_{k=1}^N \mathcal{D}[L_k] (\rho), $$

where \(H\) is the system Hamiltonian, \(\{L_k\}\) is a set of \(N\) jump operators (arbitrary operators) and \(\mathcal{D}[L]\) is the Lindblad dissipation superoperator (see dq.dissipator()).

Note

This superoperator is also sometimes called Liouvillian.

Parameters

  • H (array_like of shape (..., n, n)) –

    Hamiltonian.

  • jump_ops (array_like of shape (N, ..., n, n)) –

    Sequence of jump operators.

  • rho (array_like of shape (..., n, n)) –

    Density matrix.

Returns

(array of shape (..., n, n)) Resulting operator (it is not a density matrix).

See also
  • dq.slindbladian(): returns the Lindbladian superoperator in matrix form (vectorized).

Examples

>>> a = dq.destroy(4)
>>> H = dq.dag(a) @ a
>>> L = [a, dq.dag(a) @ a]
>>> rho = dq.fock_dm(4, 1)
>>> dq.lindbladian(H, L, rho)
Array([[ 1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j],
       [ 0.+0.j, -1.+0.j,  0.+0.j,  0.+0.j],
       [ 0.+0.j,  0.+0.j,  0.+0.j,  0.+0.j],
       [ 0.+0.j,  0.+0.j,  0.+0.j,  0.+0.j]], dtype=complex64)