netket.exact.steady_state(lindblad, *, sparse=True, method='ed', rho0=None, **kwargs)[source]#

Computes the numerically exact steady-state of a lindblad master equation. The computation is performed either through the exact diagonalization of the hermitian \(L^\dagger L\) matrix, or by means of an iterative solver (bicgstabl) targeting the solution of the non-hermitian system \(L\rho = 0\) and \(\mathrm{Tr}[\rho] = 1\).

Note that for systems with 7 or more sites it is usually computationally impossible to build the full lindblad operator and therefore only iterative will work.

Note that for systems with hilbert spaces with dimensions above 40k, tol should be set to a lower value if the steady state has non-trivial correlations.

  • lindblad – The lindbladian encoding the master equation.

  • sparse – Whether to use sparse matrices (default: False for ed, True for iterative)

  • method – β€˜ed’ (exact diagonalization) or β€˜iterative’ (iterative bicgstabl)

  • rho0 – starting density matrix for the iterative diagonalization (default: None)

  • kwargs... – additional kwargs passed to bicgstabl

For full docs please consult SciPy documentation at

Keyword Arguments:
  • maxiter – maximum number of iterations for the iterative solver (default: None)

  • tol – The precision for the calculation (default: 1e-05)

  • callback – User-supplied function to call after each iteration. It is called as callback(xk), where xk is the current solution vector


The steady-state density matrix.