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)