# Permutational Invariance¶

## Permutational Invariant Quantum Solver (PIQS)¶

The *Permutational Invariant Quantum Solver (PIQS)* is a QuTiP module that allows to study the dynamics of an open quantum system consisting of an ensemble of identical qubits that can dissipate through local and collective baths according to a Lindblad master equation.

The Liouvillian of an ensemble of \(N\) qubits, or two-level systems (TLSs), \(\mathcal{D}_{TLS}(\rho)\), can be built using only polynomial – instead of exponential – resources. This has many applications for the study of realistic quantum optics models of many TLSs and in general as a tool in cavity QED.

Consider a system evolving according to the equation

where \(J_{\alpha,n}=\frac{1}{2}\sigma_{\alpha,n}\) are SU(2) Pauli spin operators, with \({\alpha=x,y,z}\) and \(J_{\pm,n}=\sigma_{\pm,n}\). The collective spin operators are \(J_{\alpha} = \sum_{n}J_{\alpha,n}\) . The Lindblad super-operators are \(\mathcal{L}_{A} = 2A\rho A^\dagger - A^\dagger A \rho - \rho A^\dagger A\).

The inclusion of local processes in the dynamics lead to using a Liouvillian space of dimension \(4^N\). By exploiting the permutational invariance of identical particles [2-8], the Liouvillian \(\mathcal{D}_\text{TLS}(\rho)\) can be built as a block-diagonal matrix in the basis of Dicke states \(|j, m \rangle\).

The system under study is defined by creating an object of the
`Dicke`

class, e.g. simply named
`system`

, whose first attribute is

`system.N`

, the number of TLSs of the system \(N\).

The rates for collective and local processes are simply defined as

`collective_emission`

defines \(\gamma_\text{CE}\), collective (superradiant) emission`collective_dephasing`

defines \(\gamma_\text{CD}\), collective dephasing`collective_pumping`

defines \(\gamma_\text{CP}\), collective pumping.`emission`

defines \(\gamma_\text{E}\), incoherent emission (losses)`dephasing`

defines \(\gamma_\text{D}\), local dephasing`pumping`

defines \(\gamma_\text{P}\), incoherent pumping.

Then the `system.lindbladian()`

creates the total TLS Lindbladian superoperator matrix. Similarly, `system.hamiltonian`

defines the TLS hamiltonian of the system \(H_\text{TLS}\).

The system’s Liouvillian can be built using `system.liouvillian()`

. The properties of a Piqs object can be visualized by simply calling
`system`

. We give two basic examples on the use of *PIQS*. In the first example the incoherent emission of N driven TLSs is considered.

```
from piqs import Dicke
from qutip import steadystate
N = 10
system = Dicke(N, emission = 1, pumping = 2)
L = system.liouvillian()
steady = steadystate(L)
```

For more example of use, see the “Permutational Invariant Lindblad Dynamics” section in the tutorials section of the website, http://qutip.org/tutorials.html.

Operators | Command | Description |
---|---|---|

Collective spin algebra \(J_x,\ J_y,\ J_z\) | `jspin(N)` |
The collective spin algebra \(J_x,\ J_y,\ J_z\) for \(N\) TLSs |

Collective spin \(J_x\) | `jspin(N, "x")` |
The collective spin operator \(Jx\). Requires \(N\) number of TLSs |

Collective spin \(J_y\) | `jspin(N, "y")` |
The collective spin operator \(J_y\). Requires \(N\) number of TLSs |

Collective spin \(J_z\) | `jspin(N, "z")` |
The collective spin operator \(J_z\). Requires \(N\) number of TLSs |

Collective spin \(J_+\) | `jspin(N, "+")` |
The collective spin operator \(J_+\). |

Collective spin \(J_-\) | `jspin(N, "-")` |
The collective spin operator \(J_-\). |

Collective spin \(J_z\) in uncoupled basis | `jspin(N, "z", basis='uncoupled')` |
The collective spin operator \(J_z\) in the uncoupled basis of dimension \(2^N\). |

Dicke state \(|j,m\rangle\) density matrix | `dicke(N, j, m)` |
The density matrix for the Dicke state given by \(|j,m\rangle\) |

Excited-state density matrix in Dicke basis | `excited(N)` |
The excited state in the Dicke basis |

Excited-state density matrix in uncoupled basis | `excited(N, basis="uncoupled")` |
The excited state in the uncoupled basis |

Ground-state density matrix in Dicke basis | `ground(N)` |
The ground state in the Dicke basis |

GHZ-state density matrix in the Dicke basis | `ghz(N)` |
The GHZ-state density matrix in the Dicke (default) basis for N number of TLS |

Collapse operators of the ensemble | `Dicke.c_ops()` |
The collapse operators for the ensemble can be called by the c_ops method of the Dicke class. |

More functions relative to the qutip.piqs module can be found at API documentation. Attributes to the `qutip.piqs.Dicke`

and `qutip.piqs.Pim`

class can also be found there.