Abstract

We present a major update to QuSpin, SciPostPhys.2.1.003 – an open-source Python package for exact diagonalization and quantum dynamics of arbitrary boson, fermion and spin many-body systems, supporting the use of various (user-defined) symmetries in one and higher dimension and (imaginary) time evolution following a user-specified driving protocol. We explain how to use the new features of QuSpin using seven detailed examples of various complexity: (i) the transverse-field Ising chain and the Jordan-Wigner transformation, (ii) free particle systems: the Su-Schrieffer-Heeger (SSH) model, (iii) the many-body localized 1D Fermi-Hubbard model, (iv) the Bose-Hubbard model in a ladder geometry, (v) nonlinear (imaginary) time evolution and the Gross-Pitaevskii equation on a 1D lattice, (vi) integrability breaking and thermalizing dynamics in the translationally-invariant 2D transverse-field Ising model, and (vii) out-of-equilibrium Bose-Fermi mixtures. This easily accessible and user-friendly package can serve various purposes, including educational and cutting-edge experimental and theoretical research. The complete package documentation is available under http://weinbe58.github.io/QuSpin/index.html.

Highlights

  • We present a major update to QuSpin, SciPostPhys.2.1.003 – an open-source Python package for exact diagonalization and quantum dynamics of arbitrary boson, fermion and spin many-body systems, supporting the use of various symmetries in one and higher dimension and time evolution following a user-specified driving protocol

  • While we already encountered most of these libraries and functions, in this example we introduce the quantum_operator class which defines an operator, parametrized by multiple parameters, as opposed to the Hamiltonian which is only parametrized by time

  • Note that we evaluate the time-dependent Hamiltonian at time=, since we are interested in finding the Gross-Pitaevskii wave equation (GPE) ground state for the initial trap configuration κi

Read more

Summary

Many-Body Localization in the Fermi-Hubbard Model

While we already encountered most of these libraries and functions, in this example we introduce the quantum_operator class which defines an operator, parametrized by multiple parameters, as opposed to the Hamiltonian which is only parametrized by time Since this example requires us to do many different disorder realisations, we use NumPy’s random number library to do random sampling. In the last couple of lines defining model (see below), we create a python dictionary object in which we add static operator lists as values, indexed by a particular string known as the corresponding key. This dictionary, which we refer to as operator_dict, is passed into the quantum_operator class which, for each key in operator_dict, constructs the operator listed in the site-coupling list for that key.

The Bose-Hubbard Model on Translationally Invariant Ladder
The Gross-Pitaevskii Equation and Nonlinear Time Evolution

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.